xref: /aosp_15_r20/external/clang/test/CodeGen/avx512vbmi-builtins.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512vbmi -emit-llvm -o - -Werror | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // Don't include mm_malloc.h, it's system specific.
4*67e74705SXin Li #define __MM_MALLOC_H
5*67e74705SXin Li 
6*67e74705SXin Li #include <immintrin.h>
7*67e74705SXin Li 
test_mm512_mask2_permutex2var_epi8(__m512i __A,__m512i __I,__mmask64 __U,__m512i __B)8*67e74705SXin Li __m512i test_mm512_mask2_permutex2var_epi8(__m512i __A, __m512i __I, __mmask64 __U, __m512i __B) {
9*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi8
10*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermi2var.qi.512
11*67e74705SXin Li   return _mm512_mask2_permutex2var_epi8(__A, __I, __U, __B);
12*67e74705SXin Li }
13*67e74705SXin Li 
test_mm512_permutex2var_epi8(__m512i __A,__m512i __I,__m512i __B)14*67e74705SXin Li __m512i test_mm512_permutex2var_epi8(__m512i __A, __m512i __I, __m512i __B) {
15*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutex2var_epi8
16*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.qi.512
17*67e74705SXin Li   return _mm512_permutex2var_epi8(__A, __I, __B);
18*67e74705SXin Li }
19*67e74705SXin Li 
test_mm512_mask_permutex2var_epi8(__m512i __A,__mmask64 __U,__m512i __I,__m512i __B)20*67e74705SXin Li __m512i test_mm512_mask_permutex2var_epi8(__m512i __A, __mmask64 __U, __m512i __I, __m512i __B) {
21*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutex2var_epi8
22*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.vpermt2var.qi.512
23*67e74705SXin Li   return _mm512_mask_permutex2var_epi8(__A, __U, __I, __B);
24*67e74705SXin Li }
25*67e74705SXin Li 
test_mm512_maskz_permutex2var_epi8(__mmask64 __U,__m512i __A,__m512i __I,__m512i __B)26*67e74705SXin Li __m512i test_mm512_maskz_permutex2var_epi8(__mmask64 __U, __m512i __A, __m512i __I, __m512i __B) {
27*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi8
28*67e74705SXin Li   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.qi.512
29*67e74705SXin Li   return _mm512_maskz_permutex2var_epi8(__U, __A, __I, __B);
30*67e74705SXin Li }
31*67e74705SXin Li 
test_mm512_permutexvar_epi8(__m512i __A,__m512i __B)32*67e74705SXin Li __m512i test_mm512_permutexvar_epi8(__m512i __A, __m512i __B) {
33*67e74705SXin Li   // CHECK-LABEL: @test_mm512_permutexvar_epi8
34*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.qi.512
35*67e74705SXin Li   return _mm512_permutexvar_epi8(__A, __B);
36*67e74705SXin Li }
37*67e74705SXin Li 
test_mm512_maskz_permutexvar_epi8(__mmask64 __M,__m512i __A,__m512i __B)38*67e74705SXin Li __m512i test_mm512_maskz_permutexvar_epi8(__mmask64 __M, __m512i __A, __m512i __B) {
39*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_permutexvar_epi8
40*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.qi.512
41*67e74705SXin Li   return _mm512_maskz_permutexvar_epi8(__M, __A, __B);
42*67e74705SXin Li }
43*67e74705SXin Li 
test_mm512_mask_permutexvar_epi8(__m512i __W,__mmask64 __M,__m512i __A,__m512i __B)44*67e74705SXin Li __m512i test_mm512_mask_permutexvar_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) {
45*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_permutexvar_epi8
46*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.permvar.qi.512
47*67e74705SXin Li   return _mm512_mask_permutexvar_epi8(__W, __M, __A, __B);
48*67e74705SXin Li }
49*67e74705SXin Li 
test_mm512_mask_multishift_epi64_epi8(__m512i __W,__mmask64 __M,__m512i __X,__m512i __Y)50*67e74705SXin Li __m512i test_mm512_mask_multishift_epi64_epi8(__m512i __W, __mmask64 __M, __m512i __X, __m512i __Y) {
51*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_multishift_epi64_epi8
52*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.512
53*67e74705SXin Li   return _mm512_mask_multishift_epi64_epi8(__W, __M, __X, __Y);
54*67e74705SXin Li }
55*67e74705SXin Li 
test_mm512_maskz_multishift_epi64_epi8(__mmask64 __M,__m512i __X,__m512i __Y)56*67e74705SXin Li __m512i test_mm512_maskz_multishift_epi64_epi8(__mmask64 __M, __m512i __X, __m512i __Y) {
57*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_multishift_epi64_epi8
58*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.512
59*67e74705SXin Li   return _mm512_maskz_multishift_epi64_epi8(__M, __X, __Y);
60*67e74705SXin Li }
61*67e74705SXin Li 
test_mm512_multishift_epi64_epi8(__m512i __X,__m512i __Y)62*67e74705SXin Li __m512i test_mm512_multishift_epi64_epi8(__m512i __X, __m512i __Y) {
63*67e74705SXin Li   // CHECK-LABEL: @test_mm512_multishift_epi64_epi8
64*67e74705SXin Li   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.512
65*67e74705SXin Li   return _mm512_multishift_epi64_epi8(__X, __Y);
66*67e74705SXin Li }
67