1
- // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vl -target-feature +avx512cd -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 +avx512vl -target-feature +avx512cd -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 +avx512vl -target-feature +avx512cd -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 +avx512vl -target-feature +avx512cd -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 +avx512vl -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
2
5
3
6
4
7
#include <immintrin.h>
5
8
6
9
__m128i test_mm_broadcastmb_epi64 (__m128i a ,__m128i b ) {
7
- // CHECK-LABEL: @ test_mm_broadcastmb_epi64
10
+ // CHECK-LABEL: test_mm_broadcastmb_epi64
8
11
// CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
9
12
// CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
10
13
// CHECK: zext i8 %{{.*}} to i64
@@ -14,7 +17,7 @@ __m128i test_mm_broadcastmb_epi64(__m128i a,__m128i b) {
14
17
}
15
18
16
19
__m256i test_mm256_broadcastmb_epi64 (__m256i a , __m256i b ) {
17
- // CHECK-LABEL: @ test_mm256_broadcastmb_epi64
20
+ // CHECK-LABEL: test_mm256_broadcastmb_epi64
18
21
// CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
19
22
// CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
20
23
// CHECK: zext i8 %{{.*}} to i64
@@ -26,7 +29,7 @@ __m256i test_mm256_broadcastmb_epi64(__m256i a, __m256i b) {
26
29
}
27
30
28
31
__m128i test_mm_broadcastmw_epi32 (__m512i a , __m512i b ) {
29
- // CHECK-LABEL: @ test_mm_broadcastmw_epi32
32
+ // CHECK-LABEL: test_mm_broadcastmw_epi32
30
33
// CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
31
34
// CHECK: zext i16 %{{.*}} to i32
32
35
// CHECK: insertelement <4 x i32> poison, i32 %{{.*}}, i32 0
@@ -37,7 +40,7 @@ __m128i test_mm_broadcastmw_epi32(__m512i a, __m512i b) {
37
40
}
38
41
39
42
__m256i test_mm256_broadcastmw_epi32 (__m512i a , __m512i b ) {
40
- // CHECK-LABEL: @ test_mm256_broadcastmw_epi32
43
+ // CHECK-LABEL: test_mm256_broadcastmw_epi32
41
44
// CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
42
45
// CHECK: zext i16 %{{.*}} to i32
43
46
// CHECK: insertelement <8 x i32> poison, i32 %{{.*}}, i32 0
@@ -52,161 +55,161 @@ __m256i test_mm256_broadcastmw_epi32(__m512i a, __m512i b) {
52
55
}
53
56
54
57
__m128i test_mm_conflict_epi64 (__m128i __A ) {
55
- // CHECK-LABEL: @ test_mm_conflict_epi64
56
- // CHECK: @llvm.x86.avx512.conflict.q.128
58
+ // CHECK-LABEL: test_mm_conflict_epi64
59
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.conflict.q.128(<2 x i64> %{{.*}})
57
60
return _mm_conflict_epi64 (__A );
58
61
}
59
62
60
63
__m128i test_mm_mask_conflict_epi64 (__m128i __W , __mmask8 __U , __m128i __A ) {
61
- // CHECK-LABEL: @ test_mm_mask_conflict_epi64
62
- // CHECK: @llvm.x86.avx512.conflict.q.128
64
+ // CHECK-LABEL: test_mm_mask_conflict_epi64
65
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.conflict.q.128(<2 x i64> %{{.*}})
63
66
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
64
67
return _mm_mask_conflict_epi64 (__W , __U , __A );
65
68
}
66
69
67
70
__m128i test_mm_maskz_conflict_epi64 (__mmask8 __U , __m128i __A ) {
68
- // CHECK-LABEL: @ test_mm_maskz_conflict_epi64
69
- // CHECK: @llvm.x86.avx512.conflict.q.128
71
+ // CHECK-LABEL: test_mm_maskz_conflict_epi64
72
+ // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.conflict.q.128(<2 x i64> %{{.*}})
70
73
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
71
74
return _mm_maskz_conflict_epi64 (__U , __A );
72
75
}
73
76
74
77
__m256i test_mm256_conflict_epi64 (__m256i __A ) {
75
- // CHECK-LABEL: @ test_mm256_conflict_epi64
76
- // CHECK: @llvm.x86.avx512.conflict.q.256
78
+ // CHECK-LABEL: test_mm256_conflict_epi64
79
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.conflict.q.256(<4 x i64> %{{.*}})
77
80
return _mm256_conflict_epi64 (__A );
78
81
}
79
82
80
83
__m256i test_mm256_mask_conflict_epi64 (__m256i __W , __mmask8 __U , __m256i __A ) {
81
- // CHECK-LABEL: @ test_mm256_mask_conflict_epi64
82
- // CHECK: @llvm.x86.avx512.conflict.q.256
84
+ // CHECK-LABEL: test_mm256_mask_conflict_epi64
85
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.conflict.q.256(<4 x i64> %{{.*}})
83
86
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
84
87
return _mm256_mask_conflict_epi64 (__W , __U , __A );
85
88
}
86
89
87
90
__m256i test_mm256_maskz_conflict_epi64 (__mmask8 __U , __m256i __A ) {
88
- // CHECK-LABEL: @ test_mm256_maskz_conflict_epi64
89
- // CHECK: @llvm.x86.avx512.conflict.q.256
91
+ // CHECK-LABEL: test_mm256_maskz_conflict_epi64
92
+ // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.conflict.q.256(<4 x i64> %{{.*}})
90
93
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
91
94
return _mm256_maskz_conflict_epi64 (__U , __A );
92
95
}
93
96
94
97
__m128i test_mm_conflict_epi32 (__m128i __A ) {
95
- // CHECK-LABEL: @ test_mm_conflict_epi32
96
- // CHECK: @llvm.x86.avx512.conflict.d.128
98
+ // CHECK-LABEL: test_mm_conflict_epi32
99
+ // CHECK: call <4 x i32> @llvm.x86.avx512.conflict.d.128(<4 x i32> %{{.*}})
97
100
return _mm_conflict_epi32 (__A );
98
101
}
99
102
100
103
__m128i test_mm_mask_conflict_epi32 (__m128i __W , __mmask8 __U , __m128i __A ) {
101
- // CHECK-LABEL: @ test_mm_mask_conflict_epi32
102
- // CHECK: @llvm.x86.avx512.conflict.d.128
104
+ // CHECK-LABEL: test_mm_mask_conflict_epi32
105
+ // CHECK: call <4 x i32> @llvm.x86.avx512.conflict.d.128(<4 x i32> %{{.*}})
103
106
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
104
107
return _mm_mask_conflict_epi32 (__W , __U , __A );
105
108
}
106
109
107
110
__m128i test_mm_maskz_conflict_epi32 (__mmask8 __U , __m128i __A ) {
108
- // CHECK-LABEL: @ test_mm_maskz_conflict_epi32
109
- // CHECK: @llvm.x86.avx512.conflict.d.128
111
+ // CHECK-LABEL: test_mm_maskz_conflict_epi32
112
+ // CHECK: call <4 x i32> @llvm.x86.avx512.conflict.d.128(<4 x i32> %{{.*}})
110
113
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
111
114
return _mm_maskz_conflict_epi32 (__U , __A );
112
115
}
113
116
114
117
__m256i test_mm256_conflict_epi32 (__m256i __A ) {
115
- // CHECK-LABEL: @ test_mm256_conflict_epi32
116
- // CHECK: @llvm.x86.avx512.conflict.d.256
118
+ // CHECK-LABEL: test_mm256_conflict_epi32
119
+ // CHECK: call <8 x i32> @llvm.x86.avx512.conflict.d.256(<8 x i32> %{{.*}})
117
120
return _mm256_conflict_epi32 (__A );
118
121
}
119
122
120
123
__m256i test_mm256_mask_conflict_epi32 (__m256i __W , __mmask8 __U , __m256i __A ) {
121
- // CHECK-LABEL: @ test_mm256_mask_conflict_epi32
122
- // CHECK: @llvm.x86.avx512.conflict.d.256
124
+ // CHECK-LABEL: test_mm256_mask_conflict_epi32
125
+ // CHECK: call <8 x i32> @llvm.x86.avx512.conflict.d.256(<8 x i32> %{{.*}})
123
126
// CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
124
127
return _mm256_mask_conflict_epi32 (__W , __U , __A );
125
128
}
126
129
127
130
__m256i test_mm256_maskz_conflict_epi32 (__mmask8 __U , __m256i __A ) {
128
- // CHECK-LABEL: @ test_mm256_maskz_conflict_epi32
129
- // CHECK: @llvm.x86.avx512.conflict.d.256
131
+ // CHECK-LABEL: test_mm256_maskz_conflict_epi32
132
+ // CHECK: call <8 x i32> @llvm.x86.avx512.conflict.d.256(<8 x i32> %{{.*}})
130
133
// CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
131
134
return _mm256_maskz_conflict_epi32 (__U , __A );
132
135
}
133
136
134
137
__m128i test_mm_lzcnt_epi32 (__m128i __A ) {
135
- // CHECK-LABEL: @ test_mm_lzcnt_epi32
138
+ // CHECK-LABEL: test_mm_lzcnt_epi32
136
139
// CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
137
140
return _mm_lzcnt_epi32 (__A );
138
141
}
139
142
140
143
__m128i test_mm_mask_lzcnt_epi32 (__m128i __W , __mmask8 __U , __m128i __A ) {
141
- // CHECK-LABEL: @ test_mm_mask_lzcnt_epi32
144
+ // CHECK-LABEL: test_mm_mask_lzcnt_epi32
142
145
// CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
143
146
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
144
147
return _mm_mask_lzcnt_epi32 (__W , __U , __A );
145
148
}
146
149
147
150
__m128i test_mm_maskz_lzcnt_epi32 (__mmask8 __U , __m128i __A ) {
148
- // CHECK-LABEL: @ test_mm_maskz_lzcnt_epi32
151
+ // CHECK-LABEL: test_mm_maskz_lzcnt_epi32
149
152
// CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
150
153
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
151
154
return _mm_maskz_lzcnt_epi32 (__U , __A );
152
155
}
153
156
154
157
__m256i test_mm256_lzcnt_epi32 (__m256i __A ) {
155
- // CHECK-LABEL: @ test_mm256_lzcnt_epi32
158
+ // CHECK-LABEL: test_mm256_lzcnt_epi32
156
159
// CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
157
160
return _mm256_lzcnt_epi32 (__A );
158
161
}
159
162
160
163
__m256i test_mm256_mask_lzcnt_epi32 (__m256i __W , __mmask8 __U , __m256i __A ) {
161
- // CHECK-LABEL: @ test_mm256_mask_lzcnt_epi32
164
+ // CHECK-LABEL: test_mm256_mask_lzcnt_epi32
162
165
// CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
163
166
// CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
164
167
return _mm256_mask_lzcnt_epi32 (__W , __U , __A );
165
168
}
166
169
167
170
__m256i test_mm256_maskz_lzcnt_epi32 (__mmask8 __U , __m256i __A ) {
168
- // CHECK-LABEL: @ test_mm256_maskz_lzcnt_epi32
171
+ // CHECK-LABEL: test_mm256_maskz_lzcnt_epi32
169
172
// CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
170
173
// CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
171
174
return _mm256_maskz_lzcnt_epi32 (__U , __A );
172
175
}
173
176
174
177
__m128i test_mm_lzcnt_epi64 (__m128i __A ) {
175
- // CHECK-LABEL: @ test_mm_lzcnt_epi64
176
- // CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
178
+ // CHECK-LABEL: test_mm_lzcnt_epi64
179
+ // CHECK: call {{.*}} <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
177
180
return _mm_lzcnt_epi64 (__A );
178
181
}
179
182
180
183
__m128i test_mm_mask_lzcnt_epi64 (__m128i __W , __mmask8 __U , __m128i __A ) {
181
- // CHECK-LABEL: @ test_mm_mask_lzcnt_epi64
182
- // CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
184
+ // CHECK-LABEL: test_mm_mask_lzcnt_epi64
185
+ // CHECK: call {{.*}} <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
183
186
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
184
187
return _mm_mask_lzcnt_epi64 (__W , __U , __A );
185
188
}
186
189
187
190
__m128i test_mm_maskz_lzcnt_epi64 (__mmask8 __U , __m128i __A ) {
188
- // CHECK-LABEL: @ test_mm_maskz_lzcnt_epi64
189
- // CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
191
+ // CHECK-LABEL: test_mm_maskz_lzcnt_epi64
192
+ // CHECK: call {{.*}} <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
190
193
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
191
194
return _mm_maskz_lzcnt_epi64 (__U , __A );
192
195
}
193
196
194
197
__m256i test_mm256_lzcnt_epi64 (__m256i __A ) {
195
- // CHECK-LABEL: @ test_mm256_lzcnt_epi64
196
- // CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
198
+ // CHECK-LABEL: test_mm256_lzcnt_epi64
199
+ // CHECK: call {{.*}} <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
197
200
return _mm256_lzcnt_epi64 (__A );
198
201
}
199
202
200
203
__m256i test_mm256_mask_lzcnt_epi64 (__m256i __W , __mmask8 __U , __m256i __A ) {
201
- // CHECK-LABEL: @ test_mm256_mask_lzcnt_epi64
202
- // CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
204
+ // CHECK-LABEL: test_mm256_mask_lzcnt_epi64
205
+ // CHECK: call {{.*}} <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
203
206
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
204
207
return _mm256_mask_lzcnt_epi64 (__W , __U , __A );
205
208
}
206
209
207
210
__m256i test_mm256_maskz_lzcnt_epi64 (__mmask8 __U , __m256i __A ) {
208
- // CHECK-LABEL: @ test_mm256_maskz_lzcnt_epi64
209
- // CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
211
+ // CHECK-LABEL: test_mm256_maskz_lzcnt_epi64
212
+ // CHECK: call {{.*}} <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
210
213
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
211
214
return _mm256_maskz_lzcnt_epi64 (__U , __A );
212
215
}
0 commit comments