Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512dq -target-feature +avx512vl -emit-llvm -o - -Werror | FileCheck %s
      2 
      3 // Don't include mm_malloc.h, it's system specific.
      4 #define __MM_MALLOC_H
      5 
      6 #include <immintrin.h>
      7 
      8 __m256i test_mm256_mullo_epi64 (__m256i __A, __m256i __B) {
      9   // CHECK-LABEL: @test_mm256_mullo_epi64
     10   // CHECK: mul <4 x i64>
     11   return _mm256_mullo_epi64(__A, __B);
     12 }
     13 
     14 __m256i test_mm256_mask_mullo_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
     15   // CHECK-LABEL: @test_mm256_mask_mullo_epi64
     16   // CHECK: @llvm.x86.avx512.mask.pmull.q.256
     17   return (__m256i) _mm256_mask_mullo_epi64 ( __W, __U, __A, __B);
     18 }
     19 
     20 __m256i test_mm256_maskz_mullo_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
     21   // CHECK-LABEL: @test_mm256_maskz_mullo_epi64
     22   // CHECK: @llvm.x86.avx512.mask.pmull.q.256
     23   return (__m256i) _mm256_maskz_mullo_epi64 (__U, __A, __B);
     24 }
     25 
     26 __m128i test_mm_mullo_epi64 (__m128i __A, __m128i __B) {
     27   // CHECK-LABEL: @test_mm_mullo_epi64
     28   // CHECK: mul <2 x i64>
     29   return (__m128i) _mm_mullo_epi64(__A, __B);
     30 }
     31 
     32 __m128i test_mm_mask_mullo_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
     33   // CHECK-LABEL: @test_mm_mask_mullo_epi64
     34   // CHECK: @llvm.x86.avx512.mask.pmull.q.128
     35   return (__m128i) _mm_mask_mullo_epi64 ( __W, __U, __A, __B);
     36 }
     37 
     38 __m128i test_mm_maskz_mullo_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
     39   // CHECK-LABEL: @test_mm_maskz_mullo_epi64
     40   // CHECK: @llvm.x86.avx512.mask.pmull.q.128
     41   return (__m128i) _mm_maskz_mullo_epi64 (__U, __A, __B);
     42 }
     43 
     44 __m256d test_mm256_mask_andnot_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
     45   // CHECK-LABEL: @test_mm256_mask_andnot_pd
     46   // CHECK: @llvm.x86.avx512.mask.andn.pd.256
     47   return (__m256d) _mm256_mask_andnot_pd ( __W, __U, __A, __B);
     48 }
     49 
     50 __m256d test_mm256_maskz_andnot_pd (__mmask8 __U, __m256d __A, __m256d __B) {
     51   // CHECK-LABEL: @test_mm256_maskz_andnot_pd
     52   // CHECK: @llvm.x86.avx512.mask.andn.pd.256
     53   return (__m256d) _mm256_maskz_andnot_pd (__U, __A, __B);
     54 }
     55 
     56 __m128d test_mm_mask_andnot_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
     57   // CHECK-LABEL: @test_mm_mask_andnot_pd
     58   // CHECK: @llvm.x86.avx512.mask.andn.pd.128
     59   return (__m128d) _mm_mask_andnot_pd ( __W, __U, __A, __B);
     60 }
     61 
     62 __m128d test_mm_maskz_andnot_pd (__mmask8 __U, __m128d __A, __m128d __B) {
     63   // CHECK-LABEL: @test_mm_maskz_andnot_pd
     64   // CHECK: @llvm.x86.avx512.mask.andn.pd.128
     65   return (__m128d) _mm_maskz_andnot_pd (__U, __A, __B);
     66 }
     67 
     68 __m256 test_mm256_mask_andnot_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
     69   // CHECK-LABEL: @test_mm256_mask_andnot_ps
     70   // CHECK: @llvm.x86.avx512.mask.andn.ps.256
     71   return (__m256) _mm256_mask_andnot_ps ( __W, __U, __A, __B);
     72 }
     73 
     74 __m256 test_mm256_maskz_andnot_ps (__mmask8 __U, __m256 __A, __m256 __B) {
     75   // CHECK-LABEL: @test_mm256_maskz_andnot_ps
     76   // CHECK: @llvm.x86.avx512.mask.andn.ps.256
     77   return (__m256) _mm256_maskz_andnot_ps (__U, __A, __B);
     78 }
     79 
     80 __m128 test_mm_mask_andnot_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
     81   // CHECK-LABEL: @test_mm_mask_andnot_ps
     82   // CHECK: @llvm.x86.avx512.mask.andn.ps.128
     83   return (__m128) _mm_mask_andnot_ps ( __W, __U, __A, __B);
     84 }
     85 
     86 __m128 test_mm_maskz_andnot_ps (__mmask8 __U, __m128 __A, __m128 __B) {
     87   // CHECK-LABEL: @test_mm_maskz_andnot_ps
     88   // CHECK: @llvm.x86.avx512.mask.andn.ps.128
     89   return (__m128) _mm_maskz_andnot_ps (__U, __A, __B);
     90 }
     91 
     92 __m256d test_mm256_mask_and_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
     93   // CHECK-LABEL: @test_mm256_mask_and_pd
     94   // CHECK: @llvm.x86.avx512.mask.and.pd.256
     95   return (__m256d) _mm256_mask_and_pd ( __W, __U, __A, __B);
     96 }
     97 
     98 __m256d test_mm256_maskz_and_pd (__mmask8 __U, __m256d __A, __m256d __B) {
     99   // CHECK-LABEL: @test_mm256_maskz_and_pd
    100   // CHECK: @llvm.x86.avx512.mask.and.pd.256
    101   return (__m256d) _mm256_maskz_and_pd (__U, __A, __B);
    102 }
    103 
    104 __m128d test_mm_mask_and_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
    105   // CHECK-LABEL: @test_mm_mask_and_pd
    106   // CHECK: @llvm.x86.avx512.mask.and.pd.128
    107   return (__m128d) _mm_mask_and_pd ( __W, __U, __A, __B);
    108 }
    109 
    110 __m128d test_mm_maskz_and_pd (__mmask8 __U, __m128d __A, __m128d __B) {
    111   // CHECK-LABEL: @test_mm_maskz_and_pd
    112   // CHECK: @llvm.x86.avx512.mask.and.pd.128
    113   return (__m128d) _mm_maskz_and_pd (__U, __A, __B);
    114 }
    115 
    116 __m256 test_mm256_mask_and_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
    117   // CHECK-LABEL: @test_mm256_mask_and_ps
    118   // CHECK: @llvm.x86.avx512.mask.and.ps.256
    119   return (__m256) _mm256_mask_and_ps ( __W, __U, __A, __B);
    120 }
    121 
    122 __m256 test_mm256_maskz_and_ps (__mmask8 __U, __m256 __A, __m256 __B) {
    123   // CHECK-LABEL: @test_mm256_maskz_and_ps
    124   // CHECK: @llvm.x86.avx512.mask.and.ps.256
    125   return (__m256) _mm256_maskz_and_ps (__U, __A, __B);
    126 }
    127 
    128 __m128 test_mm_mask_and_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
    129   // CHECK-LABEL: @test_mm_mask_and_ps
    130   // CHECK: @llvm.x86.avx512.mask.and.ps.128
    131   return (__m128) _mm_mask_and_ps ( __W, __U, __A, __B);
    132 }
    133 
    134 __m128 test_mm_maskz_and_ps (__mmask8 __U, __m128 __A, __m128 __B) {
    135   // CHECK-LABEL: @test_mm_maskz_and_ps
    136   // CHECK: @llvm.x86.avx512.mask.and.ps.128
    137   return (__m128) _mm_maskz_and_ps (__U, __A, __B);
    138 }
    139 
    140 __m256d test_mm256_mask_xor_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
    141   // CHECK-LABEL: @test_mm256_mask_xor_pd
    142   // CHECK: @llvm.x86.avx512.mask.xor.pd.256
    143   return (__m256d) _mm256_mask_xor_pd ( __W, __U, __A, __B);
    144 }
    145 
    146 __m256d test_mm256_maskz_xor_pd (__mmask8 __U, __m256d __A, __m256d __B) {
    147   // CHECK-LABEL: @test_mm256_maskz_xor_pd
    148   // CHECK: @llvm.x86.avx512.mask.xor.pd.256
    149   return (__m256d) _mm256_maskz_xor_pd (__U, __A, __B);
    150 }
    151 
    152 __m128d test_mm_mask_xor_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
    153   // CHECK-LABEL: @test_mm_mask_xor_pd
    154   // CHECK: @llvm.x86.avx512.mask.xor.pd.128
    155   return (__m128d) _mm_mask_xor_pd ( __W, __U, __A, __B);
    156 }
    157 
    158 __m128d test_mm_maskz_xor_pd (__mmask8 __U, __m128d __A, __m128d __B) {
    159   // CHECK-LABEL: @test_mm_maskz_xor_pd
    160   // CHECK: @llvm.x86.avx512.mask.xor.pd.128
    161   return (__m128d) _mm_maskz_xor_pd (__U, __A, __B);
    162 }
    163 
    164 __m256 test_mm256_mask_xor_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
    165   // CHECK-LABEL: @test_mm256_mask_xor_ps
    166   // CHECK: @llvm.x86.avx512.mask.xor.ps.256
    167   return (__m256) _mm256_mask_xor_ps ( __W, __U, __A, __B);
    168 }
    169 
    170 __m256 test_mm256_maskz_xor_ps (__mmask8 __U, __m256 __A, __m256 __B) {
    171   // CHECK-LABEL: @test_mm256_maskz_xor_ps
    172   // CHECK: @llvm.x86.avx512.mask.xor.ps.256
    173   return (__m256) _mm256_maskz_xor_ps (__U, __A, __B);
    174 }
    175 
    176 __m128 test_mm_mask_xor_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
    177   // CHECK-LABEL: @test_mm_mask_xor_ps
    178   // CHECK: @llvm.x86.avx512.mask.xor.ps.128
    179     return (__m128) _mm_mask_xor_ps ( __W, __U, __A, __B);
    180 }
    181 
    182 __m128 test_mm_maskz_xor_ps (__mmask8 __U, __m128 __A, __m128 __B) {
    183   // CHECK-LABEL: @test_mm_maskz_xor_ps
    184   // CHECK: @llvm.x86.avx512.mask.xor.ps.128
    185   return (__m128) _mm_maskz_xor_ps (__U, __A, __B);
    186 }
    187 
    188 __m256d test_mm256_mask_or_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
    189   // CHECK-LABEL: @test_mm256_mask_or_pd
    190   // CHECK: @llvm.x86.avx512.mask.or.pd.256
    191   return (__m256d) _mm256_mask_or_pd ( __W, __U, __A, __B);
    192 }
    193 
    194 __m256d test_mm256_maskz_or_pd (__mmask8 __U, __m256d __A, __m256d __B) {
    195   // CHECK-LABEL: @test_mm256_maskz_or_pd
    196   // CHECK: @llvm.x86.avx512.mask.or.pd.256
    197   return (__m256d) _mm256_maskz_or_pd (__U, __A, __B);
    198 }
    199 
    200 __m128d test_mm_mask_or_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
    201   // CHECK-LABEL: @test_mm_mask_or_pd
    202   // CHECK: @llvm.x86.avx512.mask.or.pd.128
    203   return (__m128d) _mm_mask_or_pd ( __W, __U, __A, __B);
    204 }
    205 
    206 __m128d test_mm_maskz_or_pd (__mmask8 __U, __m128d __A, __m128d __B) {
    207   // CHECK-LABEL: @test_mm_maskz_or_pd
    208   // CHECK: @llvm.x86.avx512.mask.or.pd.128
    209   return (__m128d) _mm_maskz_or_pd (__U, __A, __B);
    210 }
    211 
    212 __m256 test_mm256_mask_or_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
    213   // CHECK-LABEL: @test_mm256_mask_or_ps
    214   // CHECK: @llvm.x86.avx512.mask.or.ps.256
    215   return (__m256) _mm256_mask_or_ps ( __W, __U, __A, __B);
    216 }
    217 
    218 __m256 test_mm256_maskz_or_ps (__mmask8 __U, __m256 __A, __m256 __B) {
    219   // CHECK-LABEL: @test_mm256_maskz_or_ps
    220   // CHECK: @llvm.x86.avx512.mask.or.ps.256
    221   return (__m256) _mm256_maskz_or_ps (__U, __A, __B);
    222 }
    223 
    224 __m128 test_mm_mask_or_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
    225   // CHECK-LABEL: @test_mm_mask_or_ps
    226   // CHECK: @llvm.x86.avx512.mask.or.ps.128
    227   return (__m128) _mm_mask_or_ps ( __W, __U, __A, __B);
    228 }
    229 
    230 __m128 test_mm_maskz_or_ps (__mmask8 __U, __m128 __A, __m128 __B) {
    231   // CHECK-LABEL: @test_mm_maskz_or_ps
    232   // CHECK: @llvm.x86.avx512.mask.or.ps.128
    233   return (__m128) _mm_maskz_or_ps(__U, __A, __B);
    234 }
    235 
    236 __m128i test_mm_cvtpd_epi64(__m128d __A) {
    237   // CHECK-LABEL: @test_mm_cvtpd_epi64
    238   // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128
    239   return _mm_cvtpd_epi64(__A);
    240 }
    241 
    242 __m128i test_mm_mask_cvtpd_epi64(__m128i __W, __mmask8 __U, __m128d __A) {
    243   // CHECK-LABEL: @test_mm_mask_cvtpd_epi64
    244   // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128
    245   return _mm_mask_cvtpd_epi64(__W, __U, __A);
    246 }
    247 
    248 __m128i test_mm_maskz_cvtpd_epi64(__mmask8 __U, __m128d __A) {
    249   // CHECK-LABEL: @test_mm_maskz_cvtpd_epi64
    250   // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128
    251   return _mm_maskz_cvtpd_epi64(__U, __A);
    252 }
    253 
    254 __m256i test_mm256_cvtpd_epi64(__m256d __A) {
    255   // CHECK-LABEL: @test_mm256_cvtpd_epi64
    256   // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256
    257   return _mm256_cvtpd_epi64(__A);
    258 }
    259 
    260 __m256i test_mm256_mask_cvtpd_epi64(__m256i __W, __mmask8 __U, __m256d __A) {
    261   // CHECK-LABEL: @test_mm256_mask_cvtpd_epi64
    262   // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256
    263   return _mm256_mask_cvtpd_epi64(__W, __U, __A);
    264 }
    265 
    266 __m256i test_mm256_maskz_cvtpd_epi64(__mmask8 __U, __m256d __A) {
    267   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi64
    268   // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256
    269   return _mm256_maskz_cvtpd_epi64(__U, __A);
    270 }
    271 
    272 __m128i test_mm_cvtpd_epu64(__m128d __A) {
    273   // CHECK-LABEL: @test_mm_cvtpd_epu64
    274   // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128
    275   return _mm_cvtpd_epu64(__A);
    276 }
    277 
    278 __m128i test_mm_mask_cvtpd_epu64(__m128i __W, __mmask8 __U, __m128d __A) {
    279   // CHECK-LABEL: @test_mm_mask_cvtpd_epu64
    280   // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128
    281   return _mm_mask_cvtpd_epu64(__W, __U, __A);
    282 }
    283 
    284 __m128i test_mm_maskz_cvtpd_epu64(__mmask8 __U, __m128d __A) {
    285   // CHECK-LABEL: @test_mm_maskz_cvtpd_epu64
    286   // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128
    287   return _mm_maskz_cvtpd_epu64(__U, __A);
    288 }
    289 
    290 __m256i test_mm256_cvtpd_epu64(__m256d __A) {
    291   // CHECK-LABEL: @test_mm256_cvtpd_epu64
    292   // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256
    293   return _mm256_cvtpd_epu64(__A);
    294 }
    295 
    296 __m256i test_mm256_mask_cvtpd_epu64(__m256i __W, __mmask8 __U, __m256d __A) {
    297   // CHECK-LABEL: @test_mm256_mask_cvtpd_epu64
    298   // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256
    299   return _mm256_mask_cvtpd_epu64(__W, __U, __A);
    300 }
    301 
    302 __m256i test_mm256_maskz_cvtpd_epu64(__mmask8 __U, __m256d __A) {
    303   // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu64
    304   // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256
    305   return _mm256_maskz_cvtpd_epu64(__U, __A);
    306 }
    307 
    308 __m128i test_mm_cvtps_epi64(__m128 __A) {
    309   // CHECK-LABEL: @test_mm_cvtps_epi64
    310   // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128
    311   return _mm_cvtps_epi64(__A);
    312 }
    313 
    314 __m128i test_mm_mask_cvtps_epi64(__m128i __W, __mmask8 __U, __m128 __A) {
    315   // CHECK-LABEL: @test_mm_mask_cvtps_epi64
    316   // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128
    317   return _mm_mask_cvtps_epi64(__W, __U, __A);
    318 }
    319 
    320 __m128i test_mm_maskz_cvtps_epi64(__mmask8 __U, __m128 __A) {
    321   // CHECK-LABEL: @test_mm_maskz_cvtps_epi64
    322   // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128
    323   return _mm_maskz_cvtps_epi64(__U, __A);
    324 }
    325 
    326 __m256i test_mm256_cvtps_epi64(__m128 __A) {
    327   // CHECK-LABEL: @test_mm256_cvtps_epi64
    328   // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256
    329   return _mm256_cvtps_epi64(__A);
    330 }
    331 
    332 __m256i test_mm256_mask_cvtps_epi64(__m256i __W, __mmask8 __U, __m128 __A) {
    333   // CHECK-LABEL: @test_mm256_mask_cvtps_epi64
    334   // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256
    335   return _mm256_mask_cvtps_epi64(__W, __U, __A);
    336 }
    337 
    338 __m256i test_mm256_maskz_cvtps_epi64(__mmask8 __U, __m128 __A) {
    339   // CHECK-LABEL: @test_mm256_maskz_cvtps_epi64
    340   // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256
    341   return _mm256_maskz_cvtps_epi64(__U, __A);
    342 }
    343 
    344 __m128i test_mm_cvtps_epu64(__m128 __A) {
    345   // CHECK-LABEL: @test_mm_cvtps_epu64
    346   // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128
    347   return _mm_cvtps_epu64(__A);
    348 }
    349 
    350 __m128i test_mm_mask_cvtps_epu64(__m128i __W, __mmask8 __U, __m128 __A) {
    351   // CHECK-LABEL: @test_mm_mask_cvtps_epu64
    352   // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128
    353   return _mm_mask_cvtps_epu64(__W, __U, __A);
    354 }
    355 
    356 __m128i test_mm_maskz_cvtps_epu64(__mmask8 __U, __m128 __A) {
    357   // CHECK-LABEL: @test_mm_maskz_cvtps_epu64
    358   // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128
    359   return _mm_maskz_cvtps_epu64(__U, __A);
    360 }
    361 
    362 __m256i test_mm256_cvtps_epu64(__m128 __A) {
    363   // CHECK-LABEL: @test_mm256_cvtps_epu64
    364   // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256
    365   return _mm256_cvtps_epu64(__A);
    366 }
    367 
    368 __m256i test_mm256_mask_cvtps_epu64(__m256i __W, __mmask8 __U, __m128 __A) {
    369   // CHECK-LABEL: @test_mm256_mask_cvtps_epu64
    370   // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256
    371   return _mm256_mask_cvtps_epu64(__W, __U, __A);
    372 }
    373 
    374 __m256i test_mm256_maskz_cvtps_epu64(__mmask8 __U, __m128 __A) {
    375   // CHECK-LABEL: @test_mm256_maskz_cvtps_epu64
    376   // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256
    377   return _mm256_maskz_cvtps_epu64(__U, __A);
    378 }
    379 
    380 __m128d test_mm_cvtepi64_pd(__m128i __A) {
    381   // CHECK-LABEL: @test_mm_cvtepi64_pd
    382   // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128
    383   return _mm_cvtepi64_pd(__A);
    384 }
    385 
    386 __m128d test_mm_mask_cvtepi64_pd(__m128d __W, __mmask8 __U, __m128i __A) {
    387   // CHECK-LABEL: @test_mm_mask_cvtepi64_pd
    388   // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128
    389   return _mm_mask_cvtepi64_pd(__W, __U, __A);
    390 }
    391 
    392 __m128d test_mm_maskz_cvtepi64_pd(__mmask8 __U, __m128i __A) {
    393   // CHECK-LABEL: @test_mm_maskz_cvtepi64_pd
    394   // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128
    395   return _mm_maskz_cvtepi64_pd(__U, __A);
    396 }
    397 
    398 __m256d test_mm256_cvtepi64_pd(__m256i __A) {
    399   // CHECK-LABEL: @test_mm256_cvtepi64_pd
    400   // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256
    401   return _mm256_cvtepi64_pd(__A);
    402 }
    403 
    404 __m256d test_mm256_mask_cvtepi64_pd(__m256d __W, __mmask8 __U, __m256i __A) {
    405   // CHECK-LABEL: @test_mm256_mask_cvtepi64_pd
    406   // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256
    407   return _mm256_mask_cvtepi64_pd(__W, __U, __A);
    408 }
    409 
    410 __m256d test_mm256_maskz_cvtepi64_pd(__mmask8 __U, __m256i __A) {
    411   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_pd
    412   // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256
    413   return _mm256_maskz_cvtepi64_pd(__U, __A);
    414 }
    415 
    416 __m128 test_mm_cvtepi64_ps(__m128i __A) {
    417   // CHECK-LABEL: @test_mm_cvtepi64_ps
    418   // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128
    419   return _mm_cvtepi64_ps(__A);
    420 }
    421 
    422 __m128 test_mm_mask_cvtepi64_ps(__m128 __W, __mmask8 __U, __m128i __A) {
    423   // CHECK-LABEL: @test_mm_mask_cvtepi64_ps
    424   // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128
    425   return _mm_mask_cvtepi64_ps(__W, __U, __A);
    426 }
    427 
    428 __m128 test_mm_maskz_cvtepi64_ps(__mmask8 __U, __m128i __A) {
    429   // CHECK-LABEL: @test_mm_maskz_cvtepi64_ps
    430   // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128
    431   return _mm_maskz_cvtepi64_ps(__U, __A);
    432 }
    433 
    434 __m128 test_mm256_cvtepi64_ps(__m256i __A) {
    435   // CHECK-LABEL: @test_mm256_cvtepi64_ps
    436   // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256
    437   return _mm256_cvtepi64_ps(__A);
    438 }
    439 
    440 __m128 test_mm256_mask_cvtepi64_ps(__m128 __W, __mmask8 __U, __m256i __A) {
    441   // CHECK-LABEL: @test_mm256_mask_cvtepi64_ps
    442   // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256
    443   return _mm256_mask_cvtepi64_ps(__W, __U, __A);
    444 }
    445 
    446 __m128 test_mm256_maskz_cvtepi64_ps(__mmask8 __U, __m256i __A) {
    447   // CHECK-LABEL: @test_mm256_maskz_cvtepi64_ps
    448   // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256
    449   return _mm256_maskz_cvtepi64_ps(__U, __A);
    450 }
    451 
    452 __m128i test_mm_cvttpd_epi64(__m128d __A) {
    453   // CHECK-LABEL: @test_mm_cvttpd_epi64
    454   // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128
    455   return _mm_cvttpd_epi64(__A);
    456 }
    457 
    458 __m128i test_mm_mask_cvttpd_epi64(__m128i __W, __mmask8 __U, __m128d __A) {
    459   // CHECK-LABEL: @test_mm_mask_cvttpd_epi64
    460   // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128
    461   return _mm_mask_cvttpd_epi64(__W, __U, __A);
    462 }
    463 
    464 __m128i test_mm_maskz_cvttpd_epi64(__mmask8 __U, __m128d __A) {
    465   // CHECK-LABEL: @test_mm_maskz_cvttpd_epi64
    466   // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128
    467   return _mm_maskz_cvttpd_epi64(__U, __A);
    468 }
    469 
    470 __m256i test_mm256_cvttpd_epi64(__m256d __A) {
    471   // CHECK-LABEL: @test_mm256_cvttpd_epi64
    472   // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256
    473   return _mm256_cvttpd_epi64(__A);
    474 }
    475 
    476 __m256i test_mm256_mask_cvttpd_epi64(__m256i __W, __mmask8 __U, __m256d __A) {
    477   // CHECK-LABEL: @test_mm256_mask_cvttpd_epi64
    478   // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256
    479   return _mm256_mask_cvttpd_epi64(__W, __U, __A);
    480 }
    481 
    482 __m256i test_mm256_maskz_cvttpd_epi64(__mmask8 __U, __m256d __A) {
    483   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi64
    484   // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256
    485   return _mm256_maskz_cvttpd_epi64(__U, __A);
    486 }
    487 
    488 __m128i test_mm_cvttpd_epu64(__m128d __A) {
    489   // CHECK-LABEL: @test_mm_cvttpd_epu64
    490   // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128
    491   return _mm_cvttpd_epu64(__A);
    492 }
    493 
    494 __m128i test_mm_mask_cvttpd_epu64(__m128i __W, __mmask8 __U, __m128d __A) {
    495   // CHECK-LABEL: @test_mm_mask_cvttpd_epu64
    496   // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128
    497   return _mm_mask_cvttpd_epu64(__W, __U, __A);
    498 }
    499 
    500 __m128i test_mm_maskz_cvttpd_epu64(__mmask8 __U, __m128d __A) {
    501   // CHECK-LABEL: @test_mm_maskz_cvttpd_epu64
    502   // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128
    503   return _mm_maskz_cvttpd_epu64(__U, __A);
    504 }
    505 
    506 __m256i test_mm256_cvttpd_epu64(__m256d __A) {
    507   // CHECK-LABEL: @test_mm256_cvttpd_epu64
    508   // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256
    509   return _mm256_cvttpd_epu64(__A);
    510 }
    511 
    512 __m256i test_mm256_mask_cvttpd_epu64(__m256i __W, __mmask8 __U, __m256d __A) {
    513   // CHECK-LABEL: @test_mm256_mask_cvttpd_epu64
    514   // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256
    515   return _mm256_mask_cvttpd_epu64(__W, __U, __A);
    516 }
    517 
    518 __m256i test_mm256_maskz_cvttpd_epu64(__mmask8 __U, __m256d __A) {
    519   // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu64
    520   // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256
    521   return _mm256_maskz_cvttpd_epu64(__U, __A);
    522 }
    523 
    524 __m128i test_mm_cvttps_epi64(__m128 __A) {
    525   // CHECK-LABEL: @test_mm_cvttps_epi64
    526   // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128
    527   return _mm_cvttps_epi64(__A);
    528 }
    529 
    530 __m128i test_mm_mask_cvttps_epi64(__m128i __W, __mmask8 __U, __m128 __A) {
    531   // CHECK-LABEL: @test_mm_mask_cvttps_epi64
    532   // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128
    533   return _mm_mask_cvttps_epi64(__W, __U, __A);
    534 }
    535 
    536 __m128i test_mm_maskz_cvttps_epi64(__mmask8 __U, __m128 __A) {
    537   // CHECK-LABEL: @test_mm_maskz_cvttps_epi64
    538   // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128
    539   return _mm_maskz_cvttps_epi64(__U, __A);
    540 }
    541 
    542 __m256i test_mm256_cvttps_epi64(__m128 __A) {
    543   // CHECK-LABEL: @test_mm256_cvttps_epi64
    544   // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256
    545   return _mm256_cvttps_epi64(__A);
    546 }
    547 
    548 __m256i test_mm256_mask_cvttps_epi64(__m256i __W, __mmask8 __U, __m128 __A) {
    549   // CHECK-LABEL: @test_mm256_mask_cvttps_epi64
    550   // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256
    551   return _mm256_mask_cvttps_epi64(__W, __U, __A);
    552 }
    553 
    554 __m256i test_mm256_maskz_cvttps_epi64(__mmask8 __U, __m128 __A) {
    555   // CHECK-LABEL: @test_mm256_maskz_cvttps_epi64
    556   // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256
    557   return _mm256_maskz_cvttps_epi64(__U, __A);
    558 }
    559 
    560 __m128i test_mm_cvttps_epu64(__m128 __A) {
    561   // CHECK-LABEL: @test_mm_cvttps_epu64
    562   // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128
    563   return _mm_cvttps_epu64(__A);
    564 }
    565 
    566 __m128i test_mm_mask_cvttps_epu64(__m128i __W, __mmask8 __U, __m128 __A) {
    567   // CHECK-LABEL: @test_mm_mask_cvttps_epu64
    568   // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128
    569   return _mm_mask_cvttps_epu64(__W, __U, __A);
    570 }
    571 
    572 __m128i test_mm_maskz_cvttps_epu64(__mmask8 __U, __m128 __A) {
    573   // CHECK-LABEL: @test_mm_maskz_cvttps_epu64
    574   // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128
    575   return _mm_maskz_cvttps_epu64(__U, __A);
    576 }
    577 
    578 __m256i test_mm256_cvttps_epu64(__m128 __A) {
    579   // CHECK-LABEL: @test_mm256_cvttps_epu64
    580   // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256
    581   return _mm256_cvttps_epu64(__A);
    582 }
    583 
    584 __m256i test_mm256_mask_cvttps_epu64(__m256i __W, __mmask8 __U, __m128 __A) {
    585   // CHECK-LABEL: @test_mm256_mask_cvttps_epu64
    586   // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256
    587   return _mm256_mask_cvttps_epu64(__W, __U, __A);
    588 }
    589 
    590 __m256i test_mm256_maskz_cvttps_epu64(__mmask8 __U, __m128 __A) {
    591   // CHECK-LABEL: @test_mm256_maskz_cvttps_epu64
    592   // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256
    593   return _mm256_maskz_cvttps_epu64(__U, __A);
    594 }
    595 
    596 __m128d test_mm_cvtepu64_pd(__m128i __A) {
    597   // CHECK-LABEL: @test_mm_cvtepu64_pd
    598   // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128
    599   return _mm_cvtepu64_pd(__A);
    600 }
    601 
    602 __m128d test_mm_mask_cvtepu64_pd(__m128d __W, __mmask8 __U, __m128i __A) {
    603   // CHECK-LABEL: @test_mm_mask_cvtepu64_pd
    604   // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128
    605   return _mm_mask_cvtepu64_pd(__W, __U, __A);
    606 }
    607 
    608 __m128d test_mm_maskz_cvtepu64_pd(__mmask8 __U, __m128i __A) {
    609   // CHECK-LABEL: @test_mm_maskz_cvtepu64_pd
    610   // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128
    611   return _mm_maskz_cvtepu64_pd(__U, __A);
    612 }
    613 
    614 __m256d test_mm256_cvtepu64_pd(__m256i __A) {
    615   // CHECK-LABEL: @test_mm256_cvtepu64_pd
    616   // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256
    617   return _mm256_cvtepu64_pd(__A);
    618 }
    619 
    620 __m256d test_mm256_mask_cvtepu64_pd(__m256d __W, __mmask8 __U, __m256i __A) {
    621   // CHECK-LABEL: @test_mm256_mask_cvtepu64_pd
    622   // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256
    623   return _mm256_mask_cvtepu64_pd(__W, __U, __A);
    624 }
    625 
    626 __m256d test_mm256_maskz_cvtepu64_pd(__mmask8 __U, __m256i __A) {
    627   // CHECK-LABEL: @test_mm256_maskz_cvtepu64_pd
    628   // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256
    629   return _mm256_maskz_cvtepu64_pd(__U, __A);
    630 }
    631 
    632 __m128 test_mm_cvtepu64_ps(__m128i __A) {
    633   // CHECK-LABEL: @test_mm_cvtepu64_ps
    634   // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128
    635   return _mm_cvtepu64_ps(__A);
    636 }
    637 
    638 __m128 test_mm_mask_cvtepu64_ps(__m128 __W, __mmask8 __U, __m128i __A) {
    639   // CHECK-LABEL: @test_mm_mask_cvtepu64_ps
    640   // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128
    641   return _mm_mask_cvtepu64_ps(__W, __U, __A);
    642 }
    643 
    644 __m128 test_mm_maskz_cvtepu64_ps(__mmask8 __U, __m128i __A) {
    645   // CHECK-LABEL: @test_mm_maskz_cvtepu64_ps
    646   // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128
    647   return _mm_maskz_cvtepu64_ps(__U, __A);
    648 }
    649 
    650 __m128 test_mm256_cvtepu64_ps(__m256i __A) {
    651   // CHECK-LABEL: @test_mm256_cvtepu64_ps
    652   // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256
    653   return _mm256_cvtepu64_ps(__A);
    654 }
    655 
    656 __m128 test_mm256_mask_cvtepu64_ps(__m128 __W, __mmask8 __U, __m256i __A) {
    657   // CHECK-LABEL: @test_mm256_mask_cvtepu64_ps
    658   // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256
    659   return _mm256_mask_cvtepu64_ps(__W, __U, __A);
    660 }
    661 
    662 __m128 test_mm256_maskz_cvtepu64_ps(__mmask8 __U, __m256i __A) {
    663   // CHECK-LABEL: @test_mm256_maskz_cvtepu64_ps
    664   // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256
    665   return _mm256_maskz_cvtepu64_ps(__U, __A);
    666 }
    667 
    668 __m128d test_mm_range_pd(__m128d __A, __m128d __B) {
    669   // CHECK-LABEL: @test_mm_range_pd
    670   // CHECK: @llvm.x86.avx512.mask.range.pd.128
    671   return _mm_range_pd(__A, __B, 4);
    672 }
    673 
    674 __m128d test_mm_mask_range_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
    675   // CHECK-LABEL: @test_mm_mask_range_pd
    676   // CHECK: @llvm.x86.avx512.mask.range.pd.128
    677   return _mm_mask_range_pd(__W, __U, __A, __B, 4);
    678 }
    679 
    680 __m128d test_mm_maskz_range_pd(__mmask8 __U, __m128d __A, __m128d __B) {
    681   // CHECK-LABEL: @test_mm_maskz_range_pd
    682   // CHECK: @llvm.x86.avx512.mask.range.pd.128
    683   return _mm_maskz_range_pd(__U, __A, __B, 4);
    684 }
    685 
    686 __m256d test_mm256_range_pd(__m256d __A, __m256d __B) {
    687   // CHECK-LABEL: @test_mm256_range_pd
    688   // CHECK: @llvm.x86.avx512.mask.range.pd.256
    689   return _mm256_range_pd(__A, __B, 4);
    690 }
    691 
    692 __m256d test_mm256_mask_range_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
    693   // CHECK-LABEL: @test_mm256_mask_range_pd
    694   // CHECK: @llvm.x86.avx512.mask.range.pd.256
    695   return _mm256_mask_range_pd(__W, __U, __A, __B, 4);
    696 }
    697 
    698 __m256d test_mm256_maskz_range_pd(__mmask8 __U, __m256d __A, __m256d __B) {
    699   // CHECK-LABEL: @test_mm256_maskz_range_pd
    700   // CHECK: @llvm.x86.avx512.mask.range.pd.256
    701   return _mm256_maskz_range_pd(__U, __A, __B, 4);
    702 }
    703 
    704 __m128 test_mm_range_ps(__m128 __A, __m128 __B) {
    705   // CHECK-LABEL: @test_mm_range_ps
    706   // CHECK: @llvm.x86.avx512.mask.range.ps.128
    707   return _mm_range_ps(__A, __B, 4);
    708 }
    709 
    710 __m128 test_mm_mask_range_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
    711   // CHECK-LABEL: @test_mm_mask_range_ps
    712   // CHECK: @llvm.x86.avx512.mask.range.ps.128
    713   return _mm_mask_range_ps(__W, __U, __A, __B, 4);
    714 }
    715 
    716 __m128 test_mm_maskz_range_ps(__mmask8 __U, __m128 __A, __m128 __B) {
    717   // CHECK-LABEL: @test_mm_maskz_range_ps
    718   // CHECK: @llvm.x86.avx512.mask.range.ps.128
    719   return _mm_maskz_range_ps(__U, __A, __B, 4);
    720 }
    721 
    722 __m256 test_mm256_range_ps(__m256 __A, __m256 __B) {
    723   // CHECK-LABEL: @test_mm256_range_ps
    724   // CHECK: @llvm.x86.avx512.mask.range.ps.256
    725   return _mm256_range_ps(__A, __B, 4);
    726 }
    727 
    728 __m256 test_mm256_mask_range_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
    729   // CHECK-LABEL: @test_mm256_mask_range_ps
    730   // CHECK: @llvm.x86.avx512.mask.range.ps.256
    731   return _mm256_mask_range_ps(__W, __U, __A, __B, 4);
    732 }
    733 
    734 __m256 test_mm256_maskz_range_ps(__mmask8 __U, __m256 __A, __m256 __B) {
    735   // CHECK-LABEL: @test_mm256_maskz_range_ps
    736   // CHECK: @llvm.x86.avx512.mask.range.ps.256
    737   return _mm256_maskz_range_ps(__U, __A, __B, 4);
    738 }
    739 
    740 __m128d test_mm_reduce_pd(__m128d __A) {
    741   // CHECK-LABEL: @test_mm_reduce_pd
    742   // CHECK: @llvm.x86.avx512.mask.reduce.pd.128
    743   return _mm_reduce_pd(__A, 4);
    744 }
    745 
    746 __m128d test_mm_mask_reduce_pd(__m128d __W, __mmask8 __U, __m128d __A) {
    747   // CHECK-LABEL: @test_mm_mask_reduce_pd
    748   // CHECK: @llvm.x86.avx512.mask.reduce.pd.128
    749   return _mm_mask_reduce_pd(__W, __U, __A, 4);
    750 }
    751 
    752 __m128d test_mm_maskz_reduce_pd(__mmask8 __U, __m128d __A) {
    753   // CHECK-LABEL: @test_mm_maskz_reduce_pd
    754   // CHECK: @llvm.x86.avx512.mask.reduce.pd.128
    755   return _mm_maskz_reduce_pd(__U, __A, 4);
    756 }
    757 
    758 __m256d test_mm256_reduce_pd(__m256d __A) {
    759   // CHECK-LABEL: @test_mm256_reduce_pd
    760   // CHECK: @llvm.x86.avx512.mask.reduce.pd.256
    761   return _mm256_reduce_pd(__A, 4);
    762 }
    763 
    764 __m256d test_mm256_mask_reduce_pd(__m256d __W, __mmask8 __U, __m256d __A) {
    765   // CHECK-LABEL: @test_mm256_mask_reduce_pd
    766   // CHECK: @llvm.x86.avx512.mask.reduce.pd.256
    767   return _mm256_mask_reduce_pd(__W, __U, __A, 4);
    768 }
    769 
    770 __m256d test_mm256_maskz_reduce_pd(__mmask8 __U, __m256d __A) {
    771   // CHECK-LABEL: @test_mm256_maskz_reduce_pd
    772   // CHECK: @llvm.x86.avx512.mask.reduce.pd.256
    773   return _mm256_maskz_reduce_pd(__U, __A, 4);
    774 }
    775 
    776 __m128 test_mm_reduce_ps(__m128 __A) {
    777   // CHECK-LABEL: @test_mm_reduce_ps
    778   // CHECK: @llvm.x86.avx512.mask.reduce.ps.128
    779   return _mm_reduce_ps(__A, 4);
    780 }
    781 
    782 __m128 test_mm_mask_reduce_ps(__m128 __W, __mmask8 __U, __m128 __A) {
    783   // CHECK-LABEL: @test_mm_mask_reduce_ps
    784   // CHECK: @llvm.x86.avx512.mask.reduce.ps.128
    785   return _mm_mask_reduce_ps(__W, __U, __A, 4);
    786 }
    787 
    788 __m128 test_mm_maskz_reduce_ps(__mmask8 __U, __m128 __A) {
    789   // CHECK-LABEL: @test_mm_maskz_reduce_ps
    790   // CHECK: @llvm.x86.avx512.mask.reduce.ps.128
    791   return _mm_maskz_reduce_ps(__U, __A, 4);
    792 }
    793 
    794 __m256 test_mm256_reduce_ps(__m256 __A) {
    795   // CHECK-LABEL: @test_mm256_reduce_ps
    796   // CHECK: @llvm.x86.avx512.mask.reduce.ps.256
    797   return _mm256_reduce_ps(__A, 4);
    798 }
    799 
    800 __m256 test_mm256_mask_reduce_ps(__m256 __W, __mmask8 __U, __m256 __A) {
    801   // CHECK-LABEL: @test_mm256_mask_reduce_ps
    802   // CHECK: @llvm.x86.avx512.mask.reduce.ps.256
    803   return _mm256_mask_reduce_ps(__W, __U, __A, 4);
    804 }
    805 
    806 __m256 test_mm256_maskz_reduce_ps(__mmask8 __U, __m256 __A) {
    807   // CHECK-LABEL: @test_mm256_maskz_reduce_ps
    808   // CHECK: @llvm.x86.avx512.mask.reduce.ps.256
    809   return _mm256_maskz_reduce_ps(__U, __A, 4);
    810 }
    811 
    812 __mmask8 test_mm_movepi32_mask(__m128i __A) {
    813   // CHECK-LABEL: @test_mm_movepi32_mask
    814   // CHECK: @llvm.x86.avx512.cvtd2mask.128
    815   return _mm_movepi32_mask(__A);
    816 }
    817 
    818 __mmask8 test_mm256_movepi32_mask(__m256i __A) {
    819   // CHECK-LABEL: @test_mm256_movepi32_mask
    820   // CHECK: @llvm.x86.avx512.cvtd2mask.256
    821   return _mm256_movepi32_mask(__A);
    822 }
    823 
    824 __m128i test_mm_movm_epi32(__mmask8 __A) {
    825   // CHECK-LABEL: @test_mm_movm_epi32
    826   // CHECK: @llvm.x86.avx512.cvtmask2d.128
    827   return _mm_movm_epi32(__A);
    828 }
    829 
    830 __m256i test_mm256_movm_epi32(__mmask8 __A) {
    831   // CHECK-LABEL: @test_mm256_movm_epi32
    832   // CHECK: @llvm.x86.avx512.cvtmask2d.256
    833   return _mm256_movm_epi32(__A);
    834 }
    835 
    836 __m128i test_mm_movm_epi64(__mmask8 __A) {
    837   // CHECK-LABEL: @test_mm_movm_epi64
    838   // CHECK: @llvm.x86.avx512.cvtmask2q.128
    839   return _mm_movm_epi64(__A);
    840 }
    841 
    842 __m256i test_mm256_movm_epi64(__mmask8 __A) {
    843   // CHECK-LABEL: @test_mm256_movm_epi64
    844   // CHECK: @llvm.x86.avx512.cvtmask2q.256
    845   return _mm256_movm_epi64(__A);
    846 }
    847 
    848 __mmask8 test_mm_movepi64_mask(__m128i __A) {
    849   // CHECK-LABEL: @test_mm_movepi64_mask
    850   // CHECK: @llvm.x86.avx512.cvtq2mask.128
    851   return _mm_movepi64_mask(__A);
    852 }
    853 
    854 __mmask8 test_mm256_movepi64_mask(__m256i __A) {
    855   // CHECK-LABEL: @test_mm256_movepi64_mask
    856   // CHECK: @llvm.x86.avx512.cvtq2mask.256
    857   return _mm256_movepi64_mask(__A);
    858 }
    859 
    860 
    861 __m256 test_mm256_broadcast_f32x2(__m128 __A) {
    862   // CHECK-LABEL: @test_mm256_broadcast_f32x2
    863   // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
    864   return _mm256_broadcast_f32x2(__A);
    865 }
    866 
    867 __m256 test_mm256_mask_broadcast_f32x2(__m256 __O, __mmask8 __M, __m128 __A) {
    868   // CHECK-LABEL: @test_mm256_mask_broadcast_f32x2
    869   // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
    870   return _mm256_mask_broadcast_f32x2(__O, __M, __A);
    871 }
    872 
    873 __m256 test_mm256_maskz_broadcast_f32x2(__mmask8 __M, __m128 __A) {
    874   // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x2
    875   // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
    876   return _mm256_maskz_broadcast_f32x2(__M, __A);
    877 }
    878 
    879 __m256d test_mm256_broadcast_f64x2(__m128d __A) {
    880   // CHECK-LABEL: @test_mm256_broadcast_f64x2
    881   // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
    882   return _mm256_broadcast_f64x2(__A);
    883 }
    884 
    885 __m256d test_mm256_mask_broadcast_f64x2(__m256d __O, __mmask8 __M, __m128d __A) {
    886   // CHECK-LABEL: @test_mm256_mask_broadcast_f64x2
    887   // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
    888   return _mm256_mask_broadcast_f64x2(__O, __M, __A);
    889 }
    890 
    891 __m256d test_mm256_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) {
    892   // CHECK-LABEL: @test_mm256_maskz_broadcast_f64x2
    893   // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
    894   return _mm256_maskz_broadcast_f64x2(__M, __A);
    895 }
    896 
    897 __m128i test_mm_broadcast_i32x2(__m128i __A) {
    898   // CHECK-LABEL: @test_mm_broadcast_i32x2
    899   // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
    900   return _mm_broadcast_i32x2(__A);
    901 }
    902 
    903 __m128i test_mm_mask_broadcast_i32x2(__m128i __O, __mmask8 __M, __m128i __A) {
    904   // CHECK-LABEL: @test_mm_mask_broadcast_i32x2
    905   // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
    906   return _mm_mask_broadcast_i32x2(__O, __M, __A);
    907 }
    908 
    909 __m128i test_mm_maskz_broadcast_i32x2(__mmask8 __M, __m128i __A) {
    910   // CHECK-LABEL: @test_mm_maskz_broadcast_i32x2
    911   // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
    912   return _mm_maskz_broadcast_i32x2(__M, __A);
    913 }
    914 
    915 __m256i test_mm256_broadcast_i32x2(__m128i __A) {
    916   // CHECK-LABEL: @test_mm256_broadcast_i32x2
    917   // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
    918   return _mm256_broadcast_i32x2(__A);
    919 }
    920 
    921 __m256i test_mm256_mask_broadcast_i32x2(__m256i __O, __mmask8 __M, __m128i __A) {
    922   // CHECK-LABEL: @test_mm256_mask_broadcast_i32x2
    923   // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
    924   return _mm256_mask_broadcast_i32x2(__O, __M, __A);
    925 }
    926 
    927 __m256i test_mm256_maskz_broadcast_i32x2(__mmask8 __M, __m128i __A) {
    928   // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x2
    929   // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
    930   return _mm256_maskz_broadcast_i32x2(__M, __A);
    931 }
    932 
    933 __m256i test_mm256_broadcast_i64x2(__m128i __A) {
    934   // CHECK-LABEL: @test_mm256_broadcast_i64x2
    935   // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
    936   return _mm256_broadcast_i64x2(__A);
    937 }
    938 
    939 __m256i test_mm256_mask_broadcast_i64x2(__m256i __O, __mmask8 __M, __m128i __A) {
    940   // CHECK-LABEL: @test_mm256_mask_broadcast_i64x2
    941   // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
    942   return _mm256_mask_broadcast_i64x2(__O, __M, __A);
    943 }
    944 
    945 __m256i test_mm256_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) {
    946   // CHECK-LABEL: @test_mm256_maskz_broadcast_i64x2
    947   // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
    948   return _mm256_maskz_broadcast_i64x2(__M, __A);
    949 }
    950 
    951 __m128d test_mm256_extractf64x2_pd(__m256d __A) {
    952   // CHECK-LABEL: @test_mm256_extractf64x2_pd
    953   // CHECK: @llvm.x86.avx512.mask.vextractf64x2
    954   return _mm256_extractf64x2_pd(__A, 1);
    955 }
    956 
    957 __m128d test_mm256_mask_extractf64x2_pd(__m128d __W, __mmask8 __U, __m256d __A) {
    958   // CHECK-LABEL: @test_mm256_mask_extractf64x2_pd
    959   // CHECK: @llvm.x86.avx512.mask.vextractf64x2
    960   return _mm256_mask_extractf64x2_pd(__W, __U, __A, 1);
    961 }
    962 
    963 __m128d test_mm256_maskz_extractf64x2_pd(__mmask8 __U, __m256d __A) {
    964   // CHECK-LABEL: @test_mm256_maskz_extractf64x2_pd
    965   // CHECK: @llvm.x86.avx512.mask.vextractf64x2
    966   return _mm256_maskz_extractf64x2_pd(__U, __A, 1);
    967 }
    968 
    969 __m128i test_mm256_extracti64x2_epi64(__m256i __A) {
    970   // CHECK-LABEL: @test_mm256_extracti64x2_epi64
    971   // CHECK: @llvm.x86.avx512.mask.vextracti64x2
    972   return _mm256_extracti64x2_epi64(__A, 1);
    973 }
    974 
    975 __m128i test_mm256_mask_extracti64x2_epi64(__m128i __W, __mmask8 __U, __m256i __A) {
    976   // CHECK-LABEL: @test_mm256_mask_extracti64x2_epi64
    977   // CHECK: @llvm.x86.avx512.mask.vextracti64x2
    978   return _mm256_mask_extracti64x2_epi64(__W, __U, __A, 1);
    979 }
    980 
    981 __m128i test_mm256_maskz_extracti64x2_epi64(__mmask8 __U, __m256i __A) {
    982   // CHECK-LABEL: @test_mm256_maskz_extracti64x2_epi64
    983   // CHECK: @llvm.x86.avx512.mask.vextracti64x2
    984   return _mm256_maskz_extracti64x2_epi64(__U, __A, 1);
    985 }
    986 
    987 __m256d test_mm256_insertf64x2(__m256d __A, __m128d __B) {
    988   // CHECK-LABEL: @test_mm256_insertf64x2
    989   // CHECK: @llvm.x86.avx512.mask.insertf64x2
    990   return _mm256_insertf64x2(__A, __B, 1);
    991 }
    992 
    993 __m256d test_mm256_mask_insertf64x2(__m256d __W, __mmask8 __U, __m256d __A, __m128d __B) {
    994   // CHECK-LABEL: @test_mm256_mask_insertf64x2
    995   // CHECK: @llvm.x86.avx512.mask.insertf64x2
    996   return _mm256_mask_insertf64x2(__W, __U, __A, __B, 1);
    997 }
    998 
    999 __m256d test_mm256_maskz_insertf64x2(__mmask8 __U, __m256d __A, __m128d __B) {
   1000   // CHECK-LABEL: @test_mm256_maskz_insertf64x2
   1001   // CHECK: @llvm.x86.avx512.mask.insertf64x2
   1002   return _mm256_maskz_insertf64x2(__U, __A, __B, 1);
   1003 }
   1004 
   1005 __m256i test_mm256_inserti64x2(__m256i __A, __m128i __B) {
   1006   // CHECK-LABEL: @test_mm256_inserti64x2
   1007   // CHECK: @llvm.x86.avx512.mask.inserti64x2
   1008   return _mm256_inserti64x2(__A, __B, 1);
   1009 }
   1010 
   1011 __m256i test_mm256_mask_inserti64x2(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
   1012   // CHECK-LABEL: @test_mm256_mask_inserti64x2
   1013   // CHECK: @llvm.x86.avx512.mask.inserti64x2
   1014   return _mm256_mask_inserti64x2(__W, __U, __A, __B, 1);
   1015 }
   1016 
   1017 __m256i test_mm256_maskz_inserti64x2(__mmask8 __U, __m256i __A, __m128i __B) {
   1018   // CHECK-LABEL: @test_mm256_maskz_inserti64x2
   1019   // CHECK: @llvm.x86.avx512.mask.inserti64x2
   1020   return _mm256_maskz_inserti64x2(__U, __A, __B, 1);
   1021 }
   1022 
   1023 __mmask8 test_mm_mask_fpclass_pd_mask(__mmask8 __U, __m128d __A) {
   1024   // CHECK-LABEL: @test_mm_mask_fpclass_pd_mask
   1025   // CHECK: @llvm.x86.avx512.mask.fpclass.pd.128
   1026   return _mm_mask_fpclass_pd_mask(__U, __A, 2);
   1027 }
   1028 
   1029 __mmask8 test_mm_fpclass_pd_mask(__m128d __A) {
   1030   // CHECK-LABEL: @test_mm_fpclass_pd_mask
   1031   // CHECK: @llvm.x86.avx512.mask.fpclass.pd.128
   1032   return _mm_fpclass_pd_mask(__A, 2);
   1033 }
   1034 
   1035 __mmask8 test_mm256_mask_fpclass_pd_mask(__mmask8 __U, __m256d __A) {
   1036   // CHECK-LABEL: @test_mm256_mask_fpclass_pd_mask
   1037   // CHECK: @llvm.x86.avx512.mask.fpclass.pd.256
   1038   return _mm256_mask_fpclass_pd_mask(__U, __A, 2);
   1039 }
   1040 
   1041 __mmask8 test_mm256_fpclass_pd_mask(__m256d __A) {
   1042   // CHECK-LABEL: @test_mm256_fpclass_pd_mask
   1043   // CHECK: @llvm.x86.avx512.mask.fpclass.pd.256
   1044   return _mm256_fpclass_pd_mask(__A, 2);
   1045 }
   1046 
   1047 __mmask8 test_mm_mask_fpclass_ps_mask(__mmask8 __U, __m128 __A) {
   1048   // CHECK-LABEL: @test_mm_mask_fpclass_ps_mask
   1049   // CHECK: @llvm.x86.avx512.mask.fpclass.ps.128
   1050   return _mm_mask_fpclass_ps_mask(__U, __A, 2);
   1051 }
   1052 
   1053 __mmask8 test_mm_fpclass_ps_mask(__m128 __A) {
   1054   // CHECK-LABEL: @test_mm_fpclass_ps_mask
   1055   // CHECK: @llvm.x86.avx512.mask.fpclass.ps.128
   1056   return _mm_fpclass_ps_mask(__A, 2);
   1057 }
   1058 
   1059 __mmask8 test_mm256_mask_fpclass_ps_mask(__mmask8 __U, __m256 __A) {
   1060   // CHECK-LABEL: @test_mm256_mask_fpclass_ps_mask
   1061   // CHECK: @llvm.x86.avx512.mask.fpclass.ps.256
   1062   return _mm256_mask_fpclass_ps_mask(__U, __A, 2);
   1063 }
   1064 
   1065 __mmask8 test_mm256_fpclass_ps_mask(__m256 __A) {
   1066   // CHECK-LABEL: @test_mm256_fpclass_ps_mask
   1067   // CHECK: @llvm.x86.avx512.mask.fpclass.ps.256
   1068   return _mm256_fpclass_ps_mask(__A, 2);
   1069 }
   1070