|
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