1 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512dq -emit-llvm -o - -Wall -Werror | FileCheck %s
6 __m512i test_mm512_mullo_epi64 (__m512i __A, __m512i __B) {
7 // CHECK-LABEL: @test_mm512_mullo_epi64
8 // CHECK: mul <8 x i64>
9 return (__m512i) ((__v8di) __A * (__v8di) __B);
12 __m512i test_mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
13 // CHECK-LABEL: @test_mm512_mask_mullo_epi64
14 // CHECK: mul <8 x i64> %{{.*}}, %{{.*}}
15 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
16 return (__m512i) _mm512_mask_mullo_epi64(__W, __U, __A, __B);
19 __m512i test_mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B) {
20 // CHECK-LABEL: @test_mm512_maskz_mullo_epi64
21 // CHECK: mul <8 x i64> %{{.*}}, %{{.*}}
22 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
23 return (__m512i) _mm512_maskz_mullo_epi64(__U, __A, __B);
26 __m512d test_mm512_xor_pd (__m512d __A, __m512d __B) {
27 // CHECK-LABEL: @test_mm512_xor_pd
28 // CHECK: xor <8 x i64>
29 return (__m512d) _mm512_xor_pd(__A, __B);
32 __m512d test_mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
33 // CHECK-LABEL: @test_mm512_mask_xor_pd
34 // CHECK: xor <8 x i64>
35 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
36 // CHECK: select <8 x i1> %[[MASK]], <8 x double> %{{.*}}, <8 x double> %{{.*}}
37 return (__m512d) _mm512_mask_xor_pd(__W, __U, __A, __B);
40 __m512d test_mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B) {
41 // CHECK-LABEL: @test_mm512_maskz_xor_pd
42 // CHECK: xor <8 x i64>
43 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
44 // CHECK: select <8 x i1> %[[MASK]], <8 x double> %{{.*}}, <8 x double> %{{.*}}
45 return (__m512d) _mm512_maskz_xor_pd(__U, __A, __B);
48 __m512 test_mm512_xor_ps (__m512 __A, __m512 __B) {
49 // CHECK-LABEL: @test_mm512_xor_ps
50 // CHECK: xor <16 x i32>
51 return (__m512) _mm512_xor_ps(__A, __B);
54 __m512 test_mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
55 // CHECK-LABEL: @test_mm512_mask_xor_ps
56 // CHECK: xor <16 x i32>
57 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
58 // CHECK: select <16 x i1> %[[MASK]], <16 x float> %{{.*}}, <16 x float> %{{.*}}
59 return (__m512) _mm512_mask_xor_ps(__W, __U, __A, __B);
62 __m512 test_mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B) {
63 // CHECK-LABEL: @test_mm512_maskz_xor_ps
64 // CHECK: xor <16 x i32>
65 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
66 // CHECK: select <16 x i1> %[[MASK]], <16 x float> %{{.*}}, <16 x float> %{{.*}}
67 return (__m512) _mm512_maskz_xor_ps(__U, __A, __B);
70 __m512d test_mm512_or_pd (__m512d __A, __m512d __B) {
71 // CHECK-LABEL: @test_mm512_or_pd
72 // CHECK: or <8 x i64>
73 return (__m512d) _mm512_or_pd(__A, __B);
76 __m512d test_mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
77 // CHECK-LABEL: @test_mm512_mask_or_pd
78 // CHECK: or <8 x i64>
79 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
80 // CHECK: select <8 x i1> %[[MASK]], <8 x double> %{{.*}}, <8 x double> %{{.*}}
81 return (__m512d) _mm512_mask_or_pd(__W, __U, __A, __B);
84 __m512d test_mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B) {
85 // CHECK-LABEL: @test_mm512_maskz_or_pd
86 // CHECK: or <8 x i64>
87 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
88 // CHECK: select <8 x i1> %[[MASK]], <8 x double> %{{.*}}, <8 x double> %{{.*}}
89 return (__m512d) _mm512_maskz_or_pd(__U, __A, __B);
92 __m512 test_mm512_or_ps (__m512 __A, __m512 __B) {
93 // CHECK-LABEL: @test_mm512_or_ps
94 // CHECK: or <16 x i32>
95 return (__m512) _mm512_or_ps(__A, __B);
98 __m512 test_mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
99 // CHECK-LABEL: @test_mm512_mask_or_ps
100 // CHECK: or <16 x i32>
101 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
102 // CHECK: select <16 x i1> %[[MASK]], <16 x float> %{{.*}}, <16 x float> %{{.*}}
103 return (__m512) _mm512_mask_or_ps(__W, __U, __A, __B);
106 __m512 test_mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B) {
107 // CHECK-LABEL: @test_mm512_maskz_or_ps
108 // CHECK: or <16 x i32>
109 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
110 // CHECK: select <16 x i1> %[[MASK]], <16 x float> %{{.*}}, <16 x float> %{{.*}}
111 return (__m512) _mm512_maskz_or_ps(__U, __A, __B);
114 __m512d test_mm512_and_pd (__m512d __A, __m512d __B) {
115 // CHECK-LABEL: @test_mm512_and_pd
116 // CHECK: and <8 x i64>
117 return (__m512d) _mm512_and_pd(__A, __B);
120 __m512d test_mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
121 // CHECK-LABEL: @test_mm512_mask_and_pd
122 // CHECK: and <8 x i64>
123 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
124 // CHECK: select <8 x i1> %[[MASK]], <8 x double> %{{.*}}, <8 x double> %{{.*}}
125 return (__m512d) _mm512_mask_and_pd(__W, __U, __A, __B);
128 __m512d test_mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B) {
129 // CHECK-LABEL: @test_mm512_maskz_and_pd
130 // CHECK: and <8 x i64>
131 // CHECK: %[[MASK:.*]] = bitcast i8 %{{.*}} to <8 x i1>
132 // CHECK: select <8 x i1> %[[MASK]], <8 x double> %{{.*}}, <8 x double> %{{.*}}
133 return (__m512d) _mm512_maskz_and_pd(__U, __A, __B);
136 __m512 test_mm512_and_ps (__m512 __A, __m512 __B) {
137 // CHECK-LABEL: @test_mm512_and_ps
138 // CHECK: and <16 x i32>
139 return (__m512) _mm512_and_ps(__A, __B);
142 __m512 test_mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
143 // CHECK-LABEL: @test_mm512_mask_and_ps
144 // CHECK: and <16 x i32>
145 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
146 // CHECK: select <16 x i1> %[[MASK]], <16 x float> %{{.*}}, <16 x float> %{{.*}}
147 return (__m512) _mm512_mask_and_ps(__W, __U, __A, __B);
150 __m512 test_mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B) {
151 // CHECK-LABEL: @test_mm512_maskz_and_ps
152 // CHECK: and <16 x i32>
153 // CHECK: %[[MASK:.*]] = bitcast i16 %{{.*}} to <16 x i1>
154 // CHECK: select <16 x i1> %[[MASK]], <16 x float> %{{.*}}, <16 x float> %{{.*}}
155 return (__m512) _mm512_maskz_and_ps(__U, __A, __B);
158 __m512d test_mm512_andnot_pd (__m512d __A, __m512d __B) {
159 // CHECK-LABEL: @test_mm512_andnot_pd
160 // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
161 // CHECK: and <8 x i64>
162 return (__m512d) _mm512_andnot_pd(__A, __B);
165 __m512d test_mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
166 // CHECK-LABEL: @test_mm512_mask_andnot_pd
167 // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
168 // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
169 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
170 return (__m512d) _mm512_mask_andnot_pd(__W, __U, __A, __B);
173 __m512d test_mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B) {
174 // CHECK-LABEL: @test_mm512_maskz_andnot_pd
175 // CHECK: xor <8 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>
176 // CHECK: and <8 x i64> %{{.*}}, %{{.*}}
177 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
178 return (__m512d) _mm512_maskz_andnot_pd(__U, __A, __B);
181 __m512 test_mm512_andnot_ps (__m512 __A, __m512 __B) {
182 // CHECK-LABEL: @test_mm512_andnot_ps
183 // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
184 // CHECK: and <16 x i32>
185 return (__m512) _mm512_andnot_ps(__A, __B);
188 __m512 test_mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
189 // CHECK-LABEL: @test_mm512_mask_andnot_ps
190 // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
191 // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
192 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
193 return (__m512) _mm512_mask_andnot_ps(__W, __U, __A, __B);
196 __m512 test_mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B) {
197 // CHECK-LABEL: @test_mm512_maskz_andnot_ps
198 // CHECK: xor <16 x i32> %{{.*}}, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>
199 // CHECK: and <16 x i32> %{{.*}}, %{{.*}}
200 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
201 return (__m512) _mm512_maskz_andnot_ps(__U, __A, __B);
204 __m512i test_mm512_cvtpd_epi64(__m512d __A) {
205 // CHECK-LABEL: @test_mm512_cvtpd_epi64
206 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
207 return _mm512_cvtpd_epi64(__A);
210 __m512i test_mm512_mask_cvtpd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
211 // CHECK-LABEL: @test_mm512_mask_cvtpd_epi64
212 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
213 return _mm512_mask_cvtpd_epi64(__W, __U, __A);
216 __m512i test_mm512_maskz_cvtpd_epi64(__mmask8 __U, __m512d __A) {
217 // CHECK-LABEL: @test_mm512_maskz_cvtpd_epi64
218 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
219 return _mm512_maskz_cvtpd_epi64(__U, __A);
222 __m512i test_mm512_cvt_roundpd_epi64(__m512d __A) {
223 // CHECK-LABEL: @test_mm512_cvt_roundpd_epi64
224 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
225 return _mm512_cvt_roundpd_epi64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
228 __m512i test_mm512_mask_cvt_roundpd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
229 // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epi64
230 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
231 return _mm512_mask_cvt_roundpd_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
234 __m512i test_mm512_maskz_cvt_roundpd_epi64(__mmask8 __U, __m512d __A) {
235 // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epi64
236 // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
237 return _mm512_maskz_cvt_roundpd_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
240 __m512i test_mm512_cvtpd_epu64(__m512d __A) {
241 // CHECK-LABEL: @test_mm512_cvtpd_epu64
242 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
243 return _mm512_cvtpd_epu64(__A);
246 __m512i test_mm512_mask_cvtpd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
247 // CHECK-LABEL: @test_mm512_mask_cvtpd_epu64
248 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
249 return _mm512_mask_cvtpd_epu64(__W, __U, __A);
252 __m512i test_mm512_maskz_cvtpd_epu64(__mmask8 __U, __m512d __A) {
253 // CHECK-LABEL: @test_mm512_maskz_cvtpd_epu64
254 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
255 return _mm512_maskz_cvtpd_epu64(__U, __A);
258 __m512i test_mm512_cvt_roundpd_epu64(__m512d __A) {
259 // CHECK-LABEL: @test_mm512_cvt_roundpd_epu64
260 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
261 return _mm512_cvt_roundpd_epu64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
264 __m512i test_mm512_mask_cvt_roundpd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
265 // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epu64
266 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
267 return _mm512_mask_cvt_roundpd_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
270 __m512i test_mm512_maskz_cvt_roundpd_epu64(__mmask8 __U, __m512d __A) {
271 // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epu64
272 // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
273 return _mm512_maskz_cvt_roundpd_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
276 __m512i test_mm512_cvtps_epi64(__m256 __A) {
277 // CHECK-LABEL: @test_mm512_cvtps_epi64
278 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
279 return _mm512_cvtps_epi64(__A);
282 __m512i test_mm512_mask_cvtps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
283 // CHECK-LABEL: @test_mm512_mask_cvtps_epi64
284 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
285 return _mm512_mask_cvtps_epi64(__W, __U, __A);
288 __m512i test_mm512_maskz_cvtps_epi64(__mmask8 __U, __m256 __A) {
289 // CHECK-LABEL: @test_mm512_maskz_cvtps_epi64
290 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
291 return _mm512_maskz_cvtps_epi64(__U, __A);
294 __m512i test_mm512_cvt_roundps_epi64(__m256 __A) {
295 // CHECK-LABEL: @test_mm512_cvt_roundps_epi64
296 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
297 return _mm512_cvt_roundps_epi64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
300 __m512i test_mm512_mask_cvt_roundps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
301 // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epi64
302 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
303 return _mm512_mask_cvt_roundps_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
306 __m512i test_mm512_maskz_cvt_roundps_epi64(__mmask8 __U, __m256 __A) {
307 // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epi64
308 // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
309 return _mm512_maskz_cvt_roundps_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
312 __m512i test_mm512_cvtps_epu64(__m256 __A) {
313 // CHECK-LABEL: @test_mm512_cvtps_epu64
314 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
315 return _mm512_cvtps_epu64(__A);
318 __m512i test_mm512_mask_cvtps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
319 // CHECK-LABEL: @test_mm512_mask_cvtps_epu64
320 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
321 return _mm512_mask_cvtps_epu64(__W, __U, __A);
324 __m512i test_mm512_maskz_cvtps_epu64(__mmask8 __U, __m256 __A) {
325 // CHECK-LABEL: @test_mm512_maskz_cvtps_epu64
326 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
327 return _mm512_maskz_cvtps_epu64(__U, __A);
330 __m512i test_mm512_cvt_roundps_epu64(__m256 __A) {
331 // CHECK-LABEL: @test_mm512_cvt_roundps_epu64
332 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
333 return _mm512_cvt_roundps_epu64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
336 __m512i test_mm512_mask_cvt_roundps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
337 // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epu64
338 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
339 return _mm512_mask_cvt_roundps_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
342 __m512i test_mm512_maskz_cvt_roundps_epu64(__mmask8 __U, __m256 __A) {
343 // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epu64
344 // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
345 return _mm512_maskz_cvt_roundps_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
348 __m512d test_mm512_cvtepi64_pd(__m512i __A) {
349 // CHECK-LABEL: @test_mm512_cvtepi64_pd
350 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
351 return _mm512_cvtepi64_pd(__A);
354 __m512d test_mm512_mask_cvtepi64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
355 // CHECK-LABEL: @test_mm512_mask_cvtepi64_pd
356 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
357 return _mm512_mask_cvtepi64_pd(__W, __U, __A);
360 __m512d test_mm512_maskz_cvtepi64_pd(__mmask8 __U, __m512i __A) {
361 // CHECK-LABEL: @test_mm512_maskz_cvtepi64_pd
362 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
363 return _mm512_maskz_cvtepi64_pd(__U, __A);
366 __m512d test_mm512_cvt_roundepi64_pd(__m512i __A) {
367 // CHECK-LABEL: @test_mm512_cvt_roundepi64_pd
368 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
369 return _mm512_cvt_roundepi64_pd(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
372 __m512d test_mm512_mask_cvt_roundepi64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
373 // CHECK-LABEL: @test_mm512_mask_cvt_roundepi64_pd
374 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
375 return _mm512_mask_cvt_roundepi64_pd(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
378 __m512d test_mm512_maskz_cvt_roundepi64_pd(__mmask8 __U, __m512i __A) {
379 // CHECK-LABEL: @test_mm512_maskz_cvt_roundepi64_pd
380 // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
381 return _mm512_maskz_cvt_roundepi64_pd(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
384 __m256 test_mm512_cvtepi64_ps(__m512i __A) {
385 // CHECK-LABEL: @test_mm512_cvtepi64_ps
386 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
387 return _mm512_cvtepi64_ps(__A);
390 __m256 test_mm512_mask_cvtepi64_ps(__m256 __W, __mmask8 __U, __m512i __A) {
391 // CHECK-LABEL: @test_mm512_mask_cvtepi64_ps
392 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
393 return _mm512_mask_cvtepi64_ps(__W, __U, __A);
396 __m256 test_mm512_maskz_cvtepi64_ps(__mmask8 __U, __m512i __A) {
397 // CHECK-LABEL: @test_mm512_maskz_cvtepi64_ps
398 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
399 return _mm512_maskz_cvtepi64_ps(__U, __A);
402 __m256 test_mm512_cvt_roundepi64_ps(__m512i __A) {
403 // CHECK-LABEL: @test_mm512_cvt_roundepi64_ps
404 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
405 return _mm512_cvt_roundepi64_ps(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
408 __m256 test_mm512_mask_cvt_roundepi64_ps(__m256 __W, __mmask8 __U, __m512i __A) {
409 // CHECK-LABEL: @test_mm512_mask_cvt_roundepi64_ps
410 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
411 return _mm512_mask_cvt_roundepi64_ps(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
414 __m256 test_mm512_maskz_cvt_roundepi64_ps(__mmask8 __U, __m512i __A) {
415 // CHECK-LABEL: @test_mm512_maskz_cvt_roundepi64_ps
416 // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
417 return _mm512_maskz_cvt_roundepi64_ps(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
420 __m512i test_mm512_cvttpd_epi64(__m512d __A) {
421 // CHECK-LABEL: @test_mm512_cvttpd_epi64
422 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
423 return _mm512_cvttpd_epi64(__A);
426 __m512i test_mm512_mask_cvttpd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
427 // CHECK-LABEL: @test_mm512_mask_cvttpd_epi64
428 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
429 return _mm512_mask_cvttpd_epi64(__W, __U, __A);
432 __m512i test_mm512_maskz_cvttpd_epi64(__mmask8 __U, __m512d __A) {
433 // CHECK-LABEL: @test_mm512_maskz_cvttpd_epi64
434 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
435 return _mm512_maskz_cvttpd_epi64(__U, __A);
438 __m512i test_mm512_cvtt_roundpd_epi64(__m512d __A) {
439 // CHECK-LABEL: @test_mm512_cvtt_roundpd_epi64
440 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
441 return _mm512_cvtt_roundpd_epi64(__A, _MM_FROUND_CUR_DIRECTION);
444 __m512i test_mm512_mask_cvtt_roundpd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
445 // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epi64
446 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
447 return _mm512_mask_cvtt_roundpd_epi64(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
450 __m512i test_mm512_maskz_cvtt_roundpd_epi64(__mmask8 __U, __m512d __A) {
451 // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epi64
452 // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
453 return _mm512_maskz_cvtt_roundpd_epi64(__U, __A, _MM_FROUND_CUR_DIRECTION);
456 __m512i test_mm512_cvttpd_epu64(__m512d __A) {
457 // CHECK-LABEL: @test_mm512_cvttpd_epu64
458 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
459 return _mm512_cvttpd_epu64(__A);
462 __m512i test_mm512_mask_cvttpd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
463 // CHECK-LABEL: @test_mm512_mask_cvttpd_epu64
464 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
465 return _mm512_mask_cvttpd_epu64(__W, __U, __A);
468 __m512i test_mm512_maskz_cvttpd_epu64(__mmask8 __U, __m512d __A) {
469 // CHECK-LABEL: @test_mm512_maskz_cvttpd_epu64
470 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
471 return _mm512_maskz_cvttpd_epu64(__U, __A);
474 __m512i test_mm512_cvtt_roundpd_epu64(__m512d __A) {
475 // CHECK-LABEL: @test_mm512_cvtt_roundpd_epu64
476 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
477 return _mm512_cvtt_roundpd_epu64(__A, _MM_FROUND_CUR_DIRECTION);
480 __m512i test_mm512_mask_cvtt_roundpd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
481 // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epu64
482 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
483 return _mm512_mask_cvtt_roundpd_epu64(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
486 __m512i test_mm512_maskz_cvtt_roundpd_epu64(__mmask8 __U, __m512d __A) {
487 // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epu64
488 // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
489 return _mm512_maskz_cvtt_roundpd_epu64(__U, __A, _MM_FROUND_CUR_DIRECTION);
492 __m512i test_mm512_cvttps_epi64(__m256 __A) {
493 // CHECK-LABEL: @test_mm512_cvttps_epi64
494 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
495 return _mm512_cvttps_epi64(__A);
498 __m512i test_mm512_mask_cvttps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
499 // CHECK-LABEL: @test_mm512_mask_cvttps_epi64
500 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
501 return _mm512_mask_cvttps_epi64(__W, __U, __A);
504 __m512i test_mm512_maskz_cvttps_epi64(__mmask8 __U, __m256 __A) {
505 // CHECK-LABEL: @test_mm512_maskz_cvttps_epi64
506 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
507 return _mm512_maskz_cvttps_epi64(__U, __A);
510 __m512i test_mm512_cvtt_roundps_epi64(__m256 __A) {
511 // CHECK-LABEL: @test_mm512_cvtt_roundps_epi64
512 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
513 return _mm512_cvtt_roundps_epi64(__A, _MM_FROUND_CUR_DIRECTION);
516 __m512i test_mm512_mask_cvtt_roundps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
517 // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epi64
518 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
519 return _mm512_mask_cvtt_roundps_epi64(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
522 __m512i test_mm512_maskz_cvtt_roundps_epi64(__mmask8 __U, __m256 __A) {
523 // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epi64
524 // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
525 return _mm512_maskz_cvtt_roundps_epi64(__U, __A, _MM_FROUND_CUR_DIRECTION);
528 __m512i test_mm512_cvttps_epu64(__m256 __A) {
529 // CHECK-LABEL: @test_mm512_cvttps_epu64
530 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
531 return _mm512_cvttps_epu64(__A);
534 __m512i test_mm512_mask_cvttps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
535 // CHECK-LABEL: @test_mm512_mask_cvttps_epu64
536 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
537 return _mm512_mask_cvttps_epu64(__W, __U, __A);
540 __m512i test_mm512_maskz_cvttps_epu64(__mmask8 __U, __m256 __A) {
541 // CHECK-LABEL: @test_mm512_maskz_cvttps_epu64
542 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
543 return _mm512_maskz_cvttps_epu64(__U, __A);
546 __m512i test_mm512_cvtt_roundps_epu64(__m256 __A) {
547 // CHECK-LABEL: @test_mm512_cvtt_roundps_epu64
548 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
549 return _mm512_cvtt_roundps_epu64(__A, _MM_FROUND_CUR_DIRECTION);
552 __m512i test_mm512_mask_cvtt_roundps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
553 // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epu64
554 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
555 return _mm512_mask_cvtt_roundps_epu64(__W, __U, __A, _MM_FROUND_CUR_DIRECTION);
558 __m512i test_mm512_maskz_cvtt_roundps_epu64(__mmask8 __U, __m256 __A) {
559 // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epu64
560 // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
561 return _mm512_maskz_cvtt_roundps_epu64(__U, __A, _MM_FROUND_CUR_DIRECTION);
564 __m512d test_mm512_cvtepu64_pd(__m512i __A) {
565 // CHECK-LABEL: @test_mm512_cvtepu64_pd
566 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
567 return _mm512_cvtepu64_pd(__A);
570 __m512d test_mm512_mask_cvtepu64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
571 // CHECK-LABEL: @test_mm512_mask_cvtepu64_pd
572 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
573 return _mm512_mask_cvtepu64_pd(__W, __U, __A);
576 __m512d test_mm512_maskz_cvtepu64_pd(__mmask8 __U, __m512i __A) {
577 // CHECK-LABEL: @test_mm512_maskz_cvtepu64_pd
578 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
579 return _mm512_maskz_cvtepu64_pd(__U, __A);
582 __m512d test_mm512_cvt_roundepu64_pd(__m512i __A) {
583 // CHECK-LABEL: @test_mm512_cvt_roundepu64_pd
584 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
585 return _mm512_cvt_roundepu64_pd(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
588 __m512d test_mm512_mask_cvt_roundepu64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
589 // CHECK-LABEL: @test_mm512_mask_cvt_roundepu64_pd
590 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
591 return _mm512_mask_cvt_roundepu64_pd(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
594 __m512d test_mm512_maskz_cvt_roundepu64_pd(__mmask8 __U, __m512i __A) {
595 // CHECK-LABEL: @test_mm512_maskz_cvt_roundepu64_pd
596 // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
597 return _mm512_maskz_cvt_roundepu64_pd(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
600 __m256 test_mm512_cvtepu64_ps(__m512i __A) {
601 // CHECK-LABEL: @test_mm512_cvtepu64_ps
602 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
603 return _mm512_cvtepu64_ps(__A);
606 __m256 test_mm512_mask_cvtepu64_ps(__m256 __W, __mmask8 __U, __m512i __A) {
607 // CHECK-LABEL: @test_mm512_mask_cvtepu64_ps
608 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
609 return _mm512_mask_cvtepu64_ps(__W, __U, __A);
612 __m256 test_mm512_maskz_cvtepu64_ps(__mmask8 __U, __m512i __A) {
613 // CHECK-LABEL: @test_mm512_maskz_cvtepu64_ps
614 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
615 return _mm512_maskz_cvtepu64_ps(__U, __A);
618 __m256 test_mm512_cvt_roundepu64_ps(__m512i __A) {
619 // CHECK-LABEL: @test_mm512_cvt_roundepu64_ps
620 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
621 return _mm512_cvt_roundepu64_ps(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
624 __m256 test_mm512_mask_cvt_roundepu64_ps(__m256 __W, __mmask8 __U, __m512i __A) {
625 // CHECK-LABEL: @test_mm512_mask_cvt_roundepu64_ps
626 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
627 return _mm512_mask_cvt_roundepu64_ps(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
630 __m256 test_mm512_maskz_cvt_roundepu64_ps(__mmask8 __U, __m512i __A) {
631 // CHECK-LABEL: @test_mm512_maskz_cvt_roundepu64_ps
632 // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
633 return _mm512_maskz_cvt_roundepu64_ps(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
636 __m512d test_mm512_range_pd(__m512d __A, __m512d __B) {
637 // CHECK-LABEL: @test_mm512_range_pd
638 // CHECK: @llvm.x86.avx512.mask.range.pd.512
639 return _mm512_range_pd(__A, __B, 4);
642 __m512d test_mm512_mask_range_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
643 // CHECK-LABEL: @test_mm512_mask_range_pd
644 // CHECK: @llvm.x86.avx512.mask.range.pd.512
645 return _mm512_mask_range_pd(__W, __U, __A, __B, 4);
648 __m512d test_mm512_maskz_range_pd(__mmask8 __U, __m512d __A, __m512d __B) {
649 // CHECK-LABEL: @test_mm512_maskz_range_pd
650 // CHECK: @llvm.x86.avx512.mask.range.pd.512
651 return _mm512_maskz_range_pd(__U, __A, __B, 4);
654 __m512d test_mm512_range_round_pd(__m512d __A, __m512d __B) {
655 // CHECK-LABEL: @test_mm512_range_round_pd
656 // CHECK: @llvm.x86.avx512.mask.range.pd.512
657 return _mm512_range_round_pd(__A, __B, 4, 8);
660 __m512d test_mm512_mask_range_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
661 // CHECK-LABEL: @test_mm512_mask_range_round_pd
662 // CHECK: @llvm.x86.avx512.mask.range.pd.512
663 return _mm512_mask_range_round_pd(__W, __U, __A, __B, 4, 8);
666 __m512d test_mm512_maskz_range_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
667 // CHECK-LABEL: @test_mm512_maskz_range_round_pd
668 // CHECK: @llvm.x86.avx512.mask.range.pd.512
669 return _mm512_maskz_range_round_pd(__U, __A, __B, 4, 8);
672 __m128d test_mm512_range_round_sd(__m128d __A, __m128d __B) {
673 // CHECK-LABEL: @test_mm512_range_round_sd
674 // CHECK: @llvm.x86.avx512.mask.range.sd
675 return _mm_range_round_sd(__A, __B, 4, 8);
678 __m128d test_mm512_mask_range_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
679 // CHECK-LABEL: test_mm512_mask_range_round_sd
680 // CHECK: @llvm.x86.avx512.mask.range.sd
681 return _mm_mask_range_round_sd(__W, __U, __A, __B, 4, 8);
684 __m128d test_mm512_maskz_range_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
685 // CHECK-LABEL: @test_mm512_maskz_range_round_sd
686 // CHECK: @llvm.x86.avx512.mask.range.sd
687 return _mm_maskz_range_round_sd(__U, __A, __B, 4, 8);
690 __m128d test_mm512_range_round_ss(__m128d __A, __m128d __B) {
691 // CHECK-LABEL: @test_mm512_range_round_ss
692 // CHECK: @llvm.x86.avx512.mask.range.ss
693 return _mm_range_round_ss(__A, __B, 4, 8);
696 __m128d test_mm512_mask_range_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
697 // CHECK-LABEL: @test_mm512_mask_range_round_ss
698 // CHECK: @llvm.x86.avx512.mask.range.ss
699 return _mm_mask_range_round_ss(__W, __U, __A, __B, 4, 8);
702 __m128 test_mm512_maskz_range_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
703 // CHECK-LABEL: @test_mm512_maskz_range_round_ss
704 // CHECK: @llvm.x86.avx512.mask.range.ss
705 return _mm_maskz_range_round_ss(__U, __A, __B, 4, 8);
708 __m128d test_mm_range_sd(__m128d __A, __m128d __B) {
709 // CHECK-LABEL: @test_mm_range_sd
710 // CHECK: @llvm.x86.avx512.mask.range.sd
711 return _mm_range_sd(__A, __B, 4);
714 __m128d test_mm_mask_range_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
715 // CHECK-LABEL: test_mm_mask_range_sd
716 // CHECK: @llvm.x86.avx512.mask.range.sd
717 return _mm_mask_range_sd(__W, __U, __A, __B, 4);
720 __m128d test_mm_maskz_range_sd(__mmask8 __U, __m128d __A, __m128d __B) {
721 // CHECK-LABEL: @test_mm_maskz_range_sd
722 // CHECK: @llvm.x86.avx512.mask.range.sd
723 return _mm_maskz_range_sd(__U, __A, __B, 4);
726 __m128d test_mm_range_ss(__m128d __A, __m128d __B) {
727 // CHECK-LABEL: @test_mm_range_ss
728 // CHECK: @llvm.x86.avx512.mask.range.ss
729 return _mm_range_ss(__A, __B, 4);
732 __m128d test_mm_mask_range_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
733 // CHECK-LABEL: @test_mm_mask_range_ss
734 // CHECK: @llvm.x86.avx512.mask.range.ss
735 return _mm_mask_range_ss(__W, __U, __A, __B, 4);
738 __m128 test_mm_maskz_range_ss(__mmask8 __U, __m128 __A, __m128 __B) {
739 // CHECK-LABEL: @test_mm_maskz_range_ss
740 // CHECK: @llvm.x86.avx512.mask.range.ss
741 return _mm_maskz_range_ss(__U, __A, __B, 4);
744 __m512 test_mm512_range_ps(__m512 __A, __m512 __B) {
745 // CHECK-LABEL: @test_mm512_range_ps
746 // CHECK: @llvm.x86.avx512.mask.range.ps.512
747 return _mm512_range_ps(__A, __B, 4);
750 __m512 test_mm512_mask_range_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
751 // CHECK-LABEL: @test_mm512_mask_range_ps
752 // CHECK: @llvm.x86.avx512.mask.range.ps.512
753 return _mm512_mask_range_ps(__W, __U, __A, __B, 4);
756 __m512 test_mm512_maskz_range_ps(__mmask16 __U, __m512 __A, __m512 __B) {
757 // CHECK-LABEL: @test_mm512_maskz_range_ps
758 // CHECK: @llvm.x86.avx512.mask.range.ps.512
759 return _mm512_maskz_range_ps(__U, __A, __B, 4);
762 __m512 test_mm512_range_round_ps(__m512 __A, __m512 __B) {
763 // CHECK-LABEL: @test_mm512_range_round_ps
764 // CHECK: @llvm.x86.avx512.mask.range.ps.512
765 return _mm512_range_round_ps(__A, __B, 4, 8);
768 __m512 test_mm512_mask_range_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
769 // CHECK-LABEL: @test_mm512_mask_range_round_ps
770 // CHECK: @llvm.x86.avx512.mask.range.ps.512
771 return _mm512_mask_range_round_ps(__W, __U, __A, __B, 4, 8);
774 __m512 test_mm512_maskz_range_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
775 // CHECK-LABEL: @test_mm512_maskz_range_round_ps
776 // CHECK: @llvm.x86.avx512.mask.range.ps.512
777 return _mm512_maskz_range_round_ps(__U, __A, __B, 4, 8);
780 __m512d test_mm512_reduce_pd(__m512d __A) {
781 // CHECK-LABEL: @test_mm512_reduce_pd
782 // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
783 return _mm512_reduce_pd(__A, 4);
786 __m512d test_mm512_mask_reduce_pd(__m512d __W, __mmask8 __U, __m512d __A) {
787 // CHECK-LABEL: @test_mm512_mask_reduce_pd
788 // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
789 return _mm512_mask_reduce_pd(__W, __U, __A, 4);
792 __m512d test_mm512_maskz_reduce_pd(__mmask8 __U, __m512d __A) {
793 // CHECK-LABEL: @test_mm512_maskz_reduce_pd
794 // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
795 return _mm512_maskz_reduce_pd(__U, __A, 4);
798 __m512 test_mm512_reduce_ps(__m512 __A) {
799 // CHECK-LABEL: @test_mm512_reduce_ps
800 // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
801 return _mm512_reduce_ps(__A, 4);
804 __m512 test_mm512_mask_reduce_ps(__m512 __W, __mmask16 __U, __m512 __A) {
805 // CHECK-LABEL: @test_mm512_mask_reduce_ps
806 // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
807 return _mm512_mask_reduce_ps(__W, __U, __A, 4);
810 __m512 test_mm512_maskz_reduce_ps(__mmask16 __U, __m512 __A) {
811 // CHECK-LABEL: @test_mm512_maskz_reduce_ps
812 // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
813 return _mm512_maskz_reduce_ps(__U, __A, 4);
816 __m512d test_mm512_reduce_round_pd(__m512d __A) {
817 // CHECK-LABEL: @test_mm512_reduce_round_pd
818 // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
819 return _mm512_reduce_round_pd(__A, 4, 8);
822 __m512d test_mm512_mask_reduce_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
823 // CHECK-LABEL: @test_mm512_mask_reduce_round_pd
824 // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
825 return _mm512_mask_reduce_round_pd(__W, __U, __A, 4, 8);
828 __m512d test_mm512_maskz_reduce_round_pd(__mmask8 __U, __m512d __A) {
829 // CHECK-LABEL: @test_mm512_maskz_reduce_round_pd
830 // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
831 return _mm512_maskz_reduce_round_pd(__U, __A, 4, 8);
834 __m512 test_mm512_reduce_round_ps(__m512 __A) {
835 // CHECK-LABEL: @test_mm512_reduce_round_ps
836 // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
837 return _mm512_reduce_round_ps(__A, 4, 8);
840 __m512 test_mm512_mask_reduce_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
841 // CHECK-LABEL: @test_mm512_mask_reduce_round_ps
842 // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
843 return _mm512_mask_reduce_round_ps(__W, __U, __A, 4, 8);
846 __m512 test_mm512_maskz_reduce_round_ps(__mmask16 __U, __m512 __A) {
847 // CHECK-LABEL: @test_mm512_maskz_reduce_round_ps
848 // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
849 return _mm512_maskz_reduce_round_ps(__U, __A, 4, 8);
852 __m128 test_mm_reduce_ss(__m128 __A, __m128 __B) {
853 // CHECK-LABEL: @test_mm_reduce_ss
854 // CHECK: @llvm.x86.avx512.mask.reduce.ss
855 return _mm_reduce_ss(__A, __B, 4);
858 __m128 test_mm_mask_reduce_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
859 // CHECK-LABEL: @test_mm_mask_reduce_ss
860 // CHECK: @llvm.x86.avx512.mask.reduce.ss
861 return _mm_mask_reduce_ss(__W, __U, __A, __B, 4);
864 __m128 test_mm_maskz_reduce_ss(__mmask8 __U, __m128 __A, __m128 __B) {
865 // CHECK-LABEL: @test_mm_maskz_reduce_ss
866 // CHECK: @llvm.x86.avx512.mask.reduce.ss
867 return _mm_maskz_reduce_ss(__U, __A, __B, 4);
870 __m128 test_mm_reduce_round_ss(__m128 __A, __m128 __B) {
871 // CHECK-LABEL: @test_mm_reduce_round_ss
872 // CHECK: @llvm.x86.avx512.mask.reduce.ss
873 return _mm_reduce_round_ss(__A, __B, 4, 8);
876 __m128 test_mm_mask_reduce_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
877 // CHECK-LABEL: @test_mm_mask_reduce_round_ss
878 // CHECK: @llvm.x86.avx512.mask.reduce.ss
879 return _mm_mask_reduce_round_ss(__W, __U, __A, __B, 4, 8);
882 __m128 test_mm_maskz_reduce_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
883 // CHECK-LABEL: @test_mm_maskz_reduce_round_ss
884 // CHECK: @llvm.x86.avx512.mask.reduce.ss
885 return _mm_maskz_reduce_round_ss(__U, __A, __B, 4, 8);
888 __m128d test_mm_reduce_sd(__m128d __A, __m128d __B) {
889 // CHECK-LABEL: @test_mm_reduce_sd
890 // CHECK: @llvm.x86.avx512.mask.reduce.sd
891 return _mm_reduce_sd(__A, __B, 4);
894 __m128d test_mm_mask_reduce_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
895 // CHECK-LABEL: @test_mm_mask_reduce_sd
896 // CHECK: @llvm.x86.avx512.mask.reduce.sd
897 return _mm_mask_reduce_sd(__W, __U, __A, __B, 4);
900 __m128d test_mm_maskz_reduce_sd(__mmask8 __U, __m128d __A, __m128d __B) {
901 // CHECK-LABEL: @test_mm_maskz_reduce_sd
902 // CHECK: @llvm.x86.avx512.mask.reduce.sd
903 return _mm_maskz_reduce_sd(__U, __A, __B, 4);
906 __m128d test_mm_reduce_round_sd(__m128d __A, __m128d __B) {
907 // CHECK-LABEL: @test_mm_reduce_round_sd
908 // CHECK: @llvm.x86.avx512.mask.reduce.sd
909 return _mm_reduce_round_sd(__A, __B, 4, 8);
912 __m128d test_mm_mask_reduce_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
913 // CHECK-LABEL: @test_mm_mask_reduce_round_sd
914 // CHECK: @llvm.x86.avx512.mask.reduce.sd
915 return _mm_mask_reduce_round_sd(__W, __U, __A, __B, 4, 8);
918 __m128d test_mm_maskz_reduce_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
919 // CHECK-LABEL: @test_mm_maskz_reduce_round_sd
920 // CHECK: @llvm.x86.avx512.mask.reduce.sd
921 return _mm_maskz_reduce_round_sd(__U, __A, __B, 4, 8);
924 __mmask16 test_mm512_movepi32_mask(__m512i __A) {
925 // CHECK-LABEL: @test_mm512_movepi32_mask
926 // CHECK: @llvm.x86.avx512.cvtd2mask.512
927 return _mm512_movepi32_mask(__A);
930 __m512i test_mm512_movm_epi32(__mmask16 __A) {
931 // CHECK-LABEL: @test_mm512_movm_epi32
932 // CHECK: @llvm.x86.avx512.cvtmask2d.512
933 return _mm512_movm_epi32(__A);
936 __m512i test_mm512_movm_epi64(__mmask8 __A) {
937 // CHECK-LABEL: @test_mm512_movm_epi64
938 // CHECK: @llvm.x86.avx512.cvtmask2q.512
939 return _mm512_movm_epi64(__A);
942 __mmask8 test_mm512_movepi64_mask(__m512i __A) {
943 // CHECK-LABEL: @test_mm512_movepi64_mask
944 // CHECK: @llvm.x86.avx512.cvtq2mask.512
945 return _mm512_movepi64_mask(__A);
948 __m512 test_mm512_broadcast_f32x2(__m128 __A) {
949 // CHECK-LABEL: @test_mm512_broadcast_f32x2
950 // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
951 return _mm512_broadcast_f32x2(__A);
954 __m512 test_mm512_mask_broadcast_f32x2(__m512 __O, __mmask16 __M, __m128 __A) {
955 // CHECK-LABEL: @test_mm512_mask_broadcast_f32x2
956 // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
957 return _mm512_mask_broadcast_f32x2(__O, __M, __A);
960 __m512 test_mm512_maskz_broadcast_f32x2(__mmask16 __M, __m128 __A) {
961 // CHECK-LABEL: @test_mm512_maskz_broadcast_f32x2
962 // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
963 return _mm512_maskz_broadcast_f32x2(__M, __A);
966 __m512 test_mm512_broadcast_f32x8(__m256 __A) {
967 // CHECK-LABEL: @test_mm512_broadcast_f32x8
968 // CHECK: @llvm.x86.avx512.mask.broadcastf32x8
969 return _mm512_broadcast_f32x8(__A);
972 __m512 test_mm512_mask_broadcast_f32x8(__m512 __O, __mmask16 __M, __m256 __A) {
973 // CHECK-LABEL: @test_mm512_mask_broadcast_f32x8
974 // CHECK: @llvm.x86.avx512.mask.broadcastf32x8
975 return _mm512_mask_broadcast_f32x8(__O, __M, __A);
978 __m512 test_mm512_maskz_broadcast_f32x8(__mmask16 __M, __m256 __A) {
979 // CHECK-LABEL: @test_mm512_maskz_broadcast_f32x8
980 // CHECK: @llvm.x86.avx512.mask.broadcastf32x8
981 return _mm512_maskz_broadcast_f32x8(__M, __A);
984 __m512d test_mm512_broadcast_f64x2(__m128d __A) {
985 // CHECK-LABEL: @test_mm512_broadcast_f64x2
986 // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
987 return _mm512_broadcast_f64x2(__A);
990 __m512d test_mm512_mask_broadcast_f64x2(__m512d __O, __mmask8 __M, __m128d __A) {
991 // CHECK-LABEL: @test_mm512_mask_broadcast_f64x2
992 // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
993 return _mm512_mask_broadcast_f64x2(__O, __M, __A);
996 __m512d test_mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) {
997 // CHECK-LABEL: @test_mm512_maskz_broadcast_f64x2
998 // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
999 return _mm512_maskz_broadcast_f64x2(__M, __A);
1002 __m512i test_mm512_broadcast_i32x2(__m128i __A) {
1003 // CHECK-LABEL: @test_mm512_broadcast_i32x2
1004 // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
1005 return _mm512_broadcast_i32x2(__A);
1008 __m512i test_mm512_mask_broadcast_i32x2(__m512i __O, __mmask16 __M, __m128i __A) {
1009 // CHECK-LABEL: @test_mm512_mask_broadcast_i32x2
1010 // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
1011 return _mm512_mask_broadcast_i32x2(__O, __M, __A);
1014 __m512i test_mm512_maskz_broadcast_i32x2(__mmask16 __M, __m128i __A) {
1015 // CHECK-LABEL: @test_mm512_maskz_broadcast_i32x2
1016 // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
1017 return _mm512_maskz_broadcast_i32x2(__M, __A);
1020 __m512i test_mm512_broadcast_i32x8(__m256i __A) {
1021 // CHECK-LABEL: @test_mm512_broadcast_i32x8
1022 // CHECK: @llvm.x86.avx512.mask.broadcasti32x8
1023 return _mm512_broadcast_i32x8(__A);
1026 __m512i test_mm512_mask_broadcast_i32x8(__m512i __O, __mmask16 __M, __m256i __A) {
1027 // CHECK-LABEL: @test_mm512_mask_broadcast_i32x8
1028 // CHECK: @llvm.x86.avx512.mask.broadcasti32x8
1029 return _mm512_mask_broadcast_i32x8(__O, __M, __A);
1032 __m512i test_mm512_maskz_broadcast_i32x8(__mmask16 __M, __m256i __A) {
1033 // CHECK-LABEL: @test_mm512_maskz_broadcast_i32x8
1034 // CHECK: @llvm.x86.avx512.mask.broadcasti32x8
1035 return _mm512_maskz_broadcast_i32x8(__M, __A);
1038 __m512i test_mm512_broadcast_i64x2(__m128i __A) {
1039 // CHECK-LABEL: @test_mm512_broadcast_i64x2
1040 // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
1041 return _mm512_broadcast_i64x2(__A);
1044 __m512i test_mm512_mask_broadcast_i64x2(__m512i __O, __mmask8 __M, __m128i __A) {
1045 // CHECK-LABEL: @test_mm512_mask_broadcast_i64x2
1046 // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
1047 return _mm512_mask_broadcast_i64x2(__O, __M, __A);
1050 __m512i test_mm512_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) {
1051 // CHECK-LABEL: @test_mm512_maskz_broadcast_i64x2
1052 // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
1053 return _mm512_maskz_broadcast_i64x2(__M, __A);
1055 __m256 test_mm512_extractf32x8_ps(__m512 __A) {
1056 // CHECK-LABEL: @test_mm512_extractf32x8_ps
1057 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1058 return _mm512_extractf32x8_ps(__A, 1);
1061 __m256 test_mm512_mask_extractf32x8_ps(__m256 __W, __mmask8 __U, __m512 __A) {
1062 // CHECK-LABEL: @test_mm512_mask_extractf32x8_ps
1063 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1064 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1065 return _mm512_mask_extractf32x8_ps(__W, __U, __A, 1);
1068 __m256 test_mm512_maskz_extractf32x8_ps(__mmask8 __U, __m512 __A) {
1069 // CHECK-LABEL: @test_mm512_maskz_extractf32x8_ps
1070 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1071 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1072 return _mm512_maskz_extractf32x8_ps(__U, __A, 1);
1075 __m128d test_mm512_extractf64x2_pd(__m512d __A) {
1076 // CHECK-LABEL: @test_mm512_extractf64x2_pd
1077 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <2 x i32> <i32 6, i32 7>
1078 return _mm512_extractf64x2_pd(__A, 3);
1081 __m128d test_mm512_mask_extractf64x2_pd(__m128d __W, __mmask8 __U, __m512d __A) {
1082 // CHECK-LABEL: @test_mm512_mask_extractf64x2_pd
1083 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <2 x i32> <i32 6, i32 7>
1084 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
1085 return _mm512_mask_extractf64x2_pd(__W, __U, __A, 3);
1088 __m128d test_mm512_maskz_extractf64x2_pd(__mmask8 __U, __m512d __A) {
1089 // CHECK-LABEL: @test_mm512_maskz_extractf64x2_pd
1090 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> undef, <2 x i32> <i32 6, i32 7>
1091 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}}
1092 return _mm512_maskz_extractf64x2_pd(__U, __A, 3);
1095 __m256i test_mm512_extracti32x8_epi32(__m512i __A) {
1096 // CHECK-LABEL: @test_mm512_extracti32x8_epi32
1097 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1098 return _mm512_extracti32x8_epi32(__A, 1);
1101 __m256i test_mm512_mask_extracti32x8_epi32(__m256i __W, __mmask8 __U, __m512i __A) {
1102 // CHECK-LABEL: @test_mm512_mask_extracti32x8_epi32
1103 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1104 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
1105 return _mm512_mask_extracti32x8_epi32(__W, __U, __A, 1);
1108 __m256i test_mm512_maskz_extracti32x8_epi32(__mmask8 __U, __m512i __A) {
1109 // CHECK-LABEL: @test_mm512_maskz_extracti32x8_epi32
1110 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1111 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
1112 return _mm512_maskz_extracti32x8_epi32(__U, __A, 1);
1115 __m128i test_mm512_extracti64x2_epi64(__m512i __A) {
1116 // CHECK-LABEL: @test_mm512_extracti64x2_epi64
1117 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <2 x i32> <i32 6, i32 7>
1118 return _mm512_extracti64x2_epi64(__A, 3);
1121 __m128i test_mm512_mask_extracti64x2_epi64(__m128i __W, __mmask8 __U, __m512i __A) {
1122 // CHECK-LABEL: @test_mm512_mask_extracti64x2_epi64
1123 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <2 x i32> <i32 6, i32 7>
1124 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1125 return _mm512_mask_extracti64x2_epi64(__W, __U, __A, 3);
1128 __m128i test_mm512_maskz_extracti64x2_epi64(__mmask8 __U, __m512i __A) {
1129 // CHECK-LABEL: @test_mm512_maskz_extracti64x2_epi64
1130 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> undef, <2 x i32> <i32 6, i32 7>
1131 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
1132 return _mm512_maskz_extracti64x2_epi64(__U, __A, 3);
1135 __m512 test_mm512_insertf32x8(__m512 __A, __m256 __B) {
1136 // CHECK-LABEL: @test_mm512_insertf32x8
1137 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
1138 return _mm512_insertf32x8(__A, __B, 1);
1141 __m512 test_mm512_mask_insertf32x8(__m512 __W, __mmask16 __U, __m512 __A, __m256 __B) {
1142 // CHECK-LABEL: @test_mm512_mask_insertf32x8
1143 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
1144 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
1145 return _mm512_mask_insertf32x8(__W, __U, __A, __B, 1);
1148 __m512 test_mm512_maskz_insertf32x8(__mmask16 __U, __m512 __A, __m256 __B) {
1149 // CHECK-LABEL: @test_mm512_maskz_insertf32x8
1150 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
1151 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
1152 return _mm512_maskz_insertf32x8(__U, __A, __B, 1);
1155 __m512d test_mm512_insertf64x2(__m512d __A, __m128d __B) {
1156 // CHECK-LABEL: @test_mm512_insertf64x2
1157 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 8, i32 9>
1158 return _mm512_insertf64x2(__A, __B, 3);
1161 __m512d test_mm512_mask_insertf64x2(__m512d __W, __mmask8 __U, __m512d __A, __m128d __B) {
1162 // CHECK-LABEL: @test_mm512_mask_insertf64x2
1163 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 8, i32 9>
1164 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
1165 return _mm512_mask_insertf64x2(__W, __U, __A, __B, 3);
1168 __m512d test_mm512_maskz_insertf64x2(__mmask8 __U, __m512d __A, __m128d __B) {
1169 // CHECK-LABEL: @test_mm512_maskz_insertf64x2
1170 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 8, i32 9>
1171 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
1172 return _mm512_maskz_insertf64x2(__U, __A, __B, 3);
1175 __m512i test_mm512_inserti32x8(__m512i __A, __m256i __B) {
1176 // CHECK-LABEL: @test_mm512_inserti32x8
1177 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
1178 return _mm512_inserti32x8(__A, __B, 1);
1181 __m512i test_mm512_mask_inserti32x8(__m512i __W, __mmask16 __U, __m512i __A, __m256i __B) {
1182 // CHECK-LABEL: @test_mm512_mask_inserti32x8
1183 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
1184 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1185 return _mm512_mask_inserti32x8(__W, __U, __A, __B, 1);
1188 __m512i test_mm512_maskz_inserti32x8(__mmask16 __U, __m512i __A, __m256i __B) {
1189 // CHECK-LABEL: @test_mm512_maskz_inserti32x8
1190 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
1191 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
1192 return _mm512_maskz_inserti32x8(__U, __A, __B, 1);
1195 __m512i test_mm512_inserti64x2(__m512i __A, __m128i __B) {
1196 // CHECK-LABEL: @test_mm512_inserti64x2
1197 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 6, i32 7>
1198 return _mm512_inserti64x2(__A, __B, 1);
1201 __m512i test_mm512_mask_inserti64x2(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
1202 // CHECK-LABEL: @test_mm512_mask_inserti64x2
1203 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 6, i32 7>
1204 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1205 return _mm512_mask_inserti64x2(__W, __U, __A, __B, 1);
1208 __m512i test_mm512_maskz_inserti64x2(__mmask8 __U, __m512i __A, __m128i __B) {
1209 // CHECK-LABEL: @test_mm512_maskz_inserti64x2
1210 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 6, i32 7>
1211 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1212 return _mm512_maskz_inserti64x2(__U, __A, __B, 1);
1214 __mmask8 test_mm512_mask_fpclass_pd_mask(__mmask8 __U, __m512d __A) {
1215 // CHECK-LABEL: @test_mm512_mask_fpclass_pd_mask
1216 // CHECK: @llvm.x86.avx512.mask.fpclass.pd.512
1217 return _mm512_mask_fpclass_pd_mask(__U, __A, 4);
1220 __mmask8 test_mm512_fpclass_pd_mask(__m512d __A) {
1221 // CHECK-LABEL: @test_mm512_fpclass_pd_mask
1222 // CHECK: @llvm.x86.avx512.mask.fpclass.pd.512
1223 return _mm512_fpclass_pd_mask(__A, 4);
1226 __mmask16 test_mm512_mask_fpclass_ps_mask(__mmask16 __U, __m512 __A) {
1227 // CHECK-LABEL: @test_mm512_mask_fpclass_ps_mask
1228 // CHECK: @llvm.x86.avx512.mask.fpclass.ps.512
1229 return _mm512_mask_fpclass_ps_mask(__U, __A, 4);
1232 __mmask16 test_mm512_fpclass_ps_mask(__m512 __A) {
1233 // CHECK-LABEL: @test_mm512_fpclass_ps_mask
1234 // CHECK: @llvm.x86.avx512.mask.fpclass.ps.512
1235 return _mm512_fpclass_ps_mask(__A, 4);
1238 __mmask8 test_mm_fpclass_sd_mask(__m128 __A) {
1239 // CHECK-LABEL: @test_mm_fpclass_sd_mask
1240 // CHECK: @llvm.x86.avx512.mask.fpclass.sd
1241 return _mm_fpclass_sd_mask (__A, 2);
1244 __mmask8 test_mm_mask_fpclass_sd_mask(__mmask8 __U, __m128 __A) {
1245 // CHECK-LABEL: @test_mm_mask_fpclass_sd_mask
1246 // CHECK: @llvm.x86.avx512.mask.fpclass.sd
1247 return _mm_mask_fpclass_sd_mask (__U, __A, 2);
1250 __mmask8 test_mm_fpclass_ss_mask(__m128 __A) {
1251 // CHECK-LABEL: @test_mm_fpclass_ss_mask
1252 // CHECK: @llvm.x86.avx512.mask.fpclass.ss
1253 return _mm_fpclass_ss_mask ( __A, 2);
1256 __mmask8 test_mm_mask_fpclass_ss_mask(__mmask8 __U, __m128 __A) {
1257 // CHECK-LABEL: @test_mm_mask_fpclass_ss_mask
1258 // CHECK: @llvm.x86.avx512.mask.fpclass.ss
1259 return _mm_mask_fpclass_ss_mask (__U, __A, 2);