blob: d2ddb04be5adcfc0344028d2c4e85e58ac7d7788 [file] [log] [blame]
Elena Demikhovskyfcc6df32014-07-22 11:31:39 +00001// 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
8__m512d test_mm512_sqrt_pd(__m512d a)
9{
Adam Nemet062ba612014-07-28 17:14:36 +000010 // CHECK-LABEL: @test_mm512_sqrt_pd
Asaf Badouh5a26b252015-06-03 13:42:46 +000011 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.512
Elena Demikhovskyfcc6df32014-07-22 11:31:39 +000012 return _mm512_sqrt_pd(a);
13}
14
15__m512 test_mm512_sqrt_ps(__m512 a)
16{
Adam Nemet062ba612014-07-28 17:14:36 +000017 // CHECK-LABEL: @test_mm512_sqrt_ps
Asaf Badouh5a26b252015-06-03 13:42:46 +000018 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.512
Elena Demikhovskyfcc6df32014-07-22 11:31:39 +000019 return _mm512_sqrt_ps(a);
20}
21
22__m512d test_mm512_rsqrt14_pd(__m512d a)
23{
Adam Nemet062ba612014-07-28 17:14:36 +000024 // CHECK-LABEL: @test_mm512_rsqrt14_pd
Elena Demikhovskyfcc6df32014-07-22 11:31:39 +000025 // CHECK: @llvm.x86.avx512.rsqrt14.pd.512
26 return _mm512_rsqrt14_pd(a);
27}
28
29__m512 test_mm512_rsqrt14_ps(__m512 a)
30{
Adam Nemet062ba612014-07-28 17:14:36 +000031 // CHECK-LABEL: @test_mm512_rsqrt14_ps
Elena Demikhovskyfcc6df32014-07-22 11:31:39 +000032 // CHECK: @llvm.x86.avx512.rsqrt14.ps.512
33 return _mm512_rsqrt14_ps(a);
34}
Adam Nemeta3ebe622014-07-28 17:14:42 +000035
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
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
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
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}
Adam Nemetfce1ad02014-07-28 17:14:45 +000063
64void 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
71void 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
Adam Nemetc0cff242015-01-16 18:51:50 +000078void 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
Adam Nemetfce1ad02014-07-28 17:14:45 +000085void 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
Adam Nemetc0cff242015-01-16 18:51:50 +000092void 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
Adam Nemetfce1ad02014-07-28 17:14:45 +000099void 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}
Adam Nemetf42e7a22014-07-30 16:51:22 +0000105
Adam Nemetda82bcc2014-07-31 04:00:39 +0000106__m512 test_mm512_loadu_ps(void *p)
107{
108 // CHECK-LABEL: @test_mm512_loadu_ps
David Blaikiea953f282015-02-27 21:19:58 +0000109 // CHECK: load <16 x float>, <16 x float>* {{.*}}, align 1{{$}}
Adam Nemetda82bcc2014-07-31 04:00:39 +0000110 return _mm512_loadu_ps(p);
111}
112
113__m512d test_mm512_loadu_pd(void *p)
114{
115 // CHECK-LABEL: @test_mm512_loadu_pd
David Blaikiea953f282015-02-27 21:19:58 +0000116 // CHECK: load <8 x double>, <8 x double>* {{.*}}, align 1{{$}}
Adam Nemetda82bcc2014-07-31 04:00:39 +0000117 return _mm512_loadu_pd(p);
118}
119
Adam Nemetc0cff242015-01-16 18:51:50 +0000120__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
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
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
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
Adam Nemetf42e7a22014-07-30 16:51:22 +0000148__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}
Adam Nemetc871ff92014-07-30 16:51:24 +0000161
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}
Adam Nemet2db1d2f2014-07-30 16:51:27 +0000168
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}
Adam Nemet5bf7baa2014-08-05 17:28:23 +0000175
Craig Topper67826a52015-02-01 07:35:40 +0000176__m512i test_mm512_alignr_epi32(__m512i a, __m512i b)
Adam Nemet5bf7baa2014-08-05 17:28:23 +0000177{
Craig Topper67826a52015-02-01 07:35:40 +0000178 // 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
183__m512i test_mm512_alignr_epi64(__m512i a, __m512i b)
184{
185 // CHECK-LABEL: @test_mm512_alignr_epi64
Adam Nemet5bf7baa2014-08-05 17:28:23 +0000186 // CHECK: @llvm.x86.avx512.mask.valign.q.512
Craig Topper67826a52015-02-01 07:35:40 +0000187 return _mm512_alignr_epi64(a, b, 2);
Adam Nemet5bf7baa2014-08-05 17:28:23 +0000188}
Adam Nemet4abc07c2014-08-13 00:29:01 +0000189
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}
Adam Nemet2278fcb2014-08-14 17:17:57 +0000203
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +0000204__m512d test_mm512_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
205 // CHECK-LABEL: @test_mm512_fmadd_round_pd
206 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
207 return _mm512_fmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
208}
209
210__m512d test_mm512_mask_fmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
211 // CHECK-LABEL: @test_mm512_mask_fmadd_round_pd
212 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
213 return _mm512_mask_fmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
214}
215__m512d test_mm512_mask3_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
216 // CHECK-LABEL: @test_mm512_mask3_fmadd_round_pd
217 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
218 return _mm512_mask3_fmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
219}
220__m512d test_mm512_maskz_fmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
221 // CHECK-LABEL: @test_mm512_maskz_fmadd_round_pd
222 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
223 return _mm512_maskz_fmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
224}
225__m512d test_mm512_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
226 // CHECK-LABEL: @test_mm512_fmsub_round_pd
227 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
228 return _mm512_fmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
229}
230__m512d test_mm512_mask_fmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
231 // CHECK-LABEL: @test_mm512_mask_fmsub_round_pd
232 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
233 return _mm512_mask_fmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
234}
235__m512d test_mm512_maskz_fmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
236 // CHECK-LABEL: @test_mm512_maskz_fmsub_round_pd
237 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
238 return _mm512_maskz_fmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
239}
240__m512d test_mm512_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
241 // CHECK-LABEL: @test_mm512_fnmadd_round_pd
242 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
243 return _mm512_fnmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
244}
245__m512d test_mm512_mask3_fnmadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
246 // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_pd
247 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
248 return _mm512_mask3_fnmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
249}
250__m512d test_mm512_maskz_fnmadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
251 // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_pd
252 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
253 return _mm512_maskz_fnmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
254}
255__m512d test_mm512_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
256 // CHECK-LABEL: @test_mm512_fnmsub_round_pd
257 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
258 return _mm512_fnmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
259}
260__m512d test_mm512_maskz_fnmsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
261 // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_pd
262 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
263 return _mm512_maskz_fnmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
264}
265__m512d test_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
Adam Nemet2278fcb2014-08-14 17:17:57 +0000266 // CHECK-LABEL: @test_mm512_fmadd_pd
Elena Demikhovskyc563c2c2015-06-29 09:20:57 +0000267 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
268 return _mm512_fmadd_pd(__A, __B, __C);
269}
270__m512d test_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
271 // CHECK-LABEL: @test_mm512_mask_fmadd_pd
272 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
273 return _mm512_mask_fmadd_pd(__A, __U, __B, __C);
274}
275__m512d test_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
276 // CHECK-LABEL: @test_mm512_mask3_fmadd_pd
277 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
278 return _mm512_mask3_fmadd_pd(__A, __B, __C, __U);
279}
280__m512d test_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
281 // CHECK-LABEL: @test_mm512_maskz_fmadd_pd
282 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
283 return _mm512_maskz_fmadd_pd(__U, __A, __B, __C);
284}
285__m512d test_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
286 // CHECK-LABEL: @test_mm512_fmsub_pd
287 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
288 return _mm512_fmsub_pd(__A, __B, __C);
289}
290__m512d test_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
291 // CHECK-LABEL: @test_mm512_mask_fmsub_pd
292 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
293 return _mm512_mask_fmsub_pd(__A, __U, __B, __C);
294}
295__m512d test_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
296 // CHECK-LABEL: @test_mm512_maskz_fmsub_pd
297 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
298 return _mm512_maskz_fmsub_pd(__U, __A, __B, __C);
299}
300__m512d test_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) {
301 // CHECK-LABEL: @test_mm512_fnmadd_pd
302 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
303 return _mm512_fnmadd_pd(__A, __B, __C);
304}
305__m512d test_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
306 // CHECK-LABEL: @test_mm512_mask3_fnmadd_pd
307 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.512
308 return _mm512_mask3_fnmadd_pd(__A, __B, __C, __U);
309}
310__m512d test_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
311 // CHECK-LABEL: @test_mm512_maskz_fnmadd_pd
312 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
313 return _mm512_maskz_fnmadd_pd(__U, __A, __B, __C);
314}
315__m512d test_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) {
316 // CHECK-LABEL: @test_mm512_fnmsub_pd
317 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512
318 return _mm512_fnmsub_pd(__A, __B, __C);
319}
320__m512d test_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
321 // CHECK-LABEL: @test_mm512_maskz_fnmsub_pd
322 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.512
323 return _mm512_maskz_fnmsub_pd(__U, __A, __B, __C);
324}
325__m512 test_mm512_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
326 // CHECK-LABEL: @test_mm512_fmadd_round_ps
327 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
328 return _mm512_fmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
329}
330__m512 test_mm512_mask_fmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
331 // CHECK-LABEL: @test_mm512_mask_fmadd_round_ps
332 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
333 return _mm512_mask_fmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
334}
335__m512 test_mm512_mask3_fmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
336 // CHECK-LABEL: @test_mm512_mask3_fmadd_round_ps
337 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
338 return _mm512_mask3_fmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
339}
340__m512 test_mm512_maskz_fmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
341 // CHECK-LABEL: @test_mm512_maskz_fmadd_round_ps
342 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
343 return _mm512_maskz_fmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
344}
345__m512 test_mm512_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
346 // CHECK-LABEL: @test_mm512_fmsub_round_ps
347 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
348 return _mm512_fmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
349}
350__m512 test_mm512_mask_fmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
351 // CHECK-LABEL: @test_mm512_mask_fmsub_round_ps
352 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
353 return _mm512_mask_fmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
354}
355__m512 test_mm512_maskz_fmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
356 // CHECK-LABEL: @test_mm512_maskz_fmsub_round_ps
357 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
358 return _mm512_maskz_fmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
359}
360__m512 test_mm512_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
361 // CHECK-LABEL: @test_mm512_fnmadd_round_ps
362 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
363 return _mm512_fnmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
364}
365__m512 test_mm512_mask3_fnmadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
366 // CHECK-LABEL: @test_mm512_mask3_fnmadd_round_ps
367 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
368 return _mm512_mask3_fnmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
369}
370__m512 test_mm512_maskz_fnmadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
371 // CHECK-LABEL: @test_mm512_maskz_fnmadd_round_ps
372 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
373 return _mm512_maskz_fnmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
374}
375__m512 test_mm512_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
376 // CHECK-LABEL: @test_mm512_fnmsub_round_ps
377 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
378 return _mm512_fnmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
379}
380__m512 test_mm512_maskz_fnmsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
381 // CHECK-LABEL: @test_mm512_maskz_fnmsub_round_ps
382 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
383 return _mm512_maskz_fnmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
384}
385__m512 test_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
386 // CHECK-LABEL: @test_mm512_fmadd_ps
387 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
388 return _mm512_fmadd_ps(__A, __B, __C);
389}
390__m512 test_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
391 // CHECK-LABEL: @test_mm512_mask_fmadd_ps
392 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
393 return _mm512_mask_fmadd_ps(__A, __U, __B, __C);
394}
395__m512 test_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
396 // CHECK-LABEL: @test_mm512_mask3_fmadd_ps
397 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
398 return _mm512_mask3_fmadd_ps(__A, __B, __C, __U);
399}
400__m512 test_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
401 // CHECK-LABEL: @test_mm512_maskz_fmadd_ps
402 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
403 return _mm512_maskz_fmadd_ps(__U, __A, __B, __C);
404}
405__m512 test_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
406 // CHECK-LABEL: @test_mm512_fmsub_ps
407 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
408 return _mm512_fmsub_ps(__A, __B, __C);
409}
410__m512 test_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
411 // CHECK-LABEL: @test_mm512_mask_fmsub_ps
412 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
413 return _mm512_mask_fmsub_ps(__A, __U, __B, __C);
414}
415__m512 test_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
416 // CHECK-LABEL: @test_mm512_maskz_fmsub_ps
417 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
418 return _mm512_maskz_fmsub_ps(__U, __A, __B, __C);
419}
420__m512 test_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) {
421 // CHECK-LABEL: @test_mm512_fnmadd_ps
422 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
423 return _mm512_fnmadd_ps(__A, __B, __C);
424}
425__m512 test_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
426 // CHECK-LABEL: @test_mm512_mask3_fnmadd_ps
427 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.512
428 return _mm512_mask3_fnmadd_ps(__A, __B, __C, __U);
429}
430__m512 test_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
431 // CHECK-LABEL: @test_mm512_maskz_fnmadd_ps
432 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
433 return _mm512_maskz_fnmadd_ps(__U, __A, __B, __C);
434}
435__m512 test_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) {
436 // CHECK-LABEL: @test_mm512_fnmsub_ps
437 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.512
438 return _mm512_fnmsub_ps(__A, __B, __C);
439}
440__m512 test_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
441 // CHECK-LABEL: @test_mm512_maskz_fnmsub_ps
442 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.512
443 return _mm512_maskz_fnmsub_ps(__U, __A, __B, __C);
444}
445__m512d test_mm512_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C) {
446 // CHECK-LABEL: @test_mm512_fmaddsub_round_pd
447 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
448 return _mm512_fmaddsub_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
449}
450__m512d test_mm512_mask_fmaddsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
451 // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_pd
452 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
453 return _mm512_mask_fmaddsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
454}
455__m512d test_mm512_mask3_fmaddsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
456 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_pd
457 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
458 return _mm512_mask3_fmaddsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
459}
460__m512d test_mm512_maskz_fmaddsub_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
461 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_pd
462 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
463 return _mm512_maskz_fmaddsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
464}
465__m512d test_mm512_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C) {
466 // CHECK-LABEL: @test_mm512_fmsubadd_round_pd
467 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
468 return _mm512_fmsubadd_round_pd(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
469}
470__m512d test_mm512_mask_fmsubadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
471 // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_pd
472 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
473 return _mm512_mask_fmsubadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
474}
475__m512d test_mm512_maskz_fmsubadd_round_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
476 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_pd
477 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
478 return _mm512_maskz_fmsubadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
479}
480__m512d test_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) {
481 // CHECK-LABEL: @test_mm512_fmaddsub_pd
482 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
483 return _mm512_fmaddsub_pd(__A, __B, __C);
484}
485__m512d test_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
486 // CHECK-LABEL: @test_mm512_mask_fmaddsub_pd
487 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
488 return _mm512_mask_fmaddsub_pd(__A, __U, __B, __C);
489}
490__m512d test_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
491 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_pd
492 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.512
493 return _mm512_mask3_fmaddsub_pd(__A, __B, __C, __U);
494}
495__m512d test_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
496 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_pd
497 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
498 return _mm512_maskz_fmaddsub_pd(__U, __A, __B, __C);
499}
500__m512d test_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) {
501 // CHECK-LABEL: @test_mm512_fmsubadd_pd
502 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
503 return _mm512_fmsubadd_pd(__A, __B, __C);
504}
505__m512d test_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
506 // CHECK-LABEL: @test_mm512_mask_fmsubadd_pd
507 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.512
508 return _mm512_mask_fmsubadd_pd(__A, __U, __B, __C);
509}
510__m512d test_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) {
511 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_pd
512 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.512
513 return _mm512_maskz_fmsubadd_pd(__U, __A, __B, __C);
514}
515__m512 test_mm512_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C) {
516 // CHECK-LABEL: @test_mm512_fmaddsub_round_ps
517 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
518 return _mm512_fmaddsub_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
519}
520__m512 test_mm512_mask_fmaddsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
521 // CHECK-LABEL: @test_mm512_mask_fmaddsub_round_ps
522 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
523 return _mm512_mask_fmaddsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
524}
525__m512 test_mm512_mask3_fmaddsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
526 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_round_ps
527 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
528 return _mm512_mask3_fmaddsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
529}
530__m512 test_mm512_maskz_fmaddsub_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
531 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_round_ps
532 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
533 return _mm512_maskz_fmaddsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
534}
535__m512 test_mm512_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C) {
536 // CHECK-LABEL: @test_mm512_fmsubadd_round_ps
537 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
538 return _mm512_fmsubadd_round_ps(__A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
539}
540__m512 test_mm512_mask_fmsubadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
541 // CHECK-LABEL: @test_mm512_mask_fmsubadd_round_ps
542 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
543 return _mm512_mask_fmsubadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
544}
545__m512 test_mm512_maskz_fmsubadd_round_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
546 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_round_ps
547 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
548 return _mm512_maskz_fmsubadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_NEAREST_INT);
549}
550__m512 test_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) {
551 // CHECK-LABEL: @test_mm512_fmaddsub_ps
552 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
553 return _mm512_fmaddsub_ps(__A, __B, __C);
554}
555__m512 test_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
556 // CHECK-LABEL: @test_mm512_mask_fmaddsub_ps
557 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
558 return _mm512_mask_fmaddsub_ps(__A, __U, __B, __C);
559}
560__m512 test_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
561 // CHECK-LABEL: @test_mm512_mask3_fmaddsub_ps
562 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.512
563 return _mm512_mask3_fmaddsub_ps(__A, __B, __C, __U);
564}
565__m512 test_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
566 // CHECK-LABEL: @test_mm512_maskz_fmaddsub_ps
567 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
568 return _mm512_maskz_fmaddsub_ps(__U, __A, __B, __C);
569}
570__m512 test_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) {
571 // CHECK-LABEL: @test_mm512_fmsubadd_ps
572 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
573 return _mm512_fmsubadd_ps(__A, __B, __C);
574}
575__m512 test_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
576 // CHECK-LABEL: @test_mm512_mask_fmsubadd_ps
577 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.512
578 return _mm512_mask_fmsubadd_ps(__A, __U, __B, __C);
579}
580__m512 test_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) {
581 // CHECK-LABEL: @test_mm512_maskz_fmsubadd_ps
582 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.512
583 return _mm512_maskz_fmsubadd_ps(__U, __A, __B, __C);
584}
585__m512d test_mm512_mask3_fmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
586 // CHECK-LABEL: @test_mm512_mask3_fmsub_round_pd
587 // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
588 return _mm512_mask3_fmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
589}
590__m512d test_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
591 // CHECK-LABEL: @test_mm512_mask3_fmsub_pd
592 // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.512
593 return _mm512_mask3_fmsub_pd(__A, __B, __C, __U);
594}
595__m512 test_mm512_mask3_fmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
596 // CHECK-LABEL: @test_mm512_mask3_fmsub_round_ps
597 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
598 return _mm512_mask3_fmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
599}
600__m512 test_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
601 // CHECK-LABEL: @test_mm512_mask3_fmsub_ps
602 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.512
603 return _mm512_mask3_fmsub_ps(__A, __B, __C, __U);
604}
605__m512d test_mm512_mask3_fmsubadd_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
606 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_pd
607 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
608 return _mm512_mask3_fmsubadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
609}
610__m512d test_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
611 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_pd
612 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.512
613 return _mm512_mask3_fmsubadd_pd(__A, __B, __C, __U);
614}
615__m512 test_mm512_mask3_fmsubadd_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
616 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_round_ps
617 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
618 return _mm512_mask3_fmsubadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
619}
620__m512 test_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
621 // CHECK-LABEL: @test_mm512_mask3_fmsubadd_ps
622 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.512
623 return _mm512_mask3_fmsubadd_ps(__A, __B, __C, __U);
624}
625__m512d test_mm512_mask_fnmadd_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
626 // CHECK-LABEL: @test_mm512_mask_fnmadd_round_pd
627 // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
628 return _mm512_mask_fnmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
629}
630__m512d test_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
631 // CHECK-LABEL: @test_mm512_mask_fnmadd_pd
632 // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.512
633 return _mm512_mask_fnmadd_pd(__A, __U, __B, __C);
634}
635__m512 test_mm512_mask_fnmadd_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
636 // CHECK-LABEL: @test_mm512_mask_fnmadd_round_ps
637 // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
638 return _mm512_mask_fnmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
639}
640__m512 test_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
641 // CHECK-LABEL: @test_mm512_mask_fnmadd_ps
642 // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.512
643 return _mm512_mask_fnmadd_ps(__A, __U, __B, __C);
644}
645__m512d test_mm512_mask_fnmsub_round_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
646 // CHECK-LABEL: @test_mm512_mask_fnmsub_round_pd
647 // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
648 return _mm512_mask_fnmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
649}
650__m512d test_mm512_mask3_fnmsub_round_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
651 // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_pd
652 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
653 return _mm512_mask3_fnmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
654}
655__m512d test_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) {
656 // CHECK-LABEL: @test_mm512_mask_fnmsub_pd
657 // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.512
658 return _mm512_mask_fnmsub_pd(__A, __U, __B, __C);
659}
660__m512d test_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) {
661 // CHECK-LABEL: @test_mm512_mask3_fnmsub_pd
662 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.512
663 return _mm512_mask3_fnmsub_pd(__A, __B, __C, __U);
664}
665__m512 test_mm512_mask_fnmsub_round_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
666 // CHECK-LABEL: @test_mm512_mask_fnmsub_round_ps
667 // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
668 return _mm512_mask_fnmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_NEAREST_INT);
669}
670__m512 test_mm512_mask3_fnmsub_round_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
671 // CHECK-LABEL: @test_mm512_mask3_fnmsub_round_ps
672 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
673 return _mm512_mask3_fnmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_NEAREST_INT);
674}
675__m512 test_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) {
676 // CHECK-LABEL: @test_mm512_mask_fnmsub_ps
677 // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.512
678 return _mm512_mask_fnmsub_ps(__A, __U, __B, __C);
679}
680__m512 test_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) {
681 // CHECK-LABEL: @test_mm512_mask3_fnmsub_ps
682 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.512
683 return _mm512_mask3_fnmsub_ps(__A, __B, __C, __U);
Adam Nemet2278fcb2014-08-14 17:17:57 +0000684}
Robert Khasanovb9f3a912014-10-08 17:18:13 +0000685
686__mmask16 test_mm512_cmpeq_epi32_mask(__m512i __a, __m512i __b) {
687 // CHECK-LABEL: @test_mm512_cmpeq_epi32_mask
688 // CHECK: @llvm.x86.avx512.mask.pcmpeq.d.512
689 return (__mmask16)_mm512_cmpeq_epi32_mask(__a, __b);
690}
691
692__mmask16 test_mm512_mask_cmpeq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
693 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi32_mask
694 // CHECK: @llvm.x86.avx512.mask.pcmpeq.d.512
695 return (__mmask16)_mm512_mask_cmpeq_epi32_mask(__u, __a, __b);
696}
697
698__mmask8 test_mm512_mask_cmpeq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
699 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi64_mask
700 // CHECK: @llvm.x86.avx512.mask.pcmpeq.q.512
701 return (__mmask8)_mm512_mask_cmpeq_epi64_mask(__u, __a, __b);
702}
703
704__mmask8 test_mm512_cmpeq_epi64_mask(__m512i __a, __m512i __b) {
705 // CHECK-LABEL: @test_mm512_cmpeq_epi64_mask
706 // CHECK: @llvm.x86.avx512.mask.pcmpeq.q.512
707 return (__mmask8)_mm512_cmpeq_epi64_mask(__a, __b);
708}
Adam Nemet63a951e2015-01-14 01:31:17 +0000709
Craig Topper4cac1c22015-01-25 23:30:07 +0000710__mmask16 test_mm512_cmpgt_epi32_mask(__m512i __a, __m512i __b) {
711 // CHECK-LABEL: @test_mm512_cmpgt_epi32_mask
712 // CHECK: @llvm.x86.avx512.mask.pcmpgt.d.512
713 return (__mmask16)_mm512_cmpgt_epi32_mask(__a, __b);
714}
715
716__mmask16 test_mm512_mask_cmpgt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
717 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi32_mask
718 // CHECK: @llvm.x86.avx512.mask.pcmpgt.d.512
719 return (__mmask16)_mm512_mask_cmpgt_epi32_mask(__u, __a, __b);
720}
721
722__mmask8 test_mm512_mask_cmpgt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
723 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi64_mask
724 // CHECK: @llvm.x86.avx512.mask.pcmpgt.q.512
725 return (__mmask8)_mm512_mask_cmpgt_epi64_mask(__u, __a, __b);
726}
727
728__mmask8 test_mm512_cmpgt_epi64_mask(__m512i __a, __m512i __b) {
729 // CHECK-LABEL: @test_mm512_cmpgt_epi64_mask
730 // CHECK: @llvm.x86.avx512.mask.pcmpgt.q.512
731 return (__mmask8)_mm512_cmpgt_epi64_mask(__a, __b);
732}
733
Adam Nemet63a951e2015-01-14 01:31:17 +0000734__m512d test_mm512_unpackhi_pd(__m512d a, __m512d b)
735{
736 // CHECK-LABEL: @test_mm512_unpackhi_pd
737 // CHECK: shufflevector <8 x double> {{.*}} <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
738 return _mm512_unpackhi_pd(a, b);
739}
740
741__m512d test_mm512_unpacklo_pd(__m512d a, __m512d b)
742{
743 // CHECK-LABEL: @test_mm512_unpacklo_pd
744 // CHECK: shufflevector <8 x double> {{.*}} <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
745 return _mm512_unpacklo_pd(a, b);
746}
747
Adam Nemetd47dec42015-01-16 18:51:46 +0000748__m512 test_mm512_unpackhi_ps(__m512 a, __m512 b)
Adam Nemet63a951e2015-01-14 01:31:17 +0000749{
750 // CHECK-LABEL: @test_mm512_unpackhi_ps
751 // 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>
752 return _mm512_unpackhi_ps(a, b);
753}
754
Adam Nemetd47dec42015-01-16 18:51:46 +0000755__m512 test_mm512_unpacklo_ps(__m512 a, __m512 b)
Adam Nemet63a951e2015-01-14 01:31:17 +0000756{
757 // CHECK-LABEL: @test_mm512_unpacklo_ps
758 // 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>
759 return _mm512_unpacklo_ps(a, b);
760}
Craig Topperf557b092015-01-19 01:18:19 +0000761
Craig Topper53565c62015-02-01 22:27:40 +0000762__mmask16 test_mm512_cmp_round_ps_mask(__m512 a, __m512 b) {
763 // CHECK-LABEL: @test_mm512_cmp_round_ps_mask
Craig Topperf557b092015-01-19 01:18:19 +0000764 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
Craig Topper53565c62015-02-01 22:27:40 +0000765 return _mm512_cmp_round_ps_mask(a, b, 0, _MM_FROUND_TO_NEAREST_INT);
Craig Topperf557b092015-01-19 01:18:19 +0000766}
767
Craig Topper53565c62015-02-01 22:27:40 +0000768__mmask16 test_mm512_mask_cmp_round_ps_mask(__mmask16 m, __m512 a, __m512 b) {
769 // CHECK-LABEL: @test_mm512_mask_cmp_round_ps_mask
770 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
771 return _mm512_mask_cmp_round_ps_mask(m, a, b, 0, _MM_FROUND_TO_NEAREST_INT);
772}
773
774__mmask16 test_mm512_cmp_ps_mask(__m512 a, __m512 b) {
775 // check-label: @test_mm512_cmp_ps_mask
776 // check: @llvm.x86.avx512.mask.cmp.ps.512
777 return _mm512_cmp_ps_mask(a, b, 0);
778}
779
780__mmask16 test_mm512_mask_cmp_ps_mask(__mmask16 m, __m512 a, __m512 b) {
781 // CHECK-LABEL: @test_mm512_mask_cmp_ps_mask
782 // CHECK: @llvm.x86.avx512.mask.cmp.ps.512
783 return _mm512_mask_cmp_ps_mask(m, a, b, 0);
784}
785
786__mmask8 test_mm512_cmp_round_pd_mask(__m512d a, __m512d b) {
787 // CHECK-LABEL: @test_mm512_cmp_round_pd_mask
Craig Topperf557b092015-01-19 01:18:19 +0000788 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
Craig Topper53565c62015-02-01 22:27:40 +0000789 return _mm512_cmp_round_pd_mask(a, b, 0, _MM_FROUND_TO_NEAREST_INT);
790}
791
792__mmask8 test_mm512_mask_cmp_round_pd_mask(__mmask8 m, __m512d a, __m512d b) {
793 // CHECK-LABEL: @test_mm512_mask_cmp_round_pd_mask
794 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
795 return _mm512_mask_cmp_round_pd_mask(m, a, b, 0, _MM_FROUND_TO_NEAREST_INT);
796}
797
798__mmask8 test_mm512_cmp_pd_mask(__m512d a, __m512d b) {
799 // check-label: @test_mm512_cmp_pd_mask
800 // check: @llvm.x86.avx512.mask.cmp.pd.512
801 return _mm512_cmp_pd_mask(a, b, 0);
802}
803
804__mmask8 test_mm512_mask_cmp_pd_mask(__mmask8 m, __m512d a, __m512d b) {
805 // CHECK-LABEL: @test_mm512_mask_cmp_pd_mask
806 // CHECK: @llvm.x86.avx512.mask.cmp.pd.512
807 return _mm512_mask_cmp_pd_mask(m, a, b, 0);
Craig Topperf557b092015-01-19 01:18:19 +0000808}
Adam Nemetf893ede2015-01-19 20:12:05 +0000809
810__m256d test_mm512_extractf64x4_pd(__m512d a)
811{
812 // CHECK-LABEL: @test_mm512_extractf64x4_pd
813 // CHECK: @llvm.x86.avx512.mask.vextractf64x4.512
814 return _mm512_extractf64x4_pd(a, 1);
815}
816
817__m128 test_mm512_extractf32x4_ps(__m512 a)
818{
819 // CHECK-LABEL: @test_mm512_extractf32x4_ps
820 // CHECK: @llvm.x86.avx512.mask.vextractf32x4.512
821 return _mm512_extractf32x4_ps(a, 1);
822}
Craig Topper4cac1c22015-01-25 23:30:07 +0000823
824__mmask16 test_mm512_cmpeq_epu32_mask(__m512i __a, __m512i __b) {
825 // CHECK-LABEL: @test_mm512_cmpeq_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000826 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 0, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000827 return (__mmask16)_mm512_cmpeq_epu32_mask(__a, __b);
828}
829
830__mmask16 test_mm512_mask_cmpeq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
831 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000832 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 0, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000833 return (__mmask16)_mm512_mask_cmpeq_epu32_mask(__u, __a, __b);
834}
835
836__mmask8 test_mm512_cmpeq_epu64_mask(__m512i __a, __m512i __b) {
837 // CHECK-LABEL: @test_mm512_cmpeq_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000838 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 0, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000839 return (__mmask8)_mm512_cmpeq_epu64_mask(__a, __b);
840}
841
842__mmask8 test_mm512_mask_cmpeq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
843 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000844 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 0, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000845 return (__mmask8)_mm512_mask_cmpeq_epu64_mask(__u, __a, __b);
846}
847
848__mmask16 test_mm512_cmpge_epi32_mask(__m512i __a, __m512i __b) {
849 // CHECK-LABEL: @test_mm512_cmpge_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000850 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000851 return (__mmask16)_mm512_cmpge_epi32_mask(__a, __b);
852}
853
854__mmask16 test_mm512_mask_cmpge_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
855 // CHECK-LABEL: @test_mm512_mask_cmpge_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000856 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000857 return (__mmask16)_mm512_mask_cmpge_epi32_mask(__u, __a, __b);
858}
859
860__mmask8 test_mm512_cmpge_epi64_mask(__m512i __a, __m512i __b) {
861 // CHECK-LABEL: @test_mm512_cmpge_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000862 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000863 return (__mmask8)_mm512_cmpge_epi64_mask(__a, __b);
864}
865
866__mmask8 test_mm512_mask_cmpge_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
867 // CHECK-LABEL: @test_mm512_mask_cmpge_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000868 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000869 return (__mmask8)_mm512_mask_cmpge_epi64_mask(__u, __a, __b);
870}
871
872__mmask16 test_mm512_cmpge_epu32_mask(__m512i __a, __m512i __b) {
873 // CHECK-LABEL: @test_mm512_cmpge_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000874 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000875 return (__mmask16)_mm512_cmpge_epu32_mask(__a, __b);
876}
877
878__mmask16 test_mm512_mask_cmpge_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
879 // CHECK-LABEL: @test_mm512_mask_cmpge_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000880 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 5, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000881 return (__mmask16)_mm512_mask_cmpge_epu32_mask(__u, __a, __b);
882}
883
884__mmask8 test_mm512_cmpge_epu64_mask(__m512i __a, __m512i __b) {
885 // CHECK-LABEL: @test_mm512_cmpge_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000886 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000887 return (__mmask8)_mm512_cmpge_epu64_mask(__a, __b);
888}
889
890__mmask8 test_mm512_mask_cmpge_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
891 // CHECK-LABEL: @test_mm512_mask_cmpge_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000892 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 5, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000893 return (__mmask8)_mm512_mask_cmpge_epu64_mask(__u, __a, __b);
894}
895
896__mmask16 test_mm512_cmpgt_epu32_mask(__m512i __a, __m512i __b) {
897 // CHECK-LABEL: @test_mm512_cmpgt_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000898 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 6, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000899 return (__mmask16)_mm512_cmpgt_epu32_mask(__a, __b);
900}
901
902__mmask16 test_mm512_mask_cmpgt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
903 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000904 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 6, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000905 return (__mmask16)_mm512_mask_cmpgt_epu32_mask(__u, __a, __b);
906}
907
908__mmask8 test_mm512_cmpgt_epu64_mask(__m512i __a, __m512i __b) {
909 // CHECK-LABEL: @test_mm512_cmpgt_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000910 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 6, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000911 return (__mmask8)_mm512_cmpgt_epu64_mask(__a, __b);
912}
913
914__mmask8 test_mm512_mask_cmpgt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
915 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000916 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 6, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000917 return (__mmask8)_mm512_mask_cmpgt_epu64_mask(__u, __a, __b);
918}
919
920__mmask16 test_mm512_cmple_epi32_mask(__m512i __a, __m512i __b) {
921 // CHECK-LABEL: @test_mm512_cmple_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000922 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000923 return (__mmask16)_mm512_cmple_epi32_mask(__a, __b);
924}
925
926__mmask16 test_mm512_mask_cmple_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
927 // CHECK-LABEL: @test_mm512_mask_cmple_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000928 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000929 return (__mmask16)_mm512_mask_cmple_epi32_mask(__u, __a, __b);
930}
931
932__mmask8 test_mm512_cmple_epi64_mask(__m512i __a, __m512i __b) {
933 // CHECK-LABEL: @test_mm512_cmple_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000934 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000935 return (__mmask8)_mm512_cmple_epi64_mask(__a, __b);
936}
937
938__mmask8 test_mm512_mask_cmple_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
939 // CHECK-LABEL: @test_mm512_mask_cmple_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000940 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000941 return (__mmask8)_mm512_mask_cmple_epi64_mask(__u, __a, __b);
942}
943
944__mmask16 test_mm512_cmple_epu32_mask(__m512i __a, __m512i __b) {
945 // CHECK-LABEL: @test_mm512_cmple_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000946 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000947 return (__mmask16)_mm512_cmple_epu32_mask(__a, __b);
948}
949
950__mmask16 test_mm512_mask_cmple_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
951 // CHECK-LABEL: @test_mm512_mask_cmple_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000952 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 2, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000953 return (__mmask16)_mm512_mask_cmple_epu32_mask(__u, __a, __b);
954}
955
956__mmask8 test_mm512_cmple_epu64_mask(__m512i __a, __m512i __b) {
957 // CHECK-LABEL: @test_mm512_cmple_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000958 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000959 return (__mmask8)_mm512_cmple_epu64_mask(__a, __b);
960}
961
962__mmask8 test_mm512_mask_cmple_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
963 // CHECK-LABEL: @test_mm512_mask_cmple_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000964 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 2, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000965 return (__mmask8)_mm512_mask_cmple_epu64_mask(__u, __a, __b);
966}
967
968__mmask16 test_mm512_cmplt_epi32_mask(__m512i __a, __m512i __b) {
969 // CHECK-LABEL: @test_mm512_cmplt_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000970 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000971 return (__mmask16)_mm512_cmplt_epi32_mask(__a, __b);
972}
973
974__mmask16 test_mm512_mask_cmplt_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
975 // CHECK-LABEL: @test_mm512_mask_cmplt_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000976 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000977 return (__mmask16)_mm512_mask_cmplt_epi32_mask(__u, __a, __b);
978}
979
980__mmask8 test_mm512_cmplt_epi64_mask(__m512i __a, __m512i __b) {
981 // CHECK-LABEL: @test_mm512_cmplt_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000982 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000983 return (__mmask8)_mm512_cmplt_epi64_mask(__a, __b);
984}
985
986__mmask8 test_mm512_mask_cmplt_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
987 // CHECK-LABEL: @test_mm512_mask_cmplt_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000988 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +0000989 return (__mmask8)_mm512_mask_cmplt_epi64_mask(__u, __a, __b);
990}
991
992__mmask16 test_mm512_cmplt_epu32_mask(__m512i __a, __m512i __b) {
993 // CHECK-LABEL: @test_mm512_cmplt_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +0000994 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +0000995 return (__mmask16)_mm512_cmplt_epu32_mask(__a, __b);
996}
997
998__mmask16 test_mm512_mask_cmplt_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
999 // CHECK-LABEL: @test_mm512_mask_cmplt_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001000 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 1, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +00001001 return (__mmask16)_mm512_mask_cmplt_epu32_mask(__u, __a, __b);
1002}
1003
1004__mmask8 test_mm512_cmplt_epu64_mask(__m512i __a, __m512i __b) {
1005 // CHECK-LABEL: @test_mm512_cmplt_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001006 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +00001007 return (__mmask8)_mm512_cmplt_epu64_mask(__a, __b);
1008}
1009
1010__mmask8 test_mm512_mask_cmplt_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1011 // CHECK-LABEL: @test_mm512_mask_cmplt_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001012 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 1, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +00001013 return (__mmask8)_mm512_mask_cmplt_epu64_mask(__u, __a, __b);
1014}
1015
1016__mmask16 test_mm512_cmpneq_epi32_mask(__m512i __a, __m512i __b) {
1017 // CHECK-LABEL: @test_mm512_cmpneq_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001018 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +00001019 return (__mmask16)_mm512_cmpneq_epi32_mask(__a, __b);
1020}
1021
1022__mmask16 test_mm512_mask_cmpneq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1023 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001024 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +00001025 return (__mmask16)_mm512_mask_cmpneq_epi32_mask(__u, __a, __b);
1026}
1027
1028__mmask8 test_mm512_cmpneq_epi64_mask(__m512i __a, __m512i __b) {
1029 // CHECK-LABEL: @test_mm512_cmpneq_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001030 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +00001031 return (__mmask8)_mm512_cmpneq_epi64_mask(__a, __b);
1032}
1033
1034__mmask8 test_mm512_mask_cmpneq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1035 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001036 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +00001037 return (__mmask8)_mm512_mask_cmpneq_epi64_mask(__u, __a, __b);
1038}
1039
1040__mmask16 test_mm512_cmpneq_epu32_mask(__m512i __a, __m512i __b) {
1041 // CHECK-LABEL: @test_mm512_cmpneq_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001042 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +00001043 return (__mmask16)_mm512_cmpneq_epu32_mask(__a, __b);
1044}
1045
1046__mmask16 test_mm512_mask_cmpneq_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1047 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001048 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 4, i16 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +00001049 return (__mmask16)_mm512_mask_cmpneq_epu32_mask(__u, __a, __b);
1050}
1051
1052__mmask8 test_mm512_cmpneq_epu64_mask(__m512i __a, __m512i __b) {
1053 // CHECK-LABEL: @test_mm512_cmpneq_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001054 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 -1)
Craig Topper4cac1c22015-01-25 23:30:07 +00001055 return (__mmask8)_mm512_cmpneq_epu64_mask(__a, __b);
1056}
1057
1058__mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1059 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001060 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 4, i8 {{.*}})
Craig Topper4cac1c22015-01-25 23:30:07 +00001061 return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b);
1062}
Craig Topper2f25a5a2015-01-26 08:11:49 +00001063
1064__mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) {
1065 // CHECK-LABEL: @test_mm512_cmp_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001066 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 -1)
Craig Topper2f25a5a2015-01-26 08:11:49 +00001067 return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 3);
1068}
1069
1070__mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1071 // CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001072 // CHECK: @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 {{.*}})
Craig Topper2f25a5a2015-01-26 08:11:49 +00001073 return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 3);
1074}
1075
1076__mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) {
1077 // CHECK-LABEL: @test_mm512_cmp_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001078 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 -1)
Craig Topper2f25a5a2015-01-26 08:11:49 +00001079 return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 3);
1080}
1081
1082__mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1083 // CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001084 // CHECK: @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 {{.*}})
Craig Topper2f25a5a2015-01-26 08:11:49 +00001085 return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 3);
1086}
1087
1088__mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) {
1089 // CHECK-LABEL: @test_mm512_cmp_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001090 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 -1)
Craig Topper2f25a5a2015-01-26 08:11:49 +00001091 return (__mmask16)_mm512_cmp_epu32_mask(__a, __b, 3);
1092}
1093
1094__mmask16 test_mm512_mask_cmp_epu32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
1095 // CHECK-LABEL: @test_mm512_mask_cmp_epu32_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001096 // CHECK: @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> {{.*}}, <16 x i32> {{.*}}, i32 3, i16 {{.*}})
Craig Topper2f25a5a2015-01-26 08:11:49 +00001097 return (__mmask16)_mm512_mask_cmp_epu32_mask(__u, __a, __b, 3);
1098}
1099
1100__mmask8 test_mm512_cmp_epu64_mask(__m512i __a, __m512i __b) {
1101 // CHECK-LABEL: @test_mm512_cmp_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001102 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 -1)
Craig Topper2f25a5a2015-01-26 08:11:49 +00001103 return (__mmask8)_mm512_cmp_epu64_mask(__a, __b, 3);
1104}
1105
1106__mmask8 test_mm512_mask_cmp_epu64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
1107 // CHECK-LABEL: @test_mm512_mask_cmp_epu64_mask
Elena Demikhovsky23fccde2015-05-11 09:03:41 +00001108 // CHECK: @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> {{.*}}, <8 x i64> {{.*}}, i32 3, i8 {{.*}})
Craig Topper2f25a5a2015-01-26 08:11:49 +00001109 return (__mmask8)_mm512_mask_cmp_epu64_mask(__u, __a, __b, 3);
1110}
Elena Demikhovsky29da2fb2015-04-01 06:54:16 +00001111
1112__m512i test_mm512_mask_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1113 // CHECK-LABEL: @test_mm512_mask_and_epi32
1114 // CHECK: @llvm.x86.avx512.mask.pand.d.512
1115 return _mm512_mask_and_epi32(__src, __k,__a, __b);
1116}
1117
1118__m512i test_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1119 // CHECK-LABEL: @test_mm512_maskz_and_epi32
1120 // CHECK: @llvm.x86.avx512.mask.pand.d.512
1121 return _mm512_maskz_and_epi32(__k,__a, __b);
1122}
1123
1124__m512i test_mm512_mask_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1125 // CHECK-LABEL: @test_mm512_mask_and_epi64
1126 // CHECK: @llvm.x86.avx512.mask.pand.q.512
1127 return _mm512_mask_and_epi64(__src, __k,__a, __b);
1128}
1129
1130__m512i test_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1131 // CHECK-LABEL: @test_mm512_maskz_and_epi64
1132 // CHECK: @llvm.x86.avx512.mask.pand.q.512
1133 return _mm512_maskz_and_epi64(__k,__a, __b);
1134}
1135
1136__m512i test_mm512_mask_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1137 // CHECK-LABEL: @test_mm512_mask_or_epi32
1138 // CHECK: @llvm.x86.avx512.mask.por.d.512
1139 return _mm512_mask_or_epi32(__src, __k,__a, __b);
1140}
1141
1142__m512i test_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1143 // CHECK-LABEL: @test_mm512_maskz_or_epi32
1144 // CHECK: @llvm.x86.avx512.mask.por.d.512
1145 return _mm512_maskz_or_epi32(__k,__a, __b);
1146}
1147
1148__m512i test_mm512_mask_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1149 // CHECK-LABEL: @test_mm512_mask_or_epi64
1150 // CHECK: @llvm.x86.avx512.mask.por.q.512
1151 return _mm512_mask_or_epi64(__src, __k,__a, __b);
1152}
1153
1154__m512i test_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1155 // CHECK-LABEL: @test_mm512_maskz_or_epi64
1156 // CHECK: @llvm.x86.avx512.mask.por.q.512
1157 return _mm512_maskz_or_epi64(__k,__a, __b);
1158}
1159
1160__m512i test_mm512_mask_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1161 // CHECK-LABEL: @test_mm512_mask_xor_epi32
1162 // CHECK: @llvm.x86.avx512.mask.pxor.d.512
1163 return _mm512_mask_xor_epi32(__src, __k,__a, __b);
1164}
1165
1166__m512i test_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) {
1167 // CHECK-LABEL: @test_mm512_maskz_xor_epi32
1168 // CHECK: @llvm.x86.avx512.mask.pxor.d.512
1169 return _mm512_maskz_xor_epi32(__k,__a, __b);
1170}
1171
1172__m512i test_mm512_mask_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1173 // CHECK-LABEL: @test_mm512_mask_xor_epi64
1174 // CHECK: @llvm.x86.avx512.mask.pxor.q.512
1175 return _mm512_mask_xor_epi64(__src, __k,__a, __b);
1176}
1177
1178__m512i test_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) {
1179 // CHECK-LABEL: @test_mm512_maskz_xor_epi64
1180 // CHECK: @llvm.x86.avx512.mask.pxor.q.512
1181 return _mm512_maskz_xor_epi64(__k,__a, __b);
1182}
1183
1184__m512i test_mm512_and_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1185 // CHECK-LABEL: @test_mm512_and_epi32
1186 // CHECK: and <8 x i64>
1187 return _mm512_and_epi32(__a, __b);
1188}
1189
1190__m512i test_mm512_and_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1191 // CHECK-LABEL: @test_mm512_and_epi64
1192 // CHECK: and <8 x i64>
1193 return _mm512_and_epi64(__a, __b);
1194}
1195
1196__m512i test_mm512_or_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1197 // CHECK-LABEL: @test_mm512_or_epi32
1198 // CHECK: or <8 x i64>
1199 return _mm512_or_epi32(__a, __b);
1200}
1201
1202__m512i test_mm512_or_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1203 // CHECK-LABEL: @test_mm512_or_epi64
1204 // CHECK: or <8 x i64>
1205 return _mm512_or_epi64(__a, __b);
1206}
1207
1208__m512i test_mm512_xor_epi32(__m512i __src,__mmask16 __k, __m512i __a, __m512i __b) {
1209 // CHECK-LABEL: @test_mm512_xor_epi32
1210 // CHECK: xor <8 x i64>
1211 return _mm512_xor_epi32(__a, __b);
1212}
1213
1214__m512i test_mm512_xor_epi64(__m512i __src,__mmask8 __k, __m512i __a, __m512i __b) {
1215 // CHECK-LABEL: @test_mm512_xor_epi64
1216 // CHECK: xor <8 x i64>
1217 return _mm512_xor_epi64(__a, __b);
1218}
1219
Elena Demikhovsky35dc8c02015-04-28 13:28:01 +00001220__m512i test_mm512_maskz_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B){
1221 //CHECK-LABEL: @test_mm512_maskz_andnot_epi32
1222 //CHECK: @llvm.x86.avx512.mask.pandn.d.512
1223 return _mm512_maskz_andnot_epi32(__k,__A,__B);
1224}
1225
1226__m512i test_mm512_mask_andnot_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1227 __m512i __src) {
1228 //CHECK-LABEL: @test_mm512_mask_andnot_epi32
1229 //CHECK: @llvm.x86.avx512.mask.pandn.d.512
1230 return _mm512_mask_andnot_epi32(__src,__k,__A,__B);
1231}
1232
1233__m512i test_mm512_andnot_epi32(__m512i __A, __m512i __B) {
1234 //CHECK-LABEL: @test_mm512_andnot_epi32
1235 //CHECK: @llvm.x86.avx512.mask.pandn.d.512
1236 return _mm512_andnot_epi32(__A,__B);
1237}
1238
1239__m512i test_mm512_maskz_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1240 //CHECK-LABEL: @test_mm512_maskz_andnot_epi64
1241 //CHECK: @llvm.x86.avx512.mask.pandn.q.512
1242 return _mm512_maskz_andnot_epi64(__k,__A,__B);
1243}
1244
1245__m512i test_mm512_mask_andnot_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1246 __m512i __src) {
1247 //CHECK-LABEL: @test_mm512_mask_andnot_epi64
1248 //CHECK: @llvm.x86.avx512.mask.pandn.q.512
1249 return _mm512_mask_andnot_epi64(__src,__k,__A,__B);
1250}
1251
1252__m512i test_mm512_andnot_epi64(__m512i __A, __m512i __B) {
1253 //CHECK-LABEL: @test_mm512_andnot_epi64
1254 //CHECK: @llvm.x86.avx512.mask.pandn.q.512
1255 return _mm512_andnot_epi64(__A,__B);
1256}
1257
1258__m512i test_mm512_maskz_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1259 //CHECK-LABEL: @test_mm512_maskz_sub_epi32
1260 //CHECK: @llvm.x86.avx512.mask.psub.d.512
1261 return _mm512_maskz_sub_epi32(__k,__A,__B);
1262}
1263
1264__m512i test_mm512_mask_sub_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1265 __m512i __src) {
1266 //CHECK-LABEL: @test_mm512_mask_sub_epi32
1267 //CHECK: @llvm.x86.avx512.mask.psub.d.512
1268 return _mm512_mask_sub_epi32(__src,__k,__A,__B);
1269}
1270
1271__m512i test_mm512_sub_epi32(__m512i __A, __m512i __B) {
1272 //CHECK-LABEL: @test_mm512_sub_epi32
1273 //CHECK: sub <16 x i32>
1274 return _mm512_sub_epi32(__A,__B);
1275}
1276
1277__m512i test_mm512_maskz_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1278 //CHECK-LABEL: @test_mm512_maskz_sub_epi64
1279 //CHECK: @llvm.x86.avx512.mask.psub.q.512
1280 return _mm512_maskz_sub_epi64(__k,__A,__B);
1281}
1282
1283__m512i test_mm512_mask_sub_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1284 __m512i __src) {
1285 //CHECK-LABEL: @test_mm512_mask_sub_epi64
1286 //CHECK: @llvm.x86.avx512.mask.psub.q.512
1287 return _mm512_mask_sub_epi64(__src,__k,__A,__B);
1288}
1289
1290__m512i test_mm512_sub_epi64(__m512i __A, __m512i __B) {
1291 //CHECK-LABEL: @test_mm512_sub_epi64
1292 //CHECK: sub <8 x i64>
1293 return _mm512_sub_epi64(__A,__B);
1294}
1295
1296__m512i test_mm512_maskz_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1297 //CHECK-LABEL: @test_mm512_maskz_add_epi32
1298 //CHECK: @llvm.x86.avx512.mask.padd.d.512
1299 return _mm512_maskz_add_epi32(__k,__A,__B);
1300}
1301
1302__m512i test_mm512_mask_add_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1303 __m512i __src) {
1304 //CHECK-LABEL: @test_mm512_mask_add_epi32
1305 //CHECK: @llvm.x86.avx512.mask.padd.d.512
1306 return _mm512_mask_add_epi32(__src,__k,__A,__B);
1307}
1308
1309__m512i test_mm512_add_epi32(__m512i __A, __m512i __B) {
1310 //CHECK-LABEL: @test_mm512_add_epi32
1311 //CHECK: add <16 x i32>
1312 return _mm512_add_epi32(__A,__B);
1313}
1314
1315__m512i test_mm512_maskz_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B) {
1316 //CHECK-LABEL: @test_mm512_maskz_add_epi64
1317 //CHECK: @llvm.x86.avx512.mask.padd.q.512
1318 return _mm512_maskz_add_epi64(__k,__A,__B);
1319}
1320
1321__m512i test_mm512_mask_add_epi64 (__mmask8 __k,__m512i __A, __m512i __B,
1322 __m512i __src) {
1323 //CHECK-LABEL: @test_mm512_mask_add_epi64
1324 //CHECK: @llvm.x86.avx512.mask.padd.q.512
1325 return _mm512_mask_add_epi64(__src,__k,__A,__B);
1326}
1327
1328__m512i test_mm512_add_epi64(__m512i __A, __m512i __B) {
1329 //CHECK-LABEL: @test_mm512_add_epi64
1330 //CHECK: add <8 x i64>
1331 return _mm512_add_epi64(__A,__B);
1332}
1333
1334__m512i test_mm512_maskz_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1335 //CHECK-LABEL: @test_mm512_maskz_mul_epi32
1336 //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
1337 return _mm512_maskz_mul_epi32(__k,__A,__B);
1338}
1339
1340__m512i test_mm512_mask_mul_epi32 (__mmask16 __k,__m512i __A, __m512i __B,
1341 __m512i __src) {
1342 //CHECK-LABEL: @test_mm512_mask_mul_epi32
1343 //CHECK: @llvm.x86.avx512.mask.pmul.dq.512
1344 return _mm512_mask_mul_epi32(__src,__k,__A,__B);
1345}
1346
1347__m512i test_mm512_maskz_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B) {
1348 //CHECK-LABEL: @test_mm512_maskz_mul_epu32
1349 //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
1350 return _mm512_maskz_mul_epu32(__k,__A,__B);
1351}
1352
1353__m512i test_mm512_mask_mul_epu32 (__mmask16 __k,__m512i __A, __m512i __B,
1354 __m512i __src) {
1355 //CHECK-LABEL: @test_mm512_mask_mul_epu32
1356 //CHECK: @llvm.x86.avx512.mask.pmulu.dq.512
1357 return _mm512_mask_mul_epu32(__src,__k,__A,__B);
1358}
1359
1360__m512i test_mm512_maskz_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B) {
1361 //CHECK-LABEL: @test_mm512_maskz_mullo_epi32
1362 //CHECK: @llvm.x86.avx512.mask.pmull.d.512
1363 return _mm512_maskz_mullo_epi32(__k,__A,__B);
1364}
1365
1366__m512i test_mm512_mask_mullo_epi32 (__mmask16 __k,__m512i __A, __m512i __B, __m512i __src) {
1367 //CHECK-LABEL: @test_mm512_mask_mullo_epi32
1368 //CHECK: @llvm.x86.avx512.mask.pmull.d.512
1369 return _mm512_mask_mullo_epi32(__src,__k,__A,__B);
1370}
1371
1372__m512i test_mm512_mullo_epi32(__m512i __A, __m512i __B) {
1373 //CHECK-LABEL: @test_mm512_mullo_epi32
1374 //CHECK: mul <16 x i32>
1375 return _mm512_mullo_epi32(__A,__B);
Asaf Badouh5a26b252015-06-03 13:42:46 +00001376}
Asaf Badouhffeb6242015-07-21 15:27:28 +00001377
1378__m512d test_mm512_add_round_pd(__m512d __A, __m512d __B) {
1379 // CHECK-LABEL: @test_mm512_add_round_pd
1380 // CHECK: @llvm.x86.avx512.mask.add.pd.512
1381 return _mm512_add_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1382}
1383__m512d test_mm512_mask_add_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1384 // CHECK-LABEL: @test_mm512_mask_add_round_pd
1385 // CHECK: @llvm.x86.avx512.mask.add.pd.512
1386 return _mm512_mask_add_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1387}
1388__m512d test_mm512_maskz_add_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1389 // CHECK-LABEL: @test_mm512_maskz_add_round_pd
1390 // CHECK: @llvm.x86.avx512.mask.add.pd.512
1391 return _mm512_maskz_add_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1392}
1393__m512d test_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1394 // CHECK-LABEL: @test_mm512_mask_add_pd
1395 // CHECK: @llvm.x86.avx512.mask.add.pd.512
1396 return _mm512_mask_add_pd(__W,__U,__A,__B);
1397}
1398__m512d test_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1399 // CHECK-LABEL: @test_mm512_maskz_add_pd
1400 // CHECK: @llvm.x86.avx512.mask.add.pd.512
1401 return _mm512_maskz_add_pd(__U,__A,__B);
1402}
1403__m512 test_mm512_add_round_ps(__m512 __A, __m512 __B) {
1404 // CHECK-LABEL: @test_mm512_add_round_ps
1405 // CHECK: @llvm.x86.avx512.mask.add.ps.512
1406 return _mm512_add_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1407}
1408__m512 test_mm512_mask_add_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1409 // CHECK-LABEL: @test_mm512_mask_add_round_ps
1410 // CHECK: @llvm.x86.avx512.mask.add.ps.512
1411 return _mm512_mask_add_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1412}
1413__m512 test_mm512_maskz_add_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1414 // CHECK-LABEL: @test_mm512_maskz_add_round_ps
1415 // CHECK: @llvm.x86.avx512.mask.add.ps.512
1416 return _mm512_maskz_add_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1417}
1418__m512 test_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1419 // CHECK-LABEL: @test_mm512_mask_add_ps
1420 // CHECK: @llvm.x86.avx512.mask.add.ps.512
1421 return _mm512_mask_add_ps(__W,__U,__A,__B);
1422}
1423__m512 test_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1424 // CHECK-LABEL: @test_mm512_maskz_add_ps
1425 // CHECK: @llvm.x86.avx512.mask.add.ps.512
1426 return _mm512_maskz_add_ps(__U,__A,__B);
1427}
Asaf Badouhf6a58b62015-07-23 12:13:32 +00001428__m128 test_mm_add_round_ss(__m128 __A, __m128 __B) {
1429 // CHECK-LABEL: @test_mm_add_round_ss
1430 // CHECK: @llvm.x86.avx512.mask.add.ss.round
1431 return _mm_add_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1432}
1433__m128 test_mm_mask_add_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1434 // CHECK-LABEL: @test_mm_mask_add_round_ss
1435 // CHECK: @llvm.x86.avx512.mask.add.ss.round
1436 return _mm_mask_add_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1437}
1438__m128 test_mm_maskz_add_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1439 // CHECK-LABEL: @test_mm_maskz_add_round_ss
1440 // CHECK: @llvm.x86.avx512.mask.add.ss.round
1441 return _mm_maskz_add_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1442}
1443__m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1444 // CHECK-LABEL: @test_mm_mask_add_ss
1445 // CHECK: @llvm.x86.avx512.mask.add.ss.round
1446 return _mm_mask_add_ss(__W,__U,__A,__B);
1447}
1448__m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1449 // CHECK-LABEL: @test_mm_maskz_add_ss
1450 // CHECK: @llvm.x86.avx512.mask.add.ss.round
1451 return _mm_maskz_add_ss(__U,__A,__B);
1452}
1453__m128d test_mm_add_round_sd(__m128d __A, __m128d __B) {
1454 // CHECK-LABEL: @test_mm_add_round_sd
1455 // CHECK: @llvm.x86.avx512.mask.add.sd.round
1456 return _mm_add_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1457}
1458__m128d test_mm_mask_add_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1459 // CHECK-LABEL: @test_mm_mask_add_round_sd
1460 // CHECK: @llvm.x86.avx512.mask.add.sd.round
1461 return _mm_mask_add_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1462}
1463__m128d test_mm_maskz_add_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1464 // CHECK-LABEL: @test_mm_maskz_add_round_sd
1465 // CHECK: @llvm.x86.avx512.mask.add.sd.round
1466 return _mm_maskz_add_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1467}
1468__m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1469 // CHECK-LABEL: @test_mm_mask_add_sd
1470 // CHECK: @llvm.x86.avx512.mask.add.sd.round
1471 return _mm_mask_add_sd(__W,__U,__A,__B);
1472}
1473__m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1474 // CHECK-LABEL: @test_mm_maskz_add_sd
1475 // CHECK: @llvm.x86.avx512.mask.add.sd.round
1476 return _mm_maskz_add_sd(__U,__A,__B);
1477}
Asaf Badouhffeb6242015-07-21 15:27:28 +00001478__m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) {
1479 // CHECK-LABEL: @test_mm512_sub_round_pd
1480 // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1481 return _mm512_sub_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1482}
1483__m512d test_mm512_mask_sub_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1484 // CHECK-LABEL: @test_mm512_mask_sub_round_pd
1485 // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1486 return _mm512_mask_sub_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1487}
1488__m512d test_mm512_maskz_sub_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1489 // CHECK-LABEL: @test_mm512_maskz_sub_round_pd
1490 // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1491 return _mm512_maskz_sub_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1492}
1493__m512d test_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1494 // CHECK-LABEL: @test_mm512_mask_sub_pd
1495 // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1496 return _mm512_mask_sub_pd(__W,__U,__A,__B);
1497}
1498__m512d test_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1499 // CHECK-LABEL: @test_mm512_maskz_sub_pd
1500 // CHECK: @llvm.x86.avx512.mask.sub.pd.512
1501 return _mm512_maskz_sub_pd(__U,__A,__B);
1502}
1503__m512 test_mm512_sub_round_ps(__m512 __A, __m512 __B) {
1504 // CHECK-LABEL: @test_mm512_sub_round_ps
1505 // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1506 return _mm512_sub_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1507}
1508__m512 test_mm512_mask_sub_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1509 // CHECK-LABEL: @test_mm512_mask_sub_round_ps
1510 // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1511 return _mm512_mask_sub_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1512}
1513__m512 test_mm512_maskz_sub_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1514 // CHECK-LABEL: @test_mm512_maskz_sub_round_ps
1515 // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1516 return _mm512_maskz_sub_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1517}
1518__m512 test_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1519 // CHECK-LABEL: @test_mm512_mask_sub_ps
1520 // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1521 return _mm512_mask_sub_ps(__W,__U,__A,__B);
1522}
1523__m512 test_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1524 // CHECK-LABEL: @test_mm512_maskz_sub_ps
1525 // CHECK: @llvm.x86.avx512.mask.sub.ps.512
1526 return _mm512_maskz_sub_ps(__U,__A,__B);
1527}
Asaf Badouhf6a58b62015-07-23 12:13:32 +00001528__m128 test_mm_sub_round_ss(__m128 __A, __m128 __B) {
1529 // CHECK-LABEL: @test_mm_sub_round_ss
1530 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1531 return _mm_sub_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1532}
1533__m128 test_mm_mask_sub_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1534 // CHECK-LABEL: @test_mm_mask_sub_round_ss
1535 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1536 return _mm_mask_sub_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1537}
1538__m128 test_mm_maskz_sub_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1539 // CHECK-LABEL: @test_mm_maskz_sub_round_ss
1540 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1541 return _mm_maskz_sub_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1542}
1543__m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1544 // CHECK-LABEL: @test_mm_mask_sub_ss
1545 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1546 return _mm_mask_sub_ss(__W,__U,__A,__B);
1547}
1548__m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1549 // CHECK-LABEL: @test_mm_maskz_sub_ss
1550 // CHECK: @llvm.x86.avx512.mask.sub.ss.round
1551 return _mm_maskz_sub_ss(__U,__A,__B);
1552}
1553__m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) {
1554 // CHECK-LABEL: @test_mm_sub_round_sd
1555 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1556 return _mm_sub_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1557}
1558__m128d test_mm_mask_sub_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1559 // CHECK-LABEL: @test_mm_mask_sub_round_sd
1560 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1561 return _mm_mask_sub_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1562}
1563__m128d test_mm_maskz_sub_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1564 // CHECK-LABEL: @test_mm_maskz_sub_round_sd
1565 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1566 return _mm_maskz_sub_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1567}
1568__m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1569 // CHECK-LABEL: @test_mm_mask_sub_sd
1570 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1571 return _mm_mask_sub_sd(__W,__U,__A,__B);
1572}
1573__m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1574 // CHECK-LABEL: @test_mm_maskz_sub_sd
1575 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
1576 return _mm_maskz_sub_sd(__U,__A,__B);
1577}
Asaf Badouhffeb6242015-07-21 15:27:28 +00001578__m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) {
1579 // CHECK-LABEL: @test_mm512_mul_round_pd
1580 // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1581 return _mm512_mul_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1582}
1583__m512d test_mm512_mask_mul_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1584 // CHECK-LABEL: @test_mm512_mask_mul_round_pd
1585 // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1586 return _mm512_mask_mul_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1587}
1588__m512d test_mm512_maskz_mul_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1589 // CHECK-LABEL: @test_mm512_maskz_mul_round_pd
1590 // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1591 return _mm512_maskz_mul_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1592}
1593__m512d test_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1594 // CHECK-LABEL: @test_mm512_mask_mul_pd
1595 // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1596 return _mm512_mask_mul_pd(__W,__U,__A,__B);
1597}
1598__m512d test_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1599 // CHECK-LABEL: @test_mm512_maskz_mul_pd
1600 // CHECK: @llvm.x86.avx512.mask.mul.pd.512
1601 return _mm512_maskz_mul_pd(__U,__A,__B);
1602}
1603__m512 test_mm512_mul_round_ps(__m512 __A, __m512 __B) {
1604 // CHECK-LABEL: @test_mm512_mul_round_ps
1605 // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1606 return _mm512_mul_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1607}
1608__m512 test_mm512_mask_mul_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1609 // CHECK-LABEL: @test_mm512_mask_mul_round_ps
1610 // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1611 return _mm512_mask_mul_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1612}
1613__m512 test_mm512_maskz_mul_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1614 // CHECK-LABEL: @test_mm512_maskz_mul_round_ps
1615 // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1616 return _mm512_maskz_mul_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1617}
1618__m512 test_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1619 // CHECK-LABEL: @test_mm512_mask_mul_ps
1620 // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1621 return _mm512_mask_mul_ps(__W,__U,__A,__B);
1622}
1623__m512 test_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1624 // CHECK-LABEL: @test_mm512_maskz_mul_ps
1625 // CHECK: @llvm.x86.avx512.mask.mul.ps.512
1626 return _mm512_maskz_mul_ps(__U,__A,__B);
1627}
Asaf Badouhf6a58b62015-07-23 12:13:32 +00001628__m128 test_mm_mul_round_ss(__m128 __A, __m128 __B) {
1629 // CHECK-LABEL: @test_mm_mul_round_ss
1630 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1631 return _mm_mul_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1632}
1633__m128 test_mm_mask_mul_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1634 // CHECK-LABEL: @test_mm_mask_mul_round_ss
1635 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1636 return _mm_mask_mul_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1637}
1638__m128 test_mm_maskz_mul_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1639 // CHECK-LABEL: @test_mm_maskz_mul_round_ss
1640 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1641 return _mm_maskz_mul_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1642}
1643__m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1644 // CHECK-LABEL: @test_mm_mask_mul_ss
1645 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1646 return _mm_mask_mul_ss(__W,__U,__A,__B);
1647}
1648__m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1649 // CHECK-LABEL: @test_mm_maskz_mul_ss
1650 // CHECK: @llvm.x86.avx512.mask.mul.ss.round
1651 return _mm_maskz_mul_ss(__U,__A,__B);
1652}
1653__m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) {
1654 // CHECK-LABEL: @test_mm_mul_round_sd
1655 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1656 return _mm_mul_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1657}
1658__m128d test_mm_mask_mul_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1659 // CHECK-LABEL: @test_mm_mask_mul_round_sd
1660 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1661 return _mm_mask_mul_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1662}
1663__m128d test_mm_maskz_mul_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1664 // CHECK-LABEL: @test_mm_maskz_mul_round_sd
1665 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1666 return _mm_maskz_mul_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1667}
1668__m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1669 // CHECK-LABEL: @test_mm_mask_mul_sd
1670 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1671 return _mm_mask_mul_sd(__W,__U,__A,__B);
1672}
1673__m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1674 // CHECK-LABEL: @test_mm_maskz_mul_sd
1675 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
1676 return _mm_maskz_mul_sd(__U,__A,__B);
1677}
Asaf Badouhffeb6242015-07-21 15:27:28 +00001678__m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) {
1679 // CHECK-LABEL: @test_mm512_div_round_pd
1680 // CHECK: @llvm.x86.avx512.mask.div.pd.512
1681 return _mm512_div_round_pd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1682}
1683__m512d test_mm512_mask_div_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1684 // CHECK-LABEL: @test_mm512_mask_div_round_pd
1685 // CHECK: @llvm.x86.avx512.mask.div.pd.512
1686 return _mm512_mask_div_round_pd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1687}
1688__m512d test_mm512_maskz_div_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1689 // CHECK-LABEL: @test_mm512_maskz_div_round_pd
1690 // CHECK: @llvm.x86.avx512.mask.div.pd.512
1691 return _mm512_maskz_div_round_pd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1692}
1693__m512d test_mm512_mask_div_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
1694 // CHECK-LABEL: @test_mm512_mask_div_pd
1695 // CHECK: @llvm.x86.avx512.mask.div.pd.512
1696 return _mm512_mask_div_pd(__W,__U,__A,__B);
1697}
1698__m512d test_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) {
1699 // CHECK-LABEL: @test_mm512_maskz_div_pd
1700 // CHECK: @llvm.x86.avx512.mask.div.pd.512
1701 return _mm512_maskz_div_pd(__U,__A,__B);
1702}
1703__m512 test_mm512_div_round_ps(__m512 __A, __m512 __B) {
1704 // CHECK-LABEL: @test_mm512_div_round_ps
1705 // CHECK: @llvm.x86.avx512.mask.div.ps.512
1706 return _mm512_div_round_ps(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1707}
1708__m512 test_mm512_mask_div_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1709 // CHECK-LABEL: @test_mm512_mask_div_round_ps
1710 // CHECK: @llvm.x86.avx512.mask.div.ps.512
1711 return _mm512_mask_div_round_ps(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1712}
1713__m512 test_mm512_maskz_div_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1714 // CHECK-LABEL: @test_mm512_maskz_div_round_ps
1715 // CHECK: @llvm.x86.avx512.mask.div.ps.512
1716 return _mm512_maskz_div_round_ps(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1717}
1718__m512 test_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
1719 // CHECK-LABEL: @test_mm512_mask_div_ps
1720 // CHECK: @llvm.x86.avx512.mask.div.ps.512
1721 return _mm512_mask_div_ps(__W,__U,__A,__B);
1722}
1723__m512 test_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) {
1724 // CHECK-LABEL: @test_mm512_maskz_div_ps
1725 // CHECK: @llvm.x86.avx512.mask.div.ps.512
1726 return _mm512_maskz_div_ps(__U,__A,__B);
1727}
Asaf Badouhf6a58b62015-07-23 12:13:32 +00001728__m128 test_mm_div_round_ss(__m128 __A, __m128 __B) {
1729 // CHECK-LABEL: @test_mm_div_round_ss
1730 // CHECK: @llvm.x86.avx512.mask.div.ss.round
1731 return _mm_div_round_ss(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1732}
1733__m128 test_mm_mask_div_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1734 // CHECK-LABEL: @test_mm_mask_div_round_ss
1735 // CHECK: @llvm.x86.avx512.mask.div.ss.round
1736 return _mm_mask_div_round_ss(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1737}
1738__m128 test_mm_maskz_div_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1739 // CHECK-LABEL: @test_mm_maskz_div_round_ss
1740 // CHECK: @llvm.x86.avx512.mask.div.ss.round
1741 return _mm_maskz_div_round_ss(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1742}
1743__m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1744 // CHECK-LABEL: @test_mm_mask_div_ss
1745 // CHECK: @llvm.x86.avx512.mask.div.ss.round
1746 return _mm_mask_div_ss(__W,__U,__A,__B);
1747}
1748__m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1749 // CHECK-LABEL: @test_mm_maskz_div_ss
1750 // CHECK: @llvm.x86.avx512.mask.div.ss.round
1751 return _mm_maskz_div_ss(__U,__A,__B);
1752}
1753__m128d test_mm_div_round_sd(__m128d __A, __m128d __B) {
1754 // CHECK-LABEL: @test_mm_div_round_sd
1755 // CHECK: @llvm.x86.avx512.mask.div.sd.round
1756 return _mm_div_round_sd(__A,__B,_MM_FROUND_TO_NEAREST_INT);
1757}
1758__m128d test_mm_mask_div_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1759 // CHECK-LABEL: @test_mm_mask_div_round_sd
1760 // CHECK: @llvm.x86.avx512.mask.div.sd.round
1761 return _mm_mask_div_round_sd(__W,__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1762}
1763__m128d test_mm_maskz_div_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1764 // CHECK-LABEL: @test_mm_maskz_div_round_sd
1765 // CHECK: @llvm.x86.avx512.mask.div.sd.round
1766 return _mm_maskz_div_round_sd(__U,__A,__B,_MM_FROUND_TO_NEAREST_INT);
1767}
1768__m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1769 // CHECK-LABEL: @test_mm_mask_div_sd
1770 // CHECK: @llvm.x86.avx512.mask.div.sd.round
1771 return _mm_mask_div_sd(__W,__U,__A,__B);
1772}
1773__m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1774 // CHECK-LABEL: @test_mm_maskz_div_sd
1775 // CHECK: @llvm.x86.avx512.mask.div.sd.round
1776 return _mm_maskz_div_sd(__U,__A,__B);
1777}
1778__m128 test_mm_max_round_ss(__m128 __A, __m128 __B) {
1779 // CHECK-LABEL: @test_mm_max_round_ss
1780 // CHECK: @llvm.x86.avx512.mask.max.ss.round
1781 return _mm_max_round_ss(__A,__B,0x08);
1782}
1783__m128 test_mm_mask_max_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1784 // CHECK-LABEL: @test_mm_mask_max_round_ss
1785 // CHECK: @llvm.x86.avx512.mask.max.ss.round
1786 return _mm_mask_max_round_ss(__W,__U,__A,__B,0x08);
1787}
1788__m128 test_mm_maskz_max_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1789 // CHECK-LABEL: @test_mm_maskz_max_round_ss
1790 // CHECK: @llvm.x86.avx512.mask.max.ss.round
1791 return _mm_maskz_max_round_ss(__U,__A,__B,0x08);
1792}
1793__m128 test_mm_mask_max_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1794 // CHECK-LABEL: @test_mm_mask_max_ss
1795 // CHECK: @llvm.x86.avx512.mask.max.ss.round
1796 return _mm_mask_max_ss(__W,__U,__A,__B);
1797}
1798__m128 test_mm_maskz_max_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1799 // CHECK-LABEL: @test_mm_maskz_max_ss
1800 // CHECK: @llvm.x86.avx512.mask.max.ss.round
1801 return _mm_maskz_max_ss(__U,__A,__B);
1802}
1803__m128d test_mm_max_round_sd(__m128d __A, __m128d __B) {
1804 // CHECK-LABEL: @test_mm_max_round_sd
1805 // CHECK: @llvm.x86.avx512.mask.max.sd.round
1806 return _mm_max_round_sd(__A,__B,0x08);
1807}
1808__m128d test_mm_mask_max_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1809 // CHECK-LABEL: @test_mm_mask_max_round_sd
1810 // CHECK: @llvm.x86.avx512.mask.max.sd.round
1811 return _mm_mask_max_round_sd(__W,__U,__A,__B,0x08);
1812}
1813__m128d test_mm_maskz_max_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1814 // CHECK-LABEL: @test_mm_maskz_max_round_sd
1815 // CHECK: @llvm.x86.avx512.mask.max.sd.round
1816 return _mm_maskz_max_round_sd(__U,__A,__B,0x08);
1817}
1818__m128d test_mm_mask_max_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1819 // CHECK-LABEL: @test_mm_mask_max_sd
1820 // CHECK: @llvm.x86.avx512.mask.max.sd.round
1821 return _mm_mask_max_sd(__W,__U,__A,__B);
1822}
1823__m128d test_mm_maskz_max_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1824 // CHECK-LABEL: @test_mm_maskz_max_sd
1825 // CHECK: @llvm.x86.avx512.mask.max.sd.round
1826 return _mm_maskz_max_sd(__U,__A,__B);
1827}
1828__m128 test_mm_min_round_ss(__m128 __A, __m128 __B) {
1829 // CHECK-LABEL: @test_mm_min_round_ss
1830 // CHECK: @llvm.x86.avx512.mask.min.ss.round
1831 return _mm_min_round_ss(__A,__B,0x08);
1832}
1833__m128 test_mm_mask_min_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1834 // CHECK-LABEL: @test_mm_mask_min_round_ss
1835 // CHECK: @llvm.x86.avx512.mask.min.ss.round
1836 return _mm_mask_min_round_ss(__W,__U,__A,__B,0x08);
1837}
1838__m128 test_mm_maskz_min_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1839 // CHECK-LABEL: @test_mm_maskz_min_round_ss
1840 // CHECK: @llvm.x86.avx512.mask.min.ss.round
1841 return _mm_maskz_min_round_ss(__U,__A,__B,0x08);
1842}
1843__m128 test_mm_mask_min_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
1844 // CHECK-LABEL: @test_mm_mask_min_ss
1845 // CHECK: @llvm.x86.avx512.mask.min.ss.round
1846 return _mm_mask_min_ss(__W,__U,__A,__B);
1847}
1848__m128 test_mm_maskz_min_ss(__mmask8 __U, __m128 __A, __m128 __B) {
1849 // CHECK-LABEL: @test_mm_maskz_min_ss
1850 // CHECK: @llvm.x86.avx512.mask.min.ss.round
1851 return _mm_maskz_min_ss(__U,__A,__B);
1852}
1853__m128d test_mm_min_round_sd(__m128d __A, __m128d __B) {
1854 // CHECK-LABEL: @test_mm_min_round_sd
1855 // CHECK: @llvm.x86.avx512.mask.min.sd.round
1856 return _mm_min_round_sd(__A,__B,0x08);
1857}
1858__m128d test_mm_mask_min_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1859 // CHECK-LABEL: @test_mm_mask_min_round_sd
1860 // CHECK: @llvm.x86.avx512.mask.min.sd.round
1861 return _mm_mask_min_round_sd(__W,__U,__A,__B,0x08);
1862}
1863__m128d test_mm_maskz_min_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1864 // CHECK-LABEL: @test_mm_maskz_min_round_sd
1865 // CHECK: @llvm.x86.avx512.mask.min.sd.round
1866 return _mm_maskz_min_round_sd(__U,__A,__B,0x08);
1867}
1868__m128d test_mm_mask_min_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
1869 // CHECK-LABEL: @test_mm_mask_min_sd
1870 // CHECK: @llvm.x86.avx512.mask.min.sd.round
1871 return _mm_mask_min_sd(__W,__U,__A,__B);
1872}
1873__m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) {
1874 // CHECK-LABEL: @test_mm_maskz_min_sd
1875 // CHECK: @llvm.x86.avx512.mask.min.sd.round
1876 return _mm_maskz_min_sd(__U,__A,__B);
1877}
Simon Pilgrim5aba9922015-08-26 21:17:12 +00001878
1879__m512 test_mm512_undefined() {
1880 // CHECK-LABEL: @test_mm512_undefined
1881 // CHECK: ret <16 x float> undef
1882 return _mm512_undefined();
1883}
1884
1885__m512 test_mm512_undefined_ps() {
1886 // CHECK-LABEL: @test_mm512_undefined_ps
1887 // CHECK: ret <16 x float> undef
1888 return _mm512_undefined_ps();
1889}
1890
1891__m512d test_mm512_undefined_pd() {
1892 // CHECK-LABEL: @test_mm512_undefined_pd
1893 // CHECK: ret <8 x double> undef
1894 return _mm512_undefined_pd();
1895}
1896
1897__m512i test_mm512_undefined_epi32() {
1898 // CHECK-LABEL: @test_mm512_undefined_epi32
1899 // CHECK: ret <8 x i64> undef
1900 return _mm512_undefined_epi32();
1901}