1 // RUN: %clang_cc1 %s -O0 -triple=x86_64-apple-darwin -target-feature +avx512f -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_mm512_sqrt_pd(__m512d a)8 __m512d test_mm512_sqrt_pd(__m512d a)
9 {
10 // CHECK-LABEL: @test_mm512_sqrt_pd
11 // CHECK: @llvm.x86.avx512.sqrt.pd.512
12 return _mm512_sqrt_pd(a);
13 }
14
test_mm512_sqrt_ps(__m512 a)15 __m512 test_mm512_sqrt_ps(__m512 a)
16 {
17 // CHECK-LABEL: @test_mm512_sqrt_ps
18 // CHECK: @llvm.x86.avx512.sqrt.ps.512
19 return _mm512_sqrt_ps(a);
20 }
21
test_mm512_rsqrt14_pd(__m512d a)22 __m512d test_mm512_rsqrt14_pd(__m512d a)
23 {
24 // CHECK-LABEL: @test_mm512_rsqrt14_pd
25 // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
26 return _mm512_rsqrt14_pd(a);
27 }
28
test_mm512_rsqrt14_ps(__m512 a)29 __m512 test_mm512_rsqrt14_ps(__m512 a)
30 {
31 // CHECK-LABEL: @test_mm512_rsqrt14_ps
32 // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
33 return _mm512_rsqrt14_ps(a);
34 }
35
test_mm512_add_ps(__m512 a,__m512 b)36 __m512 test_mm512_add_ps(__m512 a, __m512 b)
37 {
38 // CHECK-LABEL: @test_mm512_add_ps
39 // CHECK: fadd <16 x float>
40 return _mm512_add_ps(a, b);
41 }
42
test_mm512_add_pd(__m512d a,__m512d b)43 __m512d test_mm512_add_pd(__m512d a, __m512d b)
44 {
45 // CHECK-LABEL: @test_mm512_add_pd
46 // CHECK: fadd <8 x double>
47 return _mm512_add_pd(a, b);
48 }
49
test_mm512_mul_ps(__m512 a,__m512 b)50 __m512 test_mm512_mul_ps(__m512 a, __m512 b)
51 {
52 // CHECK-LABEL: @test_mm512_mul_ps
53 // CHECK: fmul <16 x float>
54 return _mm512_mul_ps(a, b);
55 }
56
test_mm512_mul_pd(__m512d a,__m512d b)57 __m512d test_mm512_mul_pd(__m512d a, __m512d b)
58 {
59 // CHECK-LABEL: @test_mm512_mul_pd
60 // CHECK: fmul <8 x double>
61 return _mm512_mul_pd(a, b);
62 }
63
test_mm512_storeu_ps(void * p,__m512 a)64 void test_mm512_storeu_ps(void *p, __m512 a)
65 {
66 // CHECK-LABEL: @test_mm512_storeu_ps
67 // CHECK: @llvm.x86.avx512.mask.storeu.ps.512
68 _mm512_storeu_ps(p, a);
69 }
70
test_mm512_storeu_pd(void * p,__m512d a)71 void test_mm512_storeu_pd(void *p, __m512d a)
72 {
73 // CHECK-LABEL: @test_mm512_storeu_pd
74 // CHECK: @llvm.x86.avx512.mask.storeu.pd.512
75 _mm512_storeu_pd(p, a);
76 }
77
test_mm512_mask_store_ps(void * p,__m512 a,__mmask16 m)78 void test_mm512_mask_store_ps(void *p, __m512 a, __mmask16 m)
79 {
80 // CHECK-LABEL: @test_mm512_mask_store_ps
81 // CHECK: @llvm.x86.avx512.mask.store.ps.512
82 _mm512_mask_store_ps(p, m, a);
83 }
84
test_mm512_store_ps(void * p,__m512 a)85 void test_mm512_store_ps(void *p, __m512 a)
86 {
87 // CHECK-LABEL: @test_mm512_store_ps
88 // CHECK: store <16 x float>
89 _mm512_store_ps(p, a);
90 }
91
test_mm512_mask_store_pd(void * p,__m512d a,__mmask8 m)92 void test_mm512_mask_store_pd(void *p, __m512d a, __mmask8 m)
93 {
94 // CHECK-LABEL: @test_mm512_mask_store_pd
95 // CHECK: @llvm.x86.avx512.mask.store.pd.512
96 _mm512_mask_store_pd(p, m, a);
97 }
98
test_mm512_store_pd(void * p,__m512d a)99 void test_mm512_store_pd(void *p, __m512d a)
100 {
101 // CHECK-LABEL: @test_mm512_store_pd
102 // CHECK: store <8 x double>
103 _mm512_store_pd(p, a);
104 }
105
test_mm512_loadu_ps(void * p)106 __m512 test_mm512_loadu_ps(void *p)
107 {
108 // CHECK-LABEL: @test_mm512_loadu_ps
109 // CHECK: load <16 x float>, <16 x float>* {{.*}}, align 1{{$}}
110 return _mm512_loadu_ps(p);
111 }
112
test_mm512_loadu_pd(void * p)113 __m512d test_mm512_loadu_pd(void *p)
114 {
115 // CHECK-LABEL: @test_mm512_loadu_pd
116 // CHECK: load <8 x double>, <8 x double>* {{.*}}, align 1{{$}}
117 return _mm512_loadu_pd(p);
118 }
119
test_mm512_maskz_load_ps(void * p,__mmask16 m)120 __m512 test_mm512_maskz_load_ps(void *p, __mmask16 m)
121 {
122 // CHECK-LABEL: @test_mm512_maskz_load_ps
123 // CHECK: @llvm.x86.avx512.mask.load.ps.512
124 return _mm512_maskz_load_ps(m, p);
125 }
126
test_mm512_load_ps(void * p)127 __m512 test_mm512_load_ps(void *p)
128 {
129 // CHECK-LABEL: @test_mm512_load_ps
130 // CHECK: @llvm.x86.avx512.mask.load.ps.512
131 return _mm512_load_ps(p);
132 }
133
test_mm512_maskz_load_pd(void * p,__mmask8 m)134 __m512d test_mm512_maskz_load_pd(void *p, __mmask8 m)
135 {
136 // CHECK-LABEL: @test_mm512_maskz_load_pd
137 // CHECK: @llvm.x86.avx512.mask.load.pd.512
138 return _mm512_maskz_load_pd(m, p);
139 }
140
test_mm512_load_pd(void * p)141 __m512d test_mm512_load_pd(void *p)
142 {
143 // CHECK-LABEL: @test_mm512_load_pd
144 // CHECK: @llvm.x86.avx512.mask.load.pd.512
145 return _mm512_load_pd(p);
146 }
147
test_mm512_set1_pd(double d)148 __m512d test_mm512_set1_pd(double d)
149 {
150 // CHECK-LABEL: @test_mm512_set1_pd
151 // CHECK: insertelement <8 x double> {{.*}}, i32 0
152 // CHECK: insertelement <8 x double> {{.*}}, i32 1
153 // CHECK: insertelement <8 x double> {{.*}}, i32 2
154 // CHECK: insertelement <8 x double> {{.*}}, i32 3
155 // CHECK: insertelement <8 x double> {{.*}}, i32 4
156 // CHECK: insertelement <8 x double> {{.*}}, i32 5
157 // CHECK: insertelement <8 x double> {{.*}}, i32 6
158 // CHECK: insertelement <8 x double> {{.*}}, i32 7
159 return _mm512_set1_pd(d);
160 }
161
test_mm512_castpd256_pd512(__m256d a)162 __m512d test_mm512_castpd256_pd512(__m256d a)
163 {
164 // CHECK-LABEL: @test_mm512_castpd256_pd512
165 // CHECK: shufflevector <4 x double> {{.*}} <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
166 return _mm512_castpd256_pd512(a);
167 }
168
test_mm512_knot(__mmask16 a)169 __mmask16 test_mm512_knot(__mmask16 a)
170 {
171 // CHECK-LABEL: @test_mm512_knot
172 // CHECK: @llvm.x86.avx512.knot.w
173 return _mm512_knot(a);
174 }
175
test_mm512_alignr_epi32(__m512i a,__m512i b)176 __m512i test_mm512_alignr_epi32(__m512i a, __m512i b)
177 {
178 // CHECK-LABEL: @test_mm512_alignr_epi32
179 // CHECK: @llvm.x86.avx512.mask.valign.d.512
180 return _mm512_alignr_epi32(a, b, 2);
181 }
182
test_mm512_alignr_epi64(__m512i a,__m512i b)183 __m512i test_mm512_alignr_epi64(__m512i a, __m512i b)
184 {
185 // CHECK-LABEL: @test_mm512_alignr_epi64
186 // CHECK: @llvm.x86.avx512.mask.valign.q.512
187 return _mm512_alignr_epi64(a, b, 2);
188 }
189
test_mm512_broadcastsd_pd(__m128d a)190 __m512d test_mm512_broadcastsd_pd(__m128d a)
191 {
192 // CHECK-LABEL: @test_mm512_broadcastsd_pd
193 // CHECK: insertelement <8 x double> {{.*}}, i32 0
194 // CHECK: insertelement <8 x double> {{.*}}, i32 1
195 // CHECK: insertelement <8 x double> {{.*}}, i32 2
196 // CHECK: insertelement <8 x double> {{.*}}, i32 3
197 // CHECK: insertelement <8 x double> {{.*}}, i32 4
198 // CHECK: insertelement <8 x double> {{.*}}, i32 5
199 // CHECK: insertelement <8 x double> {{.*}}, i32 6
200 // CHECK: insertelement <8 x double> {{.*}}, i32 7
201 return _mm512_broadcastsd_pd(a);
202 }
203
test_mm512_fmadd_pd(__m512d a,__m512d b,__m512d c)204 __m512i test_mm512_fmadd_pd(__m512d a, __m512d b, __m512d c)
205 {
206 // CHECK-LABEL: @test_mm512_fmadd_pd
207 // CHECK: @llvm.x86.fma.mask.vfmadd.pd.512
208 return _mm512_fmadd_pd(a, b, c);
209 }
210
test_mm512_cmpeq_epi32_mask(__m512i __a,__m512i __b)211 __mmask16 test_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {
212 // CHECK-LABEL: @test_mm512_cmpeq_epi32_mask
213 // CHECK: @llvm.x86.avx512.mask.pcmpeq.d.512
214 return (__mmask16)_mm512_cmpeq_epi32_mask(__a, __b);
215 }
216
test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)217 __mmask16 test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
218 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi32_mask
219 // CHECK: @llvm.x86.avx512.mask.pcmpeq.d.512
220 return (__mmask16)_mm512_mask_cmpeq_epi32_mask(__u, __a, __b);
221 }
222
test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)223 __mmask8 test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
224 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi64_mask
225 // CHECK: @llvm.x86.avx512.mask.pcmpeq.q.512
226 return (__mmask8)_mm512_mask_cmpeq_epi64_mask(__u, __a, __b);
227 }
228
test_mm512_cmpeq_epi64_mask(__m512i __a,__m512i __b)229 __mmask8 test_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {
230 // CHECK-LABEL: @test_mm512_cmpeq_epi64_mask
231 // CHECK: @llvm.x86.avx512.mask.pcmpeq.q.512
232 return (__mmask8)_mm512_cmpeq_epi64_mask(__a, __b);
233 }
234
test_mm512_cmpgt_epi32_mask(__m512i __a,__m512i __b)235 __mmask16 test_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {
236 // CHECK-LABEL: @test_mm512_cmpgt_epi32_mask
237 // CHECK: @llvm.x86.avx512.mask.pcmpgt.d.512
238 return (__mmask16)_mm512_cmpgt_epi32_mask(__a, __b);
239 }
240
test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)241 __mmask16 test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
242 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi32_mask
243 // CHECK: @llvm.x86.avx512.mask.pcmpgt.d.512
244 return (__mmask16)_mm512_mask_cmpgt_epi32_mask(__u, __a, __b);
245 }
246
test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)247 __mmask8 test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
248 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi64_mask
249 // CHECK: @llvm.x86.avx512.mask.pcmpgt.q.512
250 return (__mmask8)_mm512_mask_cmpgt_epi64_mask(__u, __a, __b);
251 }
252
test_mm512_cmpgt_epi64_mask(__m512i __a,__m512i __b)253 __mmask8 test_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {
254 // CHECK-LABEL: @test_mm512_cmpgt_epi64_mask
255 // CHECK: @llvm.x86.avx512.mask.pcmpgt.q.512
256 return (__mmask8)_mm512_cmpgt_epi64_mask(__a, __b);
257 }
258
test_mm512_unpackhi_pd(__m512d a,__m512d b)259 __m512d test_mm512_unpackhi_pd(__m512d a, __m512d b)
260 {
261 // CHECK-LABEL: @test_mm512_unpackhi_pd
262 // CHECK: shufflevector <8 x double> {{.*}} <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
263 return _mm512_unpackhi_pd(a, b);
264 }
265
test_mm512_unpacklo_pd(__m512d a,__m512d b)266 __m512d test_mm512_unpacklo_pd(__m512d a, __m512d b)
267 {
268 // CHECK-LABEL: @test_mm512_unpacklo_pd
269 // CHECK: shufflevector <8 x double> {{.*}} <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
270 return _mm512_unpacklo_pd(a, b);
271 }
272
test_mm512_unpackhi_ps(__m512 a,__m512 b)273 __m512 test_mm512_unpackhi_ps(__m512 a, __m512 b)
274 {
275 // CHECK-LABEL: @test_mm512_unpackhi_ps
276 // CHECK: shufflevector <16 x float> {{.*}} <i32 2, i32 18, i32 3, i32 19, i32 6, i32 22, i32 7, i32 23, i32 10, i32 26, i32 11, i32 27, i32 14, i32 30, i32 15, i32 31>
277 return _mm512_unpackhi_ps(a, b);
278 }
279
test_mm512_unpacklo_ps(__m512 a,__m512 b)280 __m512 test_mm512_unpacklo_ps(__m512 a, __m512 b)
281 {
282 // CHECK-LABEL: @test_mm512_unpacklo_ps
283 // CHECK: shufflevector <16 x float> {{.*}} <i32 0, i32 16, i32 1, i32 17, i32 4, i32 20, i32 5, i32 21, i32 8, i32 24, i32 9, i32 25, i32 12, i32 28, i32 13, i32 29>
284 return _mm512_unpacklo_ps(a, b);
285 }
286
test_mm512_cmp_round_ps_mask(__m512 a,__m512 b)287 __mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) {
288 // CHECK-LABEL: @test_mm512_cmp_round_ps_mask
289 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
290 return _mm512_cmp_round_ps_mask(a, b, 0, _MM_FROUND_TO_NEAREST_INT);
291 }
292
test_mm512_mask_cmp_round_ps_mask(__mmask16 m,__m512 a,__m512 b)293 __mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) {
294 // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask
295 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
296 return _mm512_mask_cmp_round_ps_mask(m, a, b, 0, _MM_FROUND_TO_NEAREST_INT);
297 }
298
test_mm512_cmp_ps_mask(__m512 a,__m512 b)299 __mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) {
300 // check-label: @test_mm512_cmp_ps_mask
301 // check: @llvm.x86.avx512.mask.cmp.ps.512
302 return _mm512_cmp_ps_mask(a, b, 0);
303 }
304
test_mm512_mask_cmp_ps_mask(__mmask16 m,__m512 a,__m512 b)305 __mmask16 test_mm512_mask_cmp_ps_mask(__mmask16 m, __m512 a, __m512 b) {
306 // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask
307 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
308 return _mm512_mask_cmp_ps_mask(m, a, b, 0);
309 }
310
test_mm512_cmp_round_pd_mask(__m512d a,__m512d b)311 __mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) {
312 // CHECK-LABEL: @test_mm512_cmp_round_pd_mask
313 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
314 return _mm512_cmp_round_pd_mask(a, b, 0, _MM_FROUND_TO_NEAREST_INT);
315 }
316
test_mm512_mask_cmp_round_pd_mask(__mmask8 m,__m512d a,__m512d b)317 __mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) {
318 // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask
319 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
320 return _mm512_mask_cmp_round_pd_mask(m, a, b, 0, _MM_FROUND_TO_NEAREST_INT);
321 }
322
test_mm512_cmp_pd_mask(__m512d a,__m512d b)323 __mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) {
324 // check-label: @test_mm512_cmp_pd_mask
325 // check: @llvm.x86.avx512.mask.cmp.pd.512
326 return _mm512_cmp_pd_mask(a, b, 0);
327 }
328
test_mm512_mask_cmp_pd_mask(__mmask8 m,__m512d a,__m512d b)329 __mmask8 test_mm512_mask_cmp_pd_mask(__mmask8 m, __m512d a, __m512d b) {
330 // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask
331 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
332 return _mm512_mask_cmp_pd_mask(m, a, b, 0);
333 }
334
test_mm512_extractf64x4_pd(__m512d a)335 __m256d test_mm512_extractf64x4_pd(__m512d a)
336 {
337 // CHECK-LABEL: @test_mm512_extractf64x4_pd
338 // CHECK: @llvm.x86.avx512.mask.vextractf64x4.512
339 return _mm512_extractf64x4_pd(a, 1);
340 }
341
test_mm512_extractf32x4_ps(__m512 a)342 __m128 test_mm512_extractf32x4_ps(__m512 a)
343 {
344 // CHECK-LABEL: @test_mm512_extractf32x4_ps
345 // CHECK: @llvm.x86.avx512.mask.vextractf32x4.512
346 return _mm512_extractf32x4_ps(a, 1);
347 }
348
test_mm512_cmpeq_epu32_mask(__m512i __a,__m512i __b)349 __mmask16 test_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {
350 // CHECK-LABEL: @test_mm512_cmpeq_epu32_mask
351 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 0, i16 -1)
352 return (__mmask16)_mm512_cmpeq_epu32_mask(__a, __b);
353 }
354
test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)355 __mmask16 test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
356 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu32_mask
357 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 0, i16 {{.*}})
358 return (__mmask16)_mm512_mask_cmpeq_epu32_mask(__u, __a, __b);
359 }
360
test_mm512_cmpeq_epu64_mask(__m512i __a,__m512i __b)361 __mmask8 test_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {
362 // CHECK-LABEL: @test_mm512_cmpeq_epu64_mask
363 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 0, i8 -1)
364 return (__mmask8)_mm512_cmpeq_epu64_mask(__a, __b);
365 }
366
test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)367 __mmask8 test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
368 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu64_mask
369 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 0, i8 {{.*}})
370 return (__mmask8)_mm512_mask_cmpeq_epu64_mask(__u, __a, __b);
371 }
372
test_mm512_cmpge_epi32_mask(__m512i __a,__m512i __b)373 __mmask16 test_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {
374 // CHECK-LABEL: @test_mm512_cmpge_epi32_mask
375 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 5, i16 -1)
376 return (__mmask16)_mm512_cmpge_epi32_mask(__a, __b);
377 }
378
test_mm512_mask_cmpge_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)379 __mmask16 test_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
380 // CHECK-LABEL: @test_mm512_mask_cmpge_epi32_mask
381 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 5, i16 {{.*}})
382 return (__mmask16)_mm512_mask_cmpge_epi32_mask(__u, __a, __b);
383 }
384
test_mm512_cmpge_epi64_mask(__m512i __a,__m512i __b)385 __mmask8 test_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {
386 // CHECK-LABEL: @test_mm512_cmpge_epi64_mask
387 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 5, i8 -1)
388 return (__mmask8)_mm512_cmpge_epi64_mask(__a, __b);
389 }
390
test_mm512_mask_cmpge_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)391 __mmask8 test_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
392 // CHECK-LABEL: @test_mm512_mask_cmpge_epi64_mask
393 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 5, i8 {{.*}})
394 return (__mmask8)_mm512_mask_cmpge_epi64_mask(__u, __a, __b);
395 }
396
test_mm512_cmpge_epu32_mask(__m512i __a,__m512i __b)397 __mmask16 test_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {
398 // CHECK-LABEL: @test_mm512_cmpge_epu32_mask
399 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 5, i16 -1)
400 return (__mmask16)_mm512_cmpge_epu32_mask(__a, __b);
401 }
402
test_mm512_mask_cmpge_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)403 __mmask16 test_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
404 // CHECK-LABEL: @test_mm512_mask_cmpge_epu32_mask
405 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 5, i16 {{.*}})
406 return (__mmask16)_mm512_mask_cmpge_epu32_mask(__u, __a, __b);
407 }
408
test_mm512_cmpge_epu64_mask(__m512i __a,__m512i __b)409 __mmask8 test_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {
410 // CHECK-LABEL: @test_mm512_cmpge_epu64_mask
411 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 5, i8 -1)
412 return (__mmask8)_mm512_cmpge_epu64_mask(__a, __b);
413 }
414
test_mm512_mask_cmpge_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)415 __mmask8 test_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
416 // CHECK-LABEL: @test_mm512_mask_cmpge_epu64_mask
417 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 5, i8 {{.*}})
418 return (__mmask8)_mm512_mask_cmpge_epu64_mask(__u, __a, __b);
419 }
420
test_mm512_cmpgt_epu32_mask(__m512i __a,__m512i __b)421 __mmask16 test_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {
422 // CHECK-LABEL: @test_mm512_cmpgt_epu32_mask
423 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 6, i16 -1)
424 return (__mmask16)_mm512_cmpgt_epu32_mask(__a, __b);
425 }
426
test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)427 __mmask16 test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
428 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu32_mask
429 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 6, i16 {{.*}})
430 return (__mmask16)_mm512_mask_cmpgt_epu32_mask(__u, __a, __b);
431 }
432
test_mm512_cmpgt_epu64_mask(__m512i __a,__m512i __b)433 __mmask8 test_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {
434 // CHECK-LABEL: @test_mm512_cmpgt_epu64_mask
435 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 6, i8 -1)
436 return (__mmask8)_mm512_cmpgt_epu64_mask(__a, __b);
437 }
438
test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)439 __mmask8 test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
440 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu64_mask
441 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 6, i8 {{.*}})
442 return (__mmask8)_mm512_mask_cmpgt_epu64_mask(__u, __a, __b);
443 }
444
test_mm512_cmple_epi32_mask(__m512i __a,__m512i __b)445 __mmask16 test_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {
446 // CHECK-LABEL: @test_mm512_cmple_epi32_mask
447 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 2, i16 -1)
448 return (__mmask16)_mm512_cmple_epi32_mask(__a, __b);
449 }
450
test_mm512_mask_cmple_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)451 __mmask16 test_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
452 // CHECK-LABEL: @test_mm512_mask_cmple_epi32_mask
453 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 2, i16 {{.*}})
454 return (__mmask16)_mm512_mask_cmple_epi32_mask(__u, __a, __b);
455 }
456
test_mm512_cmple_epi64_mask(__m512i __a,__m512i __b)457 __mmask8 test_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {
458 // CHECK-LABEL: @test_mm512_cmple_epi64_mask
459 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 2, i8 -1)
460 return (__mmask8)_mm512_cmple_epi64_mask(__a, __b);
461 }
462
test_mm512_mask_cmple_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)463 __mmask8 test_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
464 // CHECK-LABEL: @test_mm512_mask_cmple_epi64_mask
465 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 2, i8 {{.*}})
466 return (__mmask8)_mm512_mask_cmple_epi64_mask(__u, __a, __b);
467 }
468
test_mm512_cmple_epu32_mask(__m512i __a,__m512i __b)469 __mmask16 test_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {
470 // CHECK-LABEL: @test_mm512_cmple_epu32_mask
471 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 2, i16 -1)
472 return (__mmask16)_mm512_cmple_epu32_mask(__a, __b);
473 }
474
test_mm512_mask_cmple_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)475 __mmask16 test_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
476 // CHECK-LABEL: @test_mm512_mask_cmple_epu32_mask
477 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 2, i16 {{.*}})
478 return (__mmask16)_mm512_mask_cmple_epu32_mask(__u, __a, __b);
479 }
480
test_mm512_cmple_epu64_mask(__m512i __a,__m512i __b)481 __mmask8 test_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {
482 // CHECK-LABEL: @test_mm512_cmple_epu64_mask
483 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 2, i8 -1)
484 return (__mmask8)_mm512_cmple_epu64_mask(__a, __b);
485 }
486
test_mm512_mask_cmple_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)487 __mmask8 test_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
488 // CHECK-LABEL: @test_mm512_mask_cmple_epu64_mask
489 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 2, i8 {{.*}})
490 return (__mmask8)_mm512_mask_cmple_epu64_mask(__u, __a, __b);
491 }
492
test_mm512_cmplt_epi32_mask(__m512i __a,__m512i __b)493 __mmask16 test_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {
494 // CHECK-LABEL: @test_mm512_cmplt_epi32_mask
495 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 1, i16 -1)
496 return (__mmask16)_mm512_cmplt_epi32_mask(__a, __b);
497 }
498
test_mm512_mask_cmplt_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)499 __mmask16 test_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
500 // CHECK-LABEL: @test_mm512_mask_cmplt_epi32_mask
501 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 1, i16 {{.*}})
502 return (__mmask16)_mm512_mask_cmplt_epi32_mask(__u, __a, __b);
503 }
504
test_mm512_cmplt_epi64_mask(__m512i __a,__m512i __b)505 __mmask8 test_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {
506 // CHECK-LABEL: @test_mm512_cmplt_epi64_mask
507 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 1, i8 -1)
508 return (__mmask8)_mm512_cmplt_epi64_mask(__a, __b);
509 }
510
test_mm512_mask_cmplt_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)511 __mmask8 test_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
512 // CHECK-LABEL: @test_mm512_mask_cmplt_epi64_mask
513 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 1, i8 {{.*}})
514 return (__mmask8)_mm512_mask_cmplt_epi64_mask(__u, __a, __b);
515 }
516
test_mm512_cmplt_epu32_mask(__m512i __a,__m512i __b)517 __mmask16 test_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {
518 // CHECK-LABEL: @test_mm512_cmplt_epu32_mask
519 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 1, i16 -1)
520 return (__mmask16)_mm512_cmplt_epu32_mask(__a, __b);
521 }
522
test_mm512_mask_cmplt_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)523 __mmask16 test_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
524 // CHECK-LABEL: @test_mm512_mask_cmplt_epu32_mask
525 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 1, i16 {{.*}})
526 return (__mmask16)_mm512_mask_cmplt_epu32_mask(__u, __a, __b);
527 }
528
test_mm512_cmplt_epu64_mask(__m512i __a,__m512i __b)529 __mmask8 test_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {
530 // CHECK-LABEL: @test_mm512_cmplt_epu64_mask
531 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 1, i8 -1)
532 return (__mmask8)_mm512_cmplt_epu64_mask(__a, __b);
533 }
534
test_mm512_mask_cmplt_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)535 __mmask8 test_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
536 // CHECK-LABEL: @test_mm512_mask_cmplt_epu64_mask
537 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 1, i8 {{.*}})
538 return (__mmask8)_mm512_mask_cmplt_epu64_mask(__u, __a, __b);
539 }
540
test_mm512_cmpneq_epi32_mask(__m512i __a,__m512i __b)541 __mmask16 test_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {
542 // CHECK-LABEL: @test_mm512_cmpneq_epi32_mask
543 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 4, i16 -1)
544 return (__mmask16)_mm512_cmpneq_epi32_mask(__a, __b);
545 }
546
test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)547 __mmask16 test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
548 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi32_mask
549 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 4, i16 {{.*}})
550 return (__mmask16)_mm512_mask_cmpneq_epi32_mask(__u, __a, __b);
551 }
552
test_mm512_cmpneq_epi64_mask(__m512i __a,__m512i __b)553 __mmask8 test_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {
554 // CHECK-LABEL: @test_mm512_cmpneq_epi64_mask
555 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 4, i8 -1)
556 return (__mmask8)_mm512_cmpneq_epi64_mask(__a, __b);
557 }
558
test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)559 __mmask8 test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
560 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi64_mask
561 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 4, i8 {{.*}})
562 return (__mmask8)_mm512_mask_cmpneq_epi64_mask(__u, __a, __b);
563 }
564
test_mm512_cmpneq_epu32_mask(__m512i __a,__m512i __b)565 __mmask16 test_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {
566 // CHECK-LABEL: @test_mm512_cmpneq_epu32_mask
567 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 4, i16 -1)
568 return (__mmask16)_mm512_cmpneq_epu32_mask(__a, __b);
569 }
570
test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)571 __mmask16 test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
572 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu32_mask
573 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 4, i16 {{.*}})
574 return (__mmask16)_mm512_mask_cmpneq_epu32_mask(__u, __a, __b);
575 }
576
test_mm512_cmpneq_epu64_mask(__m512i __a,__m512i __b)577 __mmask8 test_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {
578 // CHECK-LABEL: @test_mm512_cmpneq_epu64_mask
579 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 4, i8 -1)
580 return (__mmask8)_mm512_cmpneq_epu64_mask(__a, __b);
581 }
582
test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)583 __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
584 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu64_mask
585 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 4, i8 {{.*}})
586 return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b);
587 }
588
test_mm512_cmp_epi32_mask(__m512i __a,__m512i __b)589 __mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) {
590 // CHECK-LABEL: @test_mm512_cmp_epi32_mask
591 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 3, i16 -1)
592 return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 3);
593 }
594
test_mm512_mask_cmp_epi32_mask(__mmask16 __u,__m512i __a,__m512i __b)595 __mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
596 // CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask
597 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 3, i16 {{.*}})
598 return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 3);
599 }
600
test_mm512_cmp_epi64_mask(__m512i __a,__m512i __b)601 __mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) {
602 // CHECK-LABEL: @test_mm512_cmp_epi64_mask
603 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 3, i8 -1)
604 return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 3);
605 }
606
test_mm512_mask_cmp_epi64_mask(__mmask8 __u,__m512i __a,__m512i __b)607 __mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
608 // CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask
609 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 3, i8 {{.*}})
610 return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 3);
611 }
612
test_mm512_cmp_epu32_mask(__m512i __a,__m512i __b)613 __mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) {
614 // CHECK-LABEL: @test_mm512_cmp_epu32_mask
615 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 3, i16 -1)
616 return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 3);
617 }
618
test_mm512_mask_cmp_epu32_mask(__mmask16 __u,__m512i __a,__m512i __b)619 __mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
620 // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask
621 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i8 3, i16 {{.*}})
622 return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 3);
623 }
624
test_mm512_cmp_epu64_mask(__m512i __a,__m512i __b)625 __mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) {
626 // CHECK-LABEL: @test_mm512_cmp_epu64_mask
627 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 3, i8 -1)
628 return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 3);
629 }
630
test_mm512_mask_cmp_epu64_mask(__mmask8 __u,__m512i __a,__m512i __b)631 __mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
632 // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask
633 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i8 3, i8 {{.*}})
634 return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 3);
635 }
636
test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)637 __m512i test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
638 // CHECK-LABEL: @test_mm512_mask_and_epi32
639 // CHECK: @llvm.x86.avx512.mask.pand.d.512
640 return _mm512_mask_and_epi32(__src, __k,__a, __b);
641 }
642
test_mm512_maskz_and_epi32(__mmask16 __k,__m512i __a,__m512i __b)643 __m512i test_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
644 // CHECK-LABEL: @test_mm512_maskz_and_epi32
645 // CHECK: @llvm.x86.avx512.mask.pand.d.512
646 return _mm512_maskz_and_epi32(__k,__a, __b);
647 }
648
test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)649 __m512i test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
650 // CHECK-LABEL: @test_mm512_mask_and_epi64
651 // CHECK: @llvm.x86.avx512.mask.pand.q.512
652 return _mm512_mask_and_epi64(__src, __k,__a, __b);
653 }
654
test_mm512_maskz_and_epi64(__mmask8 __k,__m512i __a,__m512i __b)655 __m512i test_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
656 // CHECK-LABEL: @test_mm512_maskz_and_epi64
657 // CHECK: @llvm.x86.avx512.mask.pand.q.512
658 return _mm512_maskz_and_epi64(__k,__a, __b);
659 }
660
test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)661 __m512i test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
662 // CHECK-LABEL: @test_mm512_mask_or_epi32
663 // CHECK: @llvm.x86.avx512.mask.por.d.512
664 return _mm512_mask_or_epi32(__src, __k,__a, __b);
665 }
666
test_mm512_maskz_or_epi32(__mmask16 __k,__m512i __a,__m512i __b)667 __m512i test_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
668 // CHECK-LABEL: @test_mm512_maskz_or_epi32
669 // CHECK: @llvm.x86.avx512.mask.por.d.512
670 return _mm512_maskz_or_epi32(__k,__a, __b);
671 }
672
test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)673 __m512i test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
674 // CHECK-LABEL: @test_mm512_mask_or_epi64
675 // CHECK: @llvm.x86.avx512.mask.por.q.512
676 return _mm512_mask_or_epi64(__src, __k,__a, __b);
677 }
678
test_mm512_maskz_or_epi64(__mmask8 __k,__m512i __a,__m512i __b)679 __m512i test_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
680 // CHECK-LABEL: @test_mm512_maskz_or_epi64
681 // CHECK: @llvm.x86.avx512.mask.por.q.512
682 return _mm512_maskz_or_epi64(__k,__a, __b);
683 }
684
test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)685 __m512i test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
686 // CHECK-LABEL: @test_mm512_mask_xor_epi32
687 // CHECK: @llvm.x86.avx512.mask.pxor.d.512
688 return _mm512_mask_xor_epi32(__src, __k,__a, __b);
689 }
690
test_mm512_maskz_xor_epi32(__mmask16 __k,__m512i __a,__m512i __b)691 __m512i test_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
692 // CHECK-LABEL: @test_mm512_maskz_xor_epi32
693 // CHECK: @llvm.x86.avx512.mask.pxor.d.512
694 return _mm512_maskz_xor_epi32(__k,__a, __b);
695 }
696
test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)697 __m512i test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
698 // CHECK-LABEL: @test_mm512_mask_xor_epi64
699 // CHECK: @llvm.x86.avx512.mask.pxor.q.512
700 return _mm512_mask_xor_epi64(__src, __k,__a, __b);
701 }
702
test_mm512_maskz_xor_epi64(__mmask8 __k,__m512i __a,__m512i __b)703 __m512i test_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
704 // CHECK-LABEL: @test_mm512_maskz_xor_epi64
705 // CHECK: @llvm.x86.avx512.mask.pxor.q.512
706 return _mm512_maskz_xor_epi64(__k,__a, __b);
707 }
708
test_mm512_and_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)709 __m512i test_mm512_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
710 // CHECK-LABEL: @test_mm512_and_epi32
711 // CHECK: and <8 x i64>
712 return _mm512_and_epi32(__a, __b);
713 }
714
test_mm512_and_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)715 __m512i test_mm512_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
716 // CHECK-LABEL: @test_mm512_and_epi64
717 // CHECK: and <8 x i64>
718 return _mm512_and_epi64(__a, __b);
719 }
720
test_mm512_or_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)721 __m512i test_mm512_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
722 // CHECK-LABEL: @test_mm512_or_epi32
723 // CHECK: or <8 x i64>
724 return _mm512_or_epi32(__a, __b);
725 }
726
test_mm512_or_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)727 __m512i test_mm512_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
728 // CHECK-LABEL: @test_mm512_or_epi64
729 // CHECK: or <8 x i64>
730 return _mm512_or_epi64(__a, __b);
731 }
732
test_mm512_xor_epi32(__m512i __src,__mmask16 __k,__m512i __a,__m512i __b)733 __m512i test_mm512_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
734 // CHECK-LABEL: @test_mm512_xor_epi32
735 // CHECK: xor <8 x i64>
736 return _mm512_xor_epi32(__a, __b);
737 }
738
test_mm512_xor_epi64(__m512i __src,__mmask8 __k,__m512i __a,__m512i __b)739 __m512i test_mm512_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
740 // CHECK-LABEL: @test_mm512_xor_epi64
741 // CHECK: xor <8 x i64>
742 return _mm512_xor_epi64(__a, __b);
743 }
744
745