• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512vbmi -target-feature +avx512vl -target-feature +avx512bw -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 
test_mm_permutexvar_epi8(__m128i __A,__m128i __B)8 __m128i test_mm_permutexvar_epi8(__m128i __A, __m128i __B) {
9   // CHECK-LABEL: @test_mm_permutexvar_epi8
10   // CHECK: @llvm.x86.avx512.mask.permvar.qi.128
11   return _mm_permutexvar_epi8(__A, __B);
12 }
13 
test_mm_maskz_permutexvar_epi8(__mmask16 __M,__m128i __A,__m128i __B)14 __m128i test_mm_maskz_permutexvar_epi8(__mmask16 __M, __m128i __A, __m128i __B) {
15   // CHECK-LABEL: @test_mm_maskz_permutexvar_epi8
16   // CHECK: @llvm.x86.avx512.mask.permvar.qi.128
17   return _mm_maskz_permutexvar_epi8(__M, __A, __B);
18 }
19 
test_mm_mask_permutexvar_epi8(__m128i __W,__mmask16 __M,__m128i __A,__m128i __B)20 __m128i test_mm_mask_permutexvar_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) {
21   // CHECK-LABEL: @test_mm_mask_permutexvar_epi8
22   // CHECK: @llvm.x86.avx512.mask.permvar.qi.128
23   return _mm_mask_permutexvar_epi8(__W, __M, __A, __B);
24 }
25 
test_mm256_permutexvar_epi8(__m256i __A,__m256i __B)26 __m256i test_mm256_permutexvar_epi8(__m256i __A, __m256i __B) {
27   // CHECK-LABEL: @test_mm256_permutexvar_epi8
28   // CHECK: @llvm.x86.avx512.mask.permvar.qi.256
29   return _mm256_permutexvar_epi8(__A, __B);
30 }
31 
test_mm256_maskz_permutexvar_epi8(__mmask32 __M,__m256i __A,__m256i __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.mask.permvar.qi.256
35   return _mm256_maskz_permutexvar_epi8(__M, __A, __B);
36 }
37 
test_mm256_mask_permutexvar_epi8(__m256i __W,__mmask32 __M,__m256i __A,__m256i __B)38 __m256i test_mm256_mask_permutexvar_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) {
39   // CHECK-LABEL: @test_mm256_mask_permutexvar_epi8
40   // CHECK: @llvm.x86.avx512.mask.permvar.qi.256
41   return _mm256_mask_permutexvar_epi8(__W, __M, __A, __B);
42 }
43 
test_mm_mask2_permutex2var_epi8(__m128i __A,__m128i __I,__mmask16 __U,__m128i __B)44 __m128i test_mm_mask2_permutex2var_epi8(__m128i __A, __m128i __I, __mmask16 __U, __m128i __B) {
45   // CHECK-LABEL: @test_mm_mask2_permutex2var_epi8
46   // CHECK: @llvm.x86.avx512.mask.vpermi2var.qi.128
47   return _mm_mask2_permutex2var_epi8(__A, __I, __U, __B);
48 }
49 
test_mm256_mask2_permutex2var_epi8(__m256i __A,__m256i __I,__mmask32 __U,__m256i __B)50 __m256i test_mm256_mask2_permutex2var_epi8(__m256i __A, __m256i __I, __mmask32 __U, __m256i __B) {
51   // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi8
52   // CHECK: @llvm.x86.avx512.mask.vpermi2var.qi.256
53   return _mm256_mask2_permutex2var_epi8(__A, __I, __U, __B);
54 }
55 
test_mm_permutex2var_epi8(__m128i __A,__m128i __I,__m128i __B)56 __m128i test_mm_permutex2var_epi8(__m128i __A, __m128i __I, __m128i __B) {
57   // CHECK-LABEL: @test_mm_permutex2var_epi8
58   // CHECK: @llvm.x86.avx512.mask.vpermt2var.qi.128
59   return _mm_permutex2var_epi8(__A, __I, __B);
60 }
61 
test_mm_mask_permutex2var_epi8(__m128i __A,__mmask16 __U,__m128i __I,__m128i __B)62 __m128i test_mm_mask_permutex2var_epi8(__m128i __A, __mmask16 __U, __m128i __I, __m128i __B) {
63   // CHECK-LABEL: @test_mm_mask_permutex2var_epi8
64   // CHECK: @llvm.x86.avx512.mask.vpermt2var.qi.128
65   return _mm_mask_permutex2var_epi8(__A, __U, __I, __B);
66 }
67 
test_mm_maskz_permutex2var_epi8(__mmask16 __U,__m128i __A,__m128i __I,__m128i __B)68 __m128i test_mm_maskz_permutex2var_epi8(__mmask16 __U, __m128i __A, __m128i __I, __m128i __B) {
69   // CHECK-LABEL: @test_mm_maskz_permutex2var_epi8
70   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.qi.128
71   return _mm_maskz_permutex2var_epi8(__U, __A, __I, __B);
72 }
73 
test_mm256_permutex2var_epi8(__m256i __A,__m256i __I,__m256i __B)74 __m256i test_mm256_permutex2var_epi8(__m256i __A, __m256i __I, __m256i __B) {
75   // CHECK-LABEL: @test_mm256_permutex2var_epi8
76   // CHECK: @llvm.x86.avx512.mask.vpermt2var.qi.256
77   return _mm256_permutex2var_epi8(__A, __I, __B);
78 }
79 
test_mm256_mask_permutex2var_epi8(__m256i __A,__mmask32 __U,__m256i __I,__m256i __B)80 __m256i test_mm256_mask_permutex2var_epi8(__m256i __A, __mmask32 __U, __m256i __I, __m256i __B) {
81   // CHECK-LABEL: @test_mm256_mask_permutex2var_epi8
82   // CHECK: @llvm.x86.avx512.mask.vpermt2var.qi.256
83   return _mm256_mask_permutex2var_epi8(__A, __U, __I, __B);
84 }
85 
test_mm256_maskz_permutex2var_epi8(__mmask32 __U,__m256i __A,__m256i __I,__m256i __B)86 __m256i test_mm256_maskz_permutex2var_epi8(__mmask32 __U, __m256i __A, __m256i __I, __m256i __B) {
87   // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi8
88   // CHECK: @llvm.x86.avx512.maskz.vpermt2var.qi.256
89   return _mm256_maskz_permutex2var_epi8(__U, __A, __I, __B);
90 }
91 
test_mm_mask_multishift_epi64_epi8(__m128i __W,__mmask16 __M,__m128i __X,__m128i __Y)92 __m128i test_mm_mask_multishift_epi64_epi8(__m128i __W, __mmask16 __M, __m128i __X, __m128i __Y) {
93   // CHECK-LABEL: @test_mm_mask_multishift_epi64_epi8
94   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.128
95   return _mm_mask_multishift_epi64_epi8(__W, __M, __X, __Y);
96 }
97 
test_mm_maskz_multishift_epi64_epi8(__mmask16 __M,__m128i __X,__m128i __Y)98 __m128i test_mm_maskz_multishift_epi64_epi8(__mmask16 __M, __m128i __X, __m128i __Y) {
99   // CHECK-LABEL: @test_mm_maskz_multishift_epi64_epi8
100   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.128
101   return _mm_maskz_multishift_epi64_epi8(__M, __X, __Y);
102 }
103 
test_mm_multishift_epi64_epi8(__m128i __X,__m128i __Y)104 __m128i test_mm_multishift_epi64_epi8(__m128i __X, __m128i __Y) {
105   // CHECK-LABEL: @test_mm_multishift_epi64_epi8
106   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.128
107   return _mm_multishift_epi64_epi8(__X, __Y);
108 }
109 
test_mm256_mask_multishift_epi64_epi8(__m256i __W,__mmask32 __M,__m256i __X,__m256i __Y)110 __m256i test_mm256_mask_multishift_epi64_epi8(__m256i __W, __mmask32 __M, __m256i __X, __m256i __Y) {
111   // CHECK-LABEL: @test_mm256_mask_multishift_epi64_epi8
112   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.256
113   return _mm256_mask_multishift_epi64_epi8(__W, __M, __X, __Y);
114 }
115 
test_mm256_maskz_multishift_epi64_epi8(__mmask32 __M,__m256i __X,__m256i __Y)116 __m256i test_mm256_maskz_multishift_epi64_epi8(__mmask32 __M, __m256i __X, __m256i __Y) {
117   // CHECK-LABEL: @test_mm256_maskz_multishift_epi64_epi8
118   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.256
119   return _mm256_maskz_multishift_epi64_epi8(__M, __X, __Y);
120 }
121 
test_mm256_multishift_epi64_epi8(__m256i __X,__m256i __Y)122 __m256i test_mm256_multishift_epi64_epi8(__m256i __X, __m256i __Y) {
123   // CHECK-LABEL: @test_mm256_multishift_epi64_epi8
124   // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.256
125   return _mm256_multishift_epi64_epi8(__X, __Y);
126 }
127 
128