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