[libc][test] Adjust header paths in tests (#119623)
[llvm-project.git] / clang / test / CodeGen / X86 / avx512vbmivl-builtin.c
blob2562da26d6ce7989ad4cb3400fab7f437626c8c8
1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vbmi -target-feature +avx512vl -target-feature +avx512bw -emit-llvm -o - -Wall -Werror | FileCheck %s
4 #include <immintrin.h>
6 __m128i test_mm_permutexvar_epi8(__m128i __A, __m128i __B) {
7 // CHECK-LABEL: @test_mm_permutexvar_epi8
8 // CHECK: @llvm.x86.avx512.permvar.qi.128
9 return _mm_permutexvar_epi8(__A, __B);
12 __m128i test_mm_maskz_permutexvar_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
13 // CHECK-LABEL: @test_mm_maskz_permutexvar_epi8
14 // CHECK: @llvm.x86.avx512.permvar.qi.128
15 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
16 return _mm_maskz_permutexvar_epi8(__M, __A, __B);
19 __m128i test_mm_mask_permutexvar_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
20 // CHECK-LABEL: @test_mm_mask_permutexvar_epi8
21 // CHECK: @llvm.x86.avx512.permvar.qi.128
22 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
23 return _mm_mask_permutexvar_epi8(__W, __M, __A, __B);
26 __m256i test_mm256_permutexvar_epi8(__m256i __A, __m256i __B) {
27 // CHECK-LABEL: @test_mm256_permutexvar_epi8
28 // CHECK: @llvm.x86.avx512.permvar.qi.256
29 return _mm256_permutexvar_epi8(__A, __B);
32 __m256i test_mm256_maskz_permutexvar_epi8(__mmask32 __M, __m256i __A, __m256i __B) {
33 // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi8
34 // CHECK: @llvm.x86.avx512.permvar.qi.256
35 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
36 return _mm256_maskz_permutexvar_epi8(__M, __A, __B);
39 __m256i test_mm256_mask_permutexvar_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
40 // CHECK-LABEL: @test_mm256_mask_permutexvar_epi8
41 // CHECK: @llvm.x86.avx512.permvar.qi.256
42 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
43 return _mm256_mask_permutexvar_epi8(__W, __M, __A, __B);
46 __m128i test_mm_mask2_permutex2var_epi8(__m128i __A, __m128i __I, __mmask16 __U, __m128i __B) {
47 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi8
48 // CHECK: @llvm.x86.avx512.vpermi2var.qi.128
49 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
50 return _mm_mask2_permutex2var_epi8(__A, __I, __U, __B);
53 __m256i test_mm256_mask2_permutex2var_epi8(__m256i __A, __m256i __I, __mmask32 __U, __m256i __B) {
54 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi8
55 // CHECK: @llvm.x86.avx512.vpermi2var.qi.256
56 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
57 return _mm256_mask2_permutex2var_epi8(__A, __I, __U, __B);
60 __m128i test_mm_permutex2var_epi8(__m128i __A, __m128i __I, __m128i __B) {
61 // CHECK-LABEL: @test_mm_permutex2var_epi8
62 // CHECK: @llvm.x86.avx512.vpermi2var.qi.128
63 return _mm_permutex2var_epi8(__A, __I, __B);
66 __m128i test_mm_mask_permutex2var_epi8(__m128i __A, __mmask16 __U, __m128i __I, __m128i __B) {
67 // CHECK-LABEL: @test_mm_mask_permutex2var_epi8
68 // CHECK: @llvm.x86.avx512.vpermi2var.qi.128
69 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
70 return _mm_mask_permutex2var_epi8(__A, __U, __I, __B);
73 __m128i test_mm_maskz_permutex2var_epi8(__mmask16 __U, __m128i __A, __m128i __I, __m128i __B) {
74 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi8
75 // CHECK: @llvm.x86.avx512.vpermi2var.qi.128
76 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
77 return _mm_maskz_permutex2var_epi8(__U, __A, __I, __B);
80 __m256i test_mm256_permutex2var_epi8(__m256i __A, __m256i __I, __m256i __B) {
81 // CHECK-LABEL: @test_mm256_permutex2var_epi8
82 // CHECK: @llvm.x86.avx512.vpermi2var.qi.256
83 return _mm256_permutex2var_epi8(__A, __I, __B);
86 __m256i test_mm256_mask_permutex2var_epi8(__m256i __A, __mmask32 __U, __m256i __I, __m256i __B) {
87 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi8
88 // CHECK: @llvm.x86.avx512.vpermi2var.qi.256
89 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
90 return _mm256_mask_permutex2var_epi8(__A, __U, __I, __B);
93 __m256i test_mm256_maskz_permutex2var_epi8(__mmask32 __U, __m256i __A, __m256i __I, __m256i __B) {
94 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi8
95 // CHECK: @llvm.x86.avx512.vpermi2var.qi.256
96 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
97 return _mm256_maskz_permutex2var_epi8(__U, __A, __I, __B);
100 __m128i test_mm_mask_multishift_epi64_epi8(__m128i __W, __mmask16 __M, __m128i __X, __m128i __Y) {
101 // CHECK-LABEL: @test_mm_mask_multishift_epi64_epi8
102 // CHECK: @llvm.x86.avx512.pmultishift.qb.128
103 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
104 return _mm_mask_multishift_epi64_epi8(__W, __M, __X, __Y);
107 __m128i test_mm_maskz_multishift_epi64_epi8(__mmask16 __M, __m128i __X, __m128i __Y) {
108 // CHECK-LABEL: @test_mm_maskz_multishift_epi64_epi8
109 // CHECK: @llvm.x86.avx512.pmultishift.qb.128
110 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
111 return _mm_maskz_multishift_epi64_epi8(__M, __X, __Y);
114 __m128i test_mm_multishift_epi64_epi8(__m128i __X, __m128i __Y) {
115 // CHECK-LABEL: @test_mm_multishift_epi64_epi8
116 // CHECK: @llvm.x86.avx512.pmultishift.qb.128
117 return _mm_multishift_epi64_epi8(__X, __Y);
120 __m256i test_mm256_mask_multishift_epi64_epi8(__m256i __W, __mmask32 __M, __m256i __X, __m256i __Y) {
121 // CHECK-LABEL: @test_mm256_mask_multishift_epi64_epi8
122 // CHECK: @llvm.x86.avx512.pmultishift.qb.256
123 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
124 return _mm256_mask_multishift_epi64_epi8(__W, __M, __X, __Y);
127 __m256i test_mm256_maskz_multishift_epi64_epi8(__mmask32 __M, __m256i __X, __m256i __Y) {
128 // CHECK-LABEL: @test_mm256_maskz_multishift_epi64_epi8
129 // CHECK: @llvm.x86.avx512.pmultishift.qb.256
130 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
131 return _mm256_maskz_multishift_epi64_epi8(__M, __X, __Y);
134 __m256i test_mm256_multishift_epi64_epi8(__m256i __X, __m256i __Y) {
135 // CHECK-LABEL: @test_mm256_multishift_epi64_epi8
136 // CHECK: @llvm.x86.avx512.pmultishift.qb.256
137 return _mm256_multishift_epi64_epi8(__X, __Y);