|
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 |
| 1 | +// RUN: %clang_cc1 -x c -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 |
| 2 | +// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512vbmi -target-feature +avx512vl -target-feature +avx512bw -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 3 | +// RUN: %clang_cc1 -x c++ -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 | +// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512vbmi -target-feature +avx512vl -target-feature +avx512bw -emit-llvm -o - -Wall -Werror | FileCheck %s |
2 | 5 |
|
3 | 6 |
|
4 | 7 | #include <immintrin.h>
|
5 | 8 |
|
6 | 9 | __m128i test_mm_permutexvar_epi8(__m128i __A, __m128i __B) {
|
7 |
| - // CHECK-LABEL: @test_mm_permutexvar_epi8 |
8 |
| - // CHECK: @llvm.x86.avx512.permvar.qi.128 |
| 10 | + // CHECK-LABEL: test_mm_permutexvar_epi8 |
| 11 | + // CHECK: call <16 x i8> @llvm.x86.avx512.permvar.qi.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
9 | 12 | return _mm_permutexvar_epi8(__A, __B);
|
10 | 13 | }
|
11 | 14 |
|
12 | 15 | __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 |
| 16 | + // CHECK-LABEL: test_mm_maskz_permutexvar_epi8 |
| 17 | + // CHECK: call <16 x i8> @llvm.x86.avx512.permvar.qi.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
15 | 18 | // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
|
16 | 19 | return _mm_maskz_permutexvar_epi8(__M, __A, __B);
|
17 | 20 | }
|
18 | 21 |
|
19 | 22 | __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 |
| 23 | + // CHECK-LABEL: test_mm_mask_permutexvar_epi8 |
| 24 | + // CHECK: call <16 x i8> @llvm.x86.avx512.permvar.qi.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
22 | 25 | // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
|
23 | 26 | return _mm_mask_permutexvar_epi8(__W, __M, __A, __B);
|
24 | 27 | }
|
25 | 28 |
|
26 | 29 | __m256i test_mm256_permutexvar_epi8(__m256i __A, __m256i __B) {
|
27 |
| - // CHECK-LABEL: @test_mm256_permutexvar_epi8 |
28 |
| - // CHECK: @llvm.x86.avx512.permvar.qi.256 |
| 30 | + // CHECK-LABEL: test_mm256_permutexvar_epi8 |
| 31 | + // CHECK: call <32 x i8> @llvm.x86.avx512.permvar.qi.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
29 | 32 | return _mm256_permutexvar_epi8(__A, __B);
|
30 | 33 | }
|
31 | 34 |
|
32 | 35 | __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 |
| 36 | + // CHECK-LABEL: test_mm256_maskz_permutexvar_epi8 |
| 37 | + // CHECK: call <32 x i8> @llvm.x86.avx512.permvar.qi.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
35 | 38 | // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
|
36 | 39 | return _mm256_maskz_permutexvar_epi8(__M, __A, __B);
|
37 | 40 | }
|
38 | 41 |
|
39 | 42 | __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 |
| 43 | + // CHECK-LABEL: test_mm256_mask_permutexvar_epi8 |
| 44 | + // CHECK: call <32 x i8> @llvm.x86.avx512.permvar.qi.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
42 | 45 | // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
|
43 | 46 | return _mm256_mask_permutexvar_epi8(__W, __M, __A, __B);
|
44 | 47 | }
|
45 | 48 |
|
46 | 49 | __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 |
| 50 | + // CHECK-LABEL: test_mm_mask2_permutex2var_epi8 |
| 51 | + // CHECK: call <16 x i8> @llvm.x86.avx512.vpermi2var.qi.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
49 | 52 | // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
|
50 | 53 | return _mm_mask2_permutex2var_epi8(__A, __I, __U, __B);
|
51 | 54 | }
|
52 | 55 |
|
53 | 56 | __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 |
| 57 | + // CHECK-LABEL: test_mm256_mask2_permutex2var_epi8 |
| 58 | + // CHECK: call <32 x i8> @llvm.x86.avx512.vpermi2var.qi.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
56 | 59 | // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
|
57 | 60 | return _mm256_mask2_permutex2var_epi8(__A, __I, __U, __B);
|
58 | 61 | }
|
59 | 62 |
|
60 | 63 | __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 |
| 64 | + // CHECK-LABEL: test_mm_permutex2var_epi8 |
| 65 | + // CHECK: call <16 x i8> @llvm.x86.avx512.vpermi2var.qi.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
63 | 66 | return _mm_permutex2var_epi8(__A, __I, __B);
|
64 | 67 | }
|
65 | 68 |
|
66 | 69 | __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 |
| 70 | + // CHECK-LABEL: test_mm_mask_permutex2var_epi8 |
| 71 | + // CHECK: call <16 x i8> @llvm.x86.avx512.vpermi2var.qi.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
69 | 72 | // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
|
70 | 73 | return _mm_mask_permutex2var_epi8(__A, __U, __I, __B);
|
71 | 74 | }
|
72 | 75 |
|
73 | 76 | __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 |
| 77 | + // CHECK-LABEL: test_mm_maskz_permutex2var_epi8 |
| 78 | + // CHECK: call <16 x i8> @llvm.x86.avx512.vpermi2var.qi.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
76 | 79 | // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
|
77 | 80 | return _mm_maskz_permutex2var_epi8(__U, __A, __I, __B);
|
78 | 81 | }
|
79 | 82 |
|
80 | 83 | __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 |
| 84 | + // CHECK-LABEL: test_mm256_permutex2var_epi8 |
| 85 | + // CHECK: call <32 x i8> @llvm.x86.avx512.vpermi2var.qi.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
83 | 86 | return _mm256_permutex2var_epi8(__A, __I, __B);
|
84 | 87 | }
|
85 | 88 |
|
86 | 89 | __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 |
| 90 | + // CHECK-LABEL: test_mm256_mask_permutex2var_epi8 |
| 91 | + // CHECK: call <32 x i8> @llvm.x86.avx512.vpermi2var.qi.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
89 | 92 | // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
|
90 | 93 | return _mm256_mask_permutex2var_epi8(__A, __U, __I, __B);
|
91 | 94 | }
|
92 | 95 |
|
93 | 96 | __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 |
| 97 | + // CHECK-LABEL: test_mm256_maskz_permutex2var_epi8 |
| 98 | + // CHECK: call <32 x i8> @llvm.x86.avx512.vpermi2var.qi.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
96 | 99 | // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
|
97 | 100 | return _mm256_maskz_permutex2var_epi8(__U, __A, __I, __B);
|
98 | 101 | }
|
99 | 102 |
|
100 | 103 | __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 |
| 104 | + // CHECK-LABEL: test_mm_mask_multishift_epi64_epi8 |
| 105 | + // CHECK: call <16 x i8> @llvm.x86.avx512.pmultishift.qb.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
103 | 106 | // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
|
104 | 107 | return _mm_mask_multishift_epi64_epi8(__W, __M, __X, __Y);
|
105 | 108 | }
|
106 | 109 |
|
107 | 110 | __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 |
| 111 | + // CHECK-LABEL: test_mm_maskz_multishift_epi64_epi8 |
| 112 | + // CHECK: call <16 x i8> @llvm.x86.avx512.pmultishift.qb.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
110 | 113 | // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
|
111 | 114 | return _mm_maskz_multishift_epi64_epi8(__M, __X, __Y);
|
112 | 115 | }
|
113 | 116 |
|
114 | 117 | __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 |
| 118 | + // CHECK-LABEL: test_mm_multishift_epi64_epi8 |
| 119 | + // CHECK: call <16 x i8> @llvm.x86.avx512.pmultishift.qb.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}) |
117 | 120 | return _mm_multishift_epi64_epi8(__X, __Y);
|
118 | 121 | }
|
119 | 122 |
|
120 | 123 | __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 |
| 124 | + // CHECK-LABEL: test_mm256_mask_multishift_epi64_epi8 |
| 125 | + // CHECK: call <32 x i8> @llvm.x86.avx512.pmultishift.qb.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
123 | 126 | // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
|
124 | 127 | return _mm256_mask_multishift_epi64_epi8(__W, __M, __X, __Y);
|
125 | 128 | }
|
126 | 129 |
|
127 | 130 | __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 |
| 131 | + // CHECK-LABEL: test_mm256_maskz_multishift_epi64_epi8 |
| 132 | + // CHECK: call <32 x i8> @llvm.x86.avx512.pmultishift.qb.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
130 | 133 | // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
|
131 | 134 | return _mm256_maskz_multishift_epi64_epi8(__M, __X, __Y);
|
132 | 135 | }
|
133 | 136 |
|
134 | 137 | __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 |
| 138 | + // CHECK-LABEL: test_mm256_multishift_epi64_epi8 |
| 139 | + // CHECK: call <32 x i8> @llvm.x86.avx512.pmultishift.qb.256(<32 x i8> %{{.*}}, <32 x i8> %{{.*}}) |
137 | 140 | return _mm256_multishift_epi64_epi8(__X, __Y);
|
138 | 141 | }
|
139 | 142 |
|
0 commit comments