1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512dq -emit-llvm -o - -Werror | FileCheck %s
2*67e74705SXin Li
3*67e74705SXin Li // Don't include mm_malloc.h, it's system specific.
4*67e74705SXin Li #define __MM_MALLOC_H
5*67e74705SXin Li
6*67e74705SXin Li #include <immintrin.h>
7*67e74705SXin Li
test_mm512_mullo_epi64(__m512i __A,__m512i __B)8*67e74705SXin Li __m512i test_mm512_mullo_epi64 (__m512i __A, __m512i __B) {
9*67e74705SXin Li // CHECK-LABEL: @test_mm512_mullo_epi64
10*67e74705SXin Li // CHECK: mul <8 x i64>
11*67e74705SXin Li return (__m512i) ((__v8di) __A * (__v8di) __B);
12*67e74705SXin Li }
13*67e74705SXin Li
test_mm512_mask_mullo_epi64(__m512i __W,__mmask8 __U,__m512i __A,__m512i __B)14*67e74705SXin Li __m512i test_mm512_mask_mullo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
15*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_mullo_epi64
16*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.pmull.q.512
17*67e74705SXin Li return (__m512i) _mm512_mask_mullo_epi64(__W, __U, __A, __B);
18*67e74705SXin Li }
19*67e74705SXin Li
test_mm512_maskz_mullo_epi64(__mmask8 __U,__m512i __A,__m512i __B)20*67e74705SXin Li __m512i test_mm512_maskz_mullo_epi64 (__mmask8 __U, __m512i __A, __m512i __B) {
21*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_mullo_epi64
22*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.pmull.q.512
23*67e74705SXin Li return (__m512i) _mm512_maskz_mullo_epi64(__U, __A, __B);
24*67e74705SXin Li }
25*67e74705SXin Li
test_mm512_xor_pd(__m512d __A,__m512d __B)26*67e74705SXin Li __m512d test_mm512_xor_pd (__m512d __A, __m512d __B) {
27*67e74705SXin Li // CHECK-LABEL: @test_mm512_xor_pd
28*67e74705SXin Li // CHECK: xor <8 x i64>
29*67e74705SXin Li return (__m512d) _mm512_xor_pd(__A, __B);
30*67e74705SXin Li }
31*67e74705SXin Li
test_mm512_mask_xor_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)32*67e74705SXin Li __m512d test_mm512_mask_xor_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
33*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_xor_pd
34*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.pd.512
35*67e74705SXin Li return (__m512d) _mm512_mask_xor_pd(__W, __U, __A, __B);
36*67e74705SXin Li }
37*67e74705SXin Li
test_mm512_maskz_xor_pd(__mmask8 __U,__m512d __A,__m512d __B)38*67e74705SXin Li __m512d test_mm512_maskz_xor_pd (__mmask8 __U, __m512d __A, __m512d __B) {
39*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_xor_pd
40*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.pd.512
41*67e74705SXin Li return (__m512d) _mm512_maskz_xor_pd(__U, __A, __B);
42*67e74705SXin Li }
43*67e74705SXin Li
test_mm512_xor_ps(__m512 __A,__m512 __B)44*67e74705SXin Li __m512 test_mm512_xor_ps (__m512 __A, __m512 __B) {
45*67e74705SXin Li // CHECK-LABEL: @test_mm512_xor_ps
46*67e74705SXin Li // CHECK: xor <16 x i32>
47*67e74705SXin Li return (__m512) _mm512_xor_ps(__A, __B);
48*67e74705SXin Li }
49*67e74705SXin Li
test_mm512_mask_xor_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)50*67e74705SXin Li __m512 test_mm512_mask_xor_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
51*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_xor_ps
52*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.ps.512
53*67e74705SXin Li return (__m512) _mm512_mask_xor_ps(__W, __U, __A, __B);
54*67e74705SXin Li }
55*67e74705SXin Li
test_mm512_maskz_xor_ps(__mmask16 __U,__m512 __A,__m512 __B)56*67e74705SXin Li __m512 test_mm512_maskz_xor_ps (__mmask16 __U, __m512 __A, __m512 __B) {
57*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_xor_ps
58*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.ps.512
59*67e74705SXin Li return (__m512) _mm512_maskz_xor_ps(__U, __A, __B);
60*67e74705SXin Li }
61*67e74705SXin Li
test_mm512_or_pd(__m512d __A,__m512d __B)62*67e74705SXin Li __m512d test_mm512_or_pd (__m512d __A, __m512d __B) {
63*67e74705SXin Li // CHECK-LABEL: @test_mm512_or_pd
64*67e74705SXin Li // CHECK: or <8 x i64>
65*67e74705SXin Li return (__m512d) _mm512_or_pd(__A, __B);
66*67e74705SXin Li }
67*67e74705SXin Li
test_mm512_mask_or_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)68*67e74705SXin Li __m512d test_mm512_mask_or_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
69*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_or_pd
70*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.pd.512
71*67e74705SXin Li return (__m512d) _mm512_mask_or_pd(__W, __U, __A, __B);
72*67e74705SXin Li }
73*67e74705SXin Li
test_mm512_maskz_or_pd(__mmask8 __U,__m512d __A,__m512d __B)74*67e74705SXin Li __m512d test_mm512_maskz_or_pd (__mmask8 __U, __m512d __A, __m512d __B) {
75*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_or_pd
76*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.pd.512
77*67e74705SXin Li return (__m512d) _mm512_maskz_or_pd(__U, __A, __B);
78*67e74705SXin Li }
79*67e74705SXin Li
test_mm512_or_ps(__m512 __A,__m512 __B)80*67e74705SXin Li __m512 test_mm512_or_ps (__m512 __A, __m512 __B) {
81*67e74705SXin Li // CHECK-LABEL: @test_mm512_or_ps
82*67e74705SXin Li // CHECK: or <16 x i32>
83*67e74705SXin Li return (__m512) _mm512_or_ps(__A, __B);
84*67e74705SXin Li }
85*67e74705SXin Li
test_mm512_mask_or_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)86*67e74705SXin Li __m512 test_mm512_mask_or_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
87*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_or_ps
88*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.ps.512
89*67e74705SXin Li return (__m512) _mm512_mask_or_ps(__W, __U, __A, __B);
90*67e74705SXin Li }
91*67e74705SXin Li
test_mm512_maskz_or_ps(__mmask16 __U,__m512 __A,__m512 __B)92*67e74705SXin Li __m512 test_mm512_maskz_or_ps (__mmask16 __U, __m512 __A, __m512 __B) {
93*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_or_ps
94*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.ps.512
95*67e74705SXin Li return (__m512) _mm512_maskz_or_ps(__U, __A, __B);
96*67e74705SXin Li }
97*67e74705SXin Li
test_mm512_and_pd(__m512d __A,__m512d __B)98*67e74705SXin Li __m512d test_mm512_and_pd (__m512d __A, __m512d __B) {
99*67e74705SXin Li // CHECK-LABEL: @test_mm512_and_pd
100*67e74705SXin Li // CHECK: and <8 x i64>
101*67e74705SXin Li return (__m512d) _mm512_and_pd(__A, __B);
102*67e74705SXin Li }
103*67e74705SXin Li
test_mm512_mask_and_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)104*67e74705SXin Li __m512d test_mm512_mask_and_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
105*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_and_pd
106*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.pd.512
107*67e74705SXin Li return (__m512d) _mm512_mask_and_pd(__W, __U, __A, __B);
108*67e74705SXin Li }
109*67e74705SXin Li
test_mm512_maskz_and_pd(__mmask8 __U,__m512d __A,__m512d __B)110*67e74705SXin Li __m512d test_mm512_maskz_and_pd (__mmask8 __U, __m512d __A, __m512d __B) {
111*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_and_pd
112*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.pd.512
113*67e74705SXin Li return (__m512d) _mm512_maskz_and_pd(__U, __A, __B);
114*67e74705SXin Li }
115*67e74705SXin Li
test_mm512_and_ps(__m512 __A,__m512 __B)116*67e74705SXin Li __m512 test_mm512_and_ps (__m512 __A, __m512 __B) {
117*67e74705SXin Li // CHECK-LABEL: @test_mm512_and_ps
118*67e74705SXin Li // CHECK: and <16 x i32>
119*67e74705SXin Li return (__m512) _mm512_and_ps(__A, __B);
120*67e74705SXin Li }
121*67e74705SXin Li
test_mm512_mask_and_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)122*67e74705SXin Li __m512 test_mm512_mask_and_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
123*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_and_ps
124*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.ps.512
125*67e74705SXin Li return (__m512) _mm512_mask_and_ps(__W, __U, __A, __B);
126*67e74705SXin Li }
127*67e74705SXin Li
test_mm512_maskz_and_ps(__mmask16 __U,__m512 __A,__m512 __B)128*67e74705SXin Li __m512 test_mm512_maskz_and_ps (__mmask16 __U, __m512 __A, __m512 __B) {
129*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_and_ps
130*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.ps.512
131*67e74705SXin Li return (__m512) _mm512_maskz_and_ps(__U, __A, __B);
132*67e74705SXin Li }
133*67e74705SXin Li
test_mm512_andnot_pd(__m512d __A,__m512d __B)134*67e74705SXin Li __m512d test_mm512_andnot_pd (__m512d __A, __m512d __B) {
135*67e74705SXin Li // CHECK-LABEL: @test_mm512_andnot_pd
136*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.pd.512
137*67e74705SXin Li return (__m512d) _mm512_andnot_pd(__A, __B);
138*67e74705SXin Li }
139*67e74705SXin Li
test_mm512_mask_andnot_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)140*67e74705SXin Li __m512d test_mm512_mask_andnot_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
141*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_andnot_pd
142*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.pd.512
143*67e74705SXin Li return (__m512d) _mm512_mask_andnot_pd(__W, __U, __A, __B);
144*67e74705SXin Li }
145*67e74705SXin Li
test_mm512_maskz_andnot_pd(__mmask8 __U,__m512d __A,__m512d __B)146*67e74705SXin Li __m512d test_mm512_maskz_andnot_pd (__mmask8 __U, __m512d __A, __m512d __B) {
147*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_andnot_pd
148*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.pd.512
149*67e74705SXin Li return (__m512d) _mm512_maskz_andnot_pd(__U, __A, __B);
150*67e74705SXin Li }
151*67e74705SXin Li
test_mm512_andnot_ps(__m512 __A,__m512 __B)152*67e74705SXin Li __m512 test_mm512_andnot_ps (__m512 __A, __m512 __B) {
153*67e74705SXin Li // CHECK-LABEL: @test_mm512_andnot_ps
154*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.ps.512
155*67e74705SXin Li return (__m512) _mm512_andnot_ps(__A, __B);
156*67e74705SXin Li }
157*67e74705SXin Li
test_mm512_mask_andnot_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)158*67e74705SXin Li __m512 test_mm512_mask_andnot_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
159*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_andnot_ps
160*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.ps.512
161*67e74705SXin Li return (__m512) _mm512_mask_andnot_ps(__W, __U, __A, __B);
162*67e74705SXin Li }
163*67e74705SXin Li
test_mm512_maskz_andnot_ps(__mmask16 __U,__m512 __A,__m512 __B)164*67e74705SXin Li __m512 test_mm512_maskz_andnot_ps (__mmask16 __U, __m512 __A, __m512 __B) {
165*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_andnot_ps
166*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.ps.512
167*67e74705SXin Li return (__m512) _mm512_maskz_andnot_ps(__U, __A, __B);
168*67e74705SXin Li }
169*67e74705SXin Li
test_mm512_cvtpd_epi64(__m512d __A)170*67e74705SXin Li __m512i test_mm512_cvtpd_epi64(__m512d __A) {
171*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtpd_epi64
172*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
173*67e74705SXin Li return _mm512_cvtpd_epi64(__A);
174*67e74705SXin Li }
175*67e74705SXin Li
test_mm512_mask_cvtpd_epi64(__m512i __W,__mmask8 __U,__m512d __A)176*67e74705SXin Li __m512i test_mm512_mask_cvtpd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
177*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtpd_epi64
178*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
179*67e74705SXin Li return _mm512_mask_cvtpd_epi64(__W, __U, __A);
180*67e74705SXin Li }
181*67e74705SXin Li
test_mm512_maskz_cvtpd_epi64(__mmask8 __U,__m512d __A)182*67e74705SXin Li __m512i test_mm512_maskz_cvtpd_epi64(__mmask8 __U, __m512d __A) {
183*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtpd_epi64
184*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
185*67e74705SXin Li return _mm512_maskz_cvtpd_epi64(__U, __A);
186*67e74705SXin Li }
187*67e74705SXin Li
test_mm512_cvt_roundpd_epi64(__m512d __A)188*67e74705SXin Li __m512i test_mm512_cvt_roundpd_epi64(__m512d __A) {
189*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvt_roundpd_epi64
190*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
191*67e74705SXin Li return _mm512_cvt_roundpd_epi64(__A, _MM_FROUND_TO_NEAREST_INT);
192*67e74705SXin Li }
193*67e74705SXin Li
test_mm512_mask_cvt_roundpd_epi64(__m512i __W,__mmask8 __U,__m512d __A)194*67e74705SXin Li __m512i test_mm512_mask_cvt_roundpd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
195*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epi64
196*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
197*67e74705SXin Li return _mm512_mask_cvt_roundpd_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
198*67e74705SXin Li }
199*67e74705SXin Li
test_mm512_maskz_cvt_roundpd_epi64(__mmask8 __U,__m512d __A)200*67e74705SXin Li __m512i test_mm512_maskz_cvt_roundpd_epi64(__mmask8 __U, __m512d __A) {
201*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epi64
202*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.512
203*67e74705SXin Li return _mm512_maskz_cvt_roundpd_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT);
204*67e74705SXin Li }
205*67e74705SXin Li
test_mm512_cvtpd_epu64(__m512d __A)206*67e74705SXin Li __m512i test_mm512_cvtpd_epu64(__m512d __A) {
207*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtpd_epu64
208*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
209*67e74705SXin Li return _mm512_cvtpd_epu64(__A);
210*67e74705SXin Li }
211*67e74705SXin Li
test_mm512_mask_cvtpd_epu64(__m512i __W,__mmask8 __U,__m512d __A)212*67e74705SXin Li __m512i test_mm512_mask_cvtpd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
213*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtpd_epu64
214*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
215*67e74705SXin Li return _mm512_mask_cvtpd_epu64(__W, __U, __A);
216*67e74705SXin Li }
217*67e74705SXin Li
test_mm512_maskz_cvtpd_epu64(__mmask8 __U,__m512d __A)218*67e74705SXin Li __m512i test_mm512_maskz_cvtpd_epu64(__mmask8 __U, __m512d __A) {
219*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtpd_epu64
220*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
221*67e74705SXin Li return _mm512_maskz_cvtpd_epu64(__U, __A);
222*67e74705SXin Li }
223*67e74705SXin Li
test_mm512_cvt_roundpd_epu64(__m512d __A)224*67e74705SXin Li __m512i test_mm512_cvt_roundpd_epu64(__m512d __A) {
225*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvt_roundpd_epu64
226*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
227*67e74705SXin Li return _mm512_cvt_roundpd_epu64(__A, _MM_FROUND_TO_NEAREST_INT);
228*67e74705SXin Li }
229*67e74705SXin Li
test_mm512_mask_cvt_roundpd_epu64(__m512i __W,__mmask8 __U,__m512d __A)230*67e74705SXin Li __m512i test_mm512_mask_cvt_roundpd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
231*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvt_roundpd_epu64
232*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
233*67e74705SXin Li return _mm512_mask_cvt_roundpd_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
234*67e74705SXin Li }
235*67e74705SXin Li
test_mm512_maskz_cvt_roundpd_epu64(__mmask8 __U,__m512d __A)236*67e74705SXin Li __m512i test_mm512_maskz_cvt_roundpd_epu64(__mmask8 __U, __m512d __A) {
237*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvt_roundpd_epu64
238*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.512
239*67e74705SXin Li return _mm512_maskz_cvt_roundpd_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT);
240*67e74705SXin Li }
241*67e74705SXin Li
test_mm512_cvtps_epi64(__m256 __A)242*67e74705SXin Li __m512i test_mm512_cvtps_epi64(__m256 __A) {
243*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtps_epi64
244*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
245*67e74705SXin Li return _mm512_cvtps_epi64(__A);
246*67e74705SXin Li }
247*67e74705SXin Li
test_mm512_mask_cvtps_epi64(__m512i __W,__mmask8 __U,__m256 __A)248*67e74705SXin Li __m512i test_mm512_mask_cvtps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
249*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtps_epi64
250*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
251*67e74705SXin Li return _mm512_mask_cvtps_epi64(__W, __U, __A);
252*67e74705SXin Li }
253*67e74705SXin Li
test_mm512_maskz_cvtps_epi64(__mmask8 __U,__m256 __A)254*67e74705SXin Li __m512i test_mm512_maskz_cvtps_epi64(__mmask8 __U, __m256 __A) {
255*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtps_epi64
256*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
257*67e74705SXin Li return _mm512_maskz_cvtps_epi64(__U, __A);
258*67e74705SXin Li }
259*67e74705SXin Li
test_mm512_cvt_roundps_epi64(__m256 __A)260*67e74705SXin Li __m512i test_mm512_cvt_roundps_epi64(__m256 __A) {
261*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvt_roundps_epi64
262*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
263*67e74705SXin Li return _mm512_cvt_roundps_epi64(__A, _MM_FROUND_TO_NEAREST_INT);
264*67e74705SXin Li }
265*67e74705SXin Li
test_mm512_mask_cvt_roundps_epi64(__m512i __W,__mmask8 __U,__m256 __A)266*67e74705SXin Li __m512i test_mm512_mask_cvt_roundps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
267*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epi64
268*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
269*67e74705SXin Li return _mm512_mask_cvt_roundps_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
270*67e74705SXin Li }
271*67e74705SXin Li
test_mm512_maskz_cvt_roundps_epi64(__mmask8 __U,__m256 __A)272*67e74705SXin Li __m512i test_mm512_maskz_cvt_roundps_epi64(__mmask8 __U, __m256 __A) {
273*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epi64
274*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.512
275*67e74705SXin Li return _mm512_maskz_cvt_roundps_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT);
276*67e74705SXin Li }
277*67e74705SXin Li
test_mm512_cvtps_epu64(__m256 __A)278*67e74705SXin Li __m512i test_mm512_cvtps_epu64(__m256 __A) {
279*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtps_epu64
280*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
281*67e74705SXin Li return _mm512_cvtps_epu64(__A);
282*67e74705SXin Li }
283*67e74705SXin Li
test_mm512_mask_cvtps_epu64(__m512i __W,__mmask8 __U,__m256 __A)284*67e74705SXin Li __m512i test_mm512_mask_cvtps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
285*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtps_epu64
286*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
287*67e74705SXin Li return _mm512_mask_cvtps_epu64(__W, __U, __A);
288*67e74705SXin Li }
289*67e74705SXin Li
test_mm512_maskz_cvtps_epu64(__mmask8 __U,__m256 __A)290*67e74705SXin Li __m512i test_mm512_maskz_cvtps_epu64(__mmask8 __U, __m256 __A) {
291*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtps_epu64
292*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
293*67e74705SXin Li return _mm512_maskz_cvtps_epu64(__U, __A);
294*67e74705SXin Li }
295*67e74705SXin Li
test_mm512_cvt_roundps_epu64(__m256 __A)296*67e74705SXin Li __m512i test_mm512_cvt_roundps_epu64(__m256 __A) {
297*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvt_roundps_epu64
298*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
299*67e74705SXin Li return _mm512_cvt_roundps_epu64(__A, _MM_FROUND_TO_NEAREST_INT);
300*67e74705SXin Li }
301*67e74705SXin Li
test_mm512_mask_cvt_roundps_epu64(__m512i __W,__mmask8 __U,__m256 __A)302*67e74705SXin Li __m512i test_mm512_mask_cvt_roundps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
303*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvt_roundps_epu64
304*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
305*67e74705SXin Li return _mm512_mask_cvt_roundps_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
306*67e74705SXin Li }
307*67e74705SXin Li
test_mm512_maskz_cvt_roundps_epu64(__mmask8 __U,__m256 __A)308*67e74705SXin Li __m512i test_mm512_maskz_cvt_roundps_epu64(__mmask8 __U, __m256 __A) {
309*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvt_roundps_epu64
310*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.512
311*67e74705SXin Li return _mm512_maskz_cvt_roundps_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT);
312*67e74705SXin Li }
313*67e74705SXin Li
test_mm512_cvtepi64_pd(__m512i __A)314*67e74705SXin Li __m512d test_mm512_cvtepi64_pd(__m512i __A) {
315*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtepi64_pd
316*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
317*67e74705SXin Li return _mm512_cvtepi64_pd(__A);
318*67e74705SXin Li }
319*67e74705SXin Li
test_mm512_mask_cvtepi64_pd(__m512d __W,__mmask8 __U,__m512i __A)320*67e74705SXin Li __m512d test_mm512_mask_cvtepi64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
321*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtepi64_pd
322*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
323*67e74705SXin Li return _mm512_mask_cvtepi64_pd(__W, __U, __A);
324*67e74705SXin Li }
325*67e74705SXin Li
test_mm512_maskz_cvtepi64_pd(__mmask8 __U,__m512i __A)326*67e74705SXin Li __m512d test_mm512_maskz_cvtepi64_pd(__mmask8 __U, __m512i __A) {
327*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtepi64_pd
328*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
329*67e74705SXin Li return _mm512_maskz_cvtepi64_pd(__U, __A);
330*67e74705SXin Li }
331*67e74705SXin Li
test_mm512_cvt_roundepi64_pd(__m512i __A)332*67e74705SXin Li __m512d test_mm512_cvt_roundepi64_pd(__m512i __A) {
333*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvt_roundepi64_pd
334*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
335*67e74705SXin Li return _mm512_cvt_roundepi64_pd(__A, _MM_FROUND_TO_NEAREST_INT);
336*67e74705SXin Li }
337*67e74705SXin Li
test_mm512_mask_cvt_roundepi64_pd(__m512d __W,__mmask8 __U,__m512i __A)338*67e74705SXin Li __m512d test_mm512_mask_cvt_roundepi64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
339*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvt_roundepi64_pd
340*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
341*67e74705SXin Li return _mm512_mask_cvt_roundepi64_pd(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
342*67e74705SXin Li }
343*67e74705SXin Li
test_mm512_maskz_cvt_roundepi64_pd(__mmask8 __U,__m512i __A)344*67e74705SXin Li __m512d test_mm512_maskz_cvt_roundepi64_pd(__mmask8 __U, __m512i __A) {
345*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvt_roundepi64_pd
346*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.512
347*67e74705SXin Li return _mm512_maskz_cvt_roundepi64_pd(__U, __A, _MM_FROUND_TO_NEAREST_INT);
348*67e74705SXin Li }
349*67e74705SXin Li
test_mm512_cvtepi64_ps(__m512i __A)350*67e74705SXin Li __m256 test_mm512_cvtepi64_ps(__m512i __A) {
351*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtepi64_ps
352*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
353*67e74705SXin Li return _mm512_cvtepi64_ps(__A);
354*67e74705SXin Li }
355*67e74705SXin Li
test_mm512_mask_cvtepi64_ps(__m256 __W,__mmask8 __U,__m512i __A)356*67e74705SXin Li __m256 test_mm512_mask_cvtepi64_ps(__m256 __W, __mmask8 __U, __m512i __A) {
357*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtepi64_ps
358*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
359*67e74705SXin Li return _mm512_mask_cvtepi64_ps(__W, __U, __A);
360*67e74705SXin Li }
361*67e74705SXin Li
test_mm512_maskz_cvtepi64_ps(__mmask8 __U,__m512i __A)362*67e74705SXin Li __m256 test_mm512_maskz_cvtepi64_ps(__mmask8 __U, __m512i __A) {
363*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtepi64_ps
364*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
365*67e74705SXin Li return _mm512_maskz_cvtepi64_ps(__U, __A);
366*67e74705SXin Li }
367*67e74705SXin Li
test_mm512_cvt_roundepi64_ps(__m512i __A)368*67e74705SXin Li __m256 test_mm512_cvt_roundepi64_ps(__m512i __A) {
369*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvt_roundepi64_ps
370*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
371*67e74705SXin Li return _mm512_cvt_roundepi64_ps(__A, _MM_FROUND_TO_NEAREST_INT);
372*67e74705SXin Li }
373*67e74705SXin Li
test_mm512_mask_cvt_roundepi64_ps(__m256 __W,__mmask8 __U,__m512i __A)374*67e74705SXin Li __m256 test_mm512_mask_cvt_roundepi64_ps(__m256 __W, __mmask8 __U, __m512i __A) {
375*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvt_roundepi64_ps
376*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
377*67e74705SXin Li return _mm512_mask_cvt_roundepi64_ps(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
378*67e74705SXin Li }
379*67e74705SXin Li
test_mm512_maskz_cvt_roundepi64_ps(__mmask8 __U,__m512i __A)380*67e74705SXin Li __m256 test_mm512_maskz_cvt_roundepi64_ps(__mmask8 __U, __m512i __A) {
381*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvt_roundepi64_ps
382*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.512
383*67e74705SXin Li return _mm512_maskz_cvt_roundepi64_ps(__U, __A, _MM_FROUND_TO_NEAREST_INT);
384*67e74705SXin Li }
385*67e74705SXin Li
test_mm512_cvttpd_epi64(__m512d __A)386*67e74705SXin Li __m512i test_mm512_cvttpd_epi64(__m512d __A) {
387*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvttpd_epi64
388*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
389*67e74705SXin Li return _mm512_cvttpd_epi64(__A);
390*67e74705SXin Li }
391*67e74705SXin Li
test_mm512_mask_cvttpd_epi64(__m512i __W,__mmask8 __U,__m512d __A)392*67e74705SXin Li __m512i test_mm512_mask_cvttpd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
393*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvttpd_epi64
394*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
395*67e74705SXin Li return _mm512_mask_cvttpd_epi64(__W, __U, __A);
396*67e74705SXin Li }
397*67e74705SXin Li
test_mm512_maskz_cvttpd_epi64(__mmask8 __U,__m512d __A)398*67e74705SXin Li __m512i test_mm512_maskz_cvttpd_epi64(__mmask8 __U, __m512d __A) {
399*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvttpd_epi64
400*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
401*67e74705SXin Li return _mm512_maskz_cvttpd_epi64(__U, __A);
402*67e74705SXin Li }
403*67e74705SXin Li
test_mm512_cvtt_roundpd_epi64(__m512d __A)404*67e74705SXin Li __m512i test_mm512_cvtt_roundpd_epi64(__m512d __A) {
405*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtt_roundpd_epi64
406*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
407*67e74705SXin Li return _mm512_cvtt_roundpd_epi64(__A, _MM_FROUND_TO_NEAREST_INT);
408*67e74705SXin Li }
409*67e74705SXin Li
test_mm512_mask_cvtt_roundpd_epi64(__m512i __W,__mmask8 __U,__m512d __A)410*67e74705SXin Li __m512i test_mm512_mask_cvtt_roundpd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
411*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epi64
412*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
413*67e74705SXin Li return _mm512_mask_cvtt_roundpd_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
414*67e74705SXin Li }
415*67e74705SXin Li
test_mm512_maskz_cvtt_roundpd_epi64(__mmask8 __U,__m512d __A)416*67e74705SXin Li __m512i test_mm512_maskz_cvtt_roundpd_epi64(__mmask8 __U, __m512d __A) {
417*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epi64
418*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.512
419*67e74705SXin Li return _mm512_maskz_cvtt_roundpd_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT);
420*67e74705SXin Li }
421*67e74705SXin Li
test_mm512_cvttpd_epu64(__m512d __A)422*67e74705SXin Li __m512i test_mm512_cvttpd_epu64(__m512d __A) {
423*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvttpd_epu64
424*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
425*67e74705SXin Li return _mm512_cvttpd_epu64(__A);
426*67e74705SXin Li }
427*67e74705SXin Li
test_mm512_mask_cvttpd_epu64(__m512i __W,__mmask8 __U,__m512d __A)428*67e74705SXin Li __m512i test_mm512_mask_cvttpd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
429*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvttpd_epu64
430*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
431*67e74705SXin Li return _mm512_mask_cvttpd_epu64(__W, __U, __A);
432*67e74705SXin Li }
433*67e74705SXin Li
test_mm512_maskz_cvttpd_epu64(__mmask8 __U,__m512d __A)434*67e74705SXin Li __m512i test_mm512_maskz_cvttpd_epu64(__mmask8 __U, __m512d __A) {
435*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvttpd_epu64
436*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
437*67e74705SXin Li return _mm512_maskz_cvttpd_epu64(__U, __A);
438*67e74705SXin Li }
439*67e74705SXin Li
test_mm512_cvtt_roundpd_epu64(__m512d __A)440*67e74705SXin Li __m512i test_mm512_cvtt_roundpd_epu64(__m512d __A) {
441*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtt_roundpd_epu64
442*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
443*67e74705SXin Li return _mm512_cvtt_roundpd_epu64(__A, _MM_FROUND_TO_NEAREST_INT);
444*67e74705SXin Li }
445*67e74705SXin Li
test_mm512_mask_cvtt_roundpd_epu64(__m512i __W,__mmask8 __U,__m512d __A)446*67e74705SXin Li __m512i test_mm512_mask_cvtt_roundpd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
447*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtt_roundpd_epu64
448*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
449*67e74705SXin Li return _mm512_mask_cvtt_roundpd_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
450*67e74705SXin Li }
451*67e74705SXin Li
test_mm512_maskz_cvtt_roundpd_epu64(__mmask8 __U,__m512d __A)452*67e74705SXin Li __m512i test_mm512_maskz_cvtt_roundpd_epu64(__mmask8 __U, __m512d __A) {
453*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtt_roundpd_epu64
454*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.512
455*67e74705SXin Li return _mm512_maskz_cvtt_roundpd_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT);
456*67e74705SXin Li }
457*67e74705SXin Li
test_mm512_cvttps_epi64(__m256 __A)458*67e74705SXin Li __m512i test_mm512_cvttps_epi64(__m256 __A) {
459*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvttps_epi64
460*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
461*67e74705SXin Li return _mm512_cvttps_epi64(__A);
462*67e74705SXin Li }
463*67e74705SXin Li
test_mm512_mask_cvttps_epi64(__m512i __W,__mmask8 __U,__m256 __A)464*67e74705SXin Li __m512i test_mm512_mask_cvttps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
465*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvttps_epi64
466*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
467*67e74705SXin Li return _mm512_mask_cvttps_epi64(__W, __U, __A);
468*67e74705SXin Li }
469*67e74705SXin Li
test_mm512_maskz_cvttps_epi64(__mmask8 __U,__m256 __A)470*67e74705SXin Li __m512i test_mm512_maskz_cvttps_epi64(__mmask8 __U, __m256 __A) {
471*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvttps_epi64
472*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
473*67e74705SXin Li return _mm512_maskz_cvttps_epi64(__U, __A);
474*67e74705SXin Li }
475*67e74705SXin Li
test_mm512_cvtt_roundps_epi64(__m256 __A)476*67e74705SXin Li __m512i test_mm512_cvtt_roundps_epi64(__m256 __A) {
477*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtt_roundps_epi64
478*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
479*67e74705SXin Li return _mm512_cvtt_roundps_epi64(__A, _MM_FROUND_TO_NEAREST_INT);
480*67e74705SXin Li }
481*67e74705SXin Li
test_mm512_mask_cvtt_roundps_epi64(__m512i __W,__mmask8 __U,__m256 __A)482*67e74705SXin Li __m512i test_mm512_mask_cvtt_roundps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
483*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epi64
484*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
485*67e74705SXin Li return _mm512_mask_cvtt_roundps_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
486*67e74705SXin Li }
487*67e74705SXin Li
test_mm512_maskz_cvtt_roundps_epi64(__mmask8 __U,__m256 __A)488*67e74705SXin Li __m512i test_mm512_maskz_cvtt_roundps_epi64(__mmask8 __U, __m256 __A) {
489*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epi64
490*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.512
491*67e74705SXin Li return _mm512_maskz_cvtt_roundps_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT);
492*67e74705SXin Li }
493*67e74705SXin Li
test_mm512_cvttps_epu64(__m256 __A)494*67e74705SXin Li __m512i test_mm512_cvttps_epu64(__m256 __A) {
495*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvttps_epu64
496*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
497*67e74705SXin Li return _mm512_cvttps_epu64(__A);
498*67e74705SXin Li }
499*67e74705SXin Li
test_mm512_mask_cvttps_epu64(__m512i __W,__mmask8 __U,__m256 __A)500*67e74705SXin Li __m512i test_mm512_mask_cvttps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
501*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvttps_epu64
502*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
503*67e74705SXin Li return _mm512_mask_cvttps_epu64(__W, __U, __A);
504*67e74705SXin Li }
505*67e74705SXin Li
test_mm512_maskz_cvttps_epu64(__mmask8 __U,__m256 __A)506*67e74705SXin Li __m512i test_mm512_maskz_cvttps_epu64(__mmask8 __U, __m256 __A) {
507*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvttps_epu64
508*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
509*67e74705SXin Li return _mm512_maskz_cvttps_epu64(__U, __A);
510*67e74705SXin Li }
511*67e74705SXin Li
test_mm512_cvtt_roundps_epu64(__m256 __A)512*67e74705SXin Li __m512i test_mm512_cvtt_roundps_epu64(__m256 __A) {
513*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtt_roundps_epu64
514*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
515*67e74705SXin Li return _mm512_cvtt_roundps_epu64(__A, _MM_FROUND_TO_NEAREST_INT);
516*67e74705SXin Li }
517*67e74705SXin Li
test_mm512_mask_cvtt_roundps_epu64(__m512i __W,__mmask8 __U,__m256 __A)518*67e74705SXin Li __m512i test_mm512_mask_cvtt_roundps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
519*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtt_roundps_epu64
520*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
521*67e74705SXin Li return _mm512_mask_cvtt_roundps_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
522*67e74705SXin Li }
523*67e74705SXin Li
test_mm512_maskz_cvtt_roundps_epu64(__mmask8 __U,__m256 __A)524*67e74705SXin Li __m512i test_mm512_maskz_cvtt_roundps_epu64(__mmask8 __U, __m256 __A) {
525*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtt_roundps_epu64
526*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.512
527*67e74705SXin Li return _mm512_maskz_cvtt_roundps_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT);
528*67e74705SXin Li }
529*67e74705SXin Li
test_mm512_cvtepu64_pd(__m512i __A)530*67e74705SXin Li __m512d test_mm512_cvtepu64_pd(__m512i __A) {
531*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtepu64_pd
532*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
533*67e74705SXin Li return _mm512_cvtepu64_pd(__A);
534*67e74705SXin Li }
535*67e74705SXin Li
test_mm512_mask_cvtepu64_pd(__m512d __W,__mmask8 __U,__m512i __A)536*67e74705SXin Li __m512d test_mm512_mask_cvtepu64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
537*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtepu64_pd
538*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
539*67e74705SXin Li return _mm512_mask_cvtepu64_pd(__W, __U, __A);
540*67e74705SXin Li }
541*67e74705SXin Li
test_mm512_maskz_cvtepu64_pd(__mmask8 __U,__m512i __A)542*67e74705SXin Li __m512d test_mm512_maskz_cvtepu64_pd(__mmask8 __U, __m512i __A) {
543*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtepu64_pd
544*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
545*67e74705SXin Li return _mm512_maskz_cvtepu64_pd(__U, __A);
546*67e74705SXin Li }
547*67e74705SXin Li
test_mm512_cvt_roundepu64_pd(__m512i __A)548*67e74705SXin Li __m512d test_mm512_cvt_roundepu64_pd(__m512i __A) {
549*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvt_roundepu64_pd
550*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
551*67e74705SXin Li return _mm512_cvt_roundepu64_pd(__A, _MM_FROUND_TO_NEAREST_INT);
552*67e74705SXin Li }
553*67e74705SXin Li
test_mm512_mask_cvt_roundepu64_pd(__m512d __W,__mmask8 __U,__m512i __A)554*67e74705SXin Li __m512d test_mm512_mask_cvt_roundepu64_pd(__m512d __W, __mmask8 __U, __m512i __A) {
555*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvt_roundepu64_pd
556*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
557*67e74705SXin Li return _mm512_mask_cvt_roundepu64_pd(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
558*67e74705SXin Li }
559*67e74705SXin Li
test_mm512_maskz_cvt_roundepu64_pd(__mmask8 __U,__m512i __A)560*67e74705SXin Li __m512d test_mm512_maskz_cvt_roundepu64_pd(__mmask8 __U, __m512i __A) {
561*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvt_roundepu64_pd
562*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.512
563*67e74705SXin Li return _mm512_maskz_cvt_roundepu64_pd(__U, __A, _MM_FROUND_TO_NEAREST_INT);
564*67e74705SXin Li }
565*67e74705SXin Li
test_mm512_cvtepu64_ps(__m512i __A)566*67e74705SXin Li __m256 test_mm512_cvtepu64_ps(__m512i __A) {
567*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvtepu64_ps
568*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
569*67e74705SXin Li return _mm512_cvtepu64_ps(__A);
570*67e74705SXin Li }
571*67e74705SXin Li
test_mm512_mask_cvtepu64_ps(__m256 __W,__mmask8 __U,__m512i __A)572*67e74705SXin Li __m256 test_mm512_mask_cvtepu64_ps(__m256 __W, __mmask8 __U, __m512i __A) {
573*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvtepu64_ps
574*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
575*67e74705SXin Li return _mm512_mask_cvtepu64_ps(__W, __U, __A);
576*67e74705SXin Li }
577*67e74705SXin Li
test_mm512_maskz_cvtepu64_ps(__mmask8 __U,__m512i __A)578*67e74705SXin Li __m256 test_mm512_maskz_cvtepu64_ps(__mmask8 __U, __m512i __A) {
579*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvtepu64_ps
580*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
581*67e74705SXin Li return _mm512_maskz_cvtepu64_ps(__U, __A);
582*67e74705SXin Li }
583*67e74705SXin Li
test_mm512_cvt_roundepu64_ps(__m512i __A)584*67e74705SXin Li __m256 test_mm512_cvt_roundepu64_ps(__m512i __A) {
585*67e74705SXin Li // CHECK-LABEL: @test_mm512_cvt_roundepu64_ps
586*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
587*67e74705SXin Li return _mm512_cvt_roundepu64_ps(__A, _MM_FROUND_TO_NEAREST_INT);
588*67e74705SXin Li }
589*67e74705SXin Li
test_mm512_mask_cvt_roundepu64_ps(__m256 __W,__mmask8 __U,__m512i __A)590*67e74705SXin Li __m256 test_mm512_mask_cvt_roundepu64_ps(__m256 __W, __mmask8 __U, __m512i __A) {
591*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_cvt_roundepu64_ps
592*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
593*67e74705SXin Li return _mm512_mask_cvt_roundepu64_ps(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT);
594*67e74705SXin Li }
595*67e74705SXin Li
test_mm512_maskz_cvt_roundepu64_ps(__mmask8 __U,__m512i __A)596*67e74705SXin Li __m256 test_mm512_maskz_cvt_roundepu64_ps(__mmask8 __U, __m512i __A) {
597*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_cvt_roundepu64_ps
598*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.512
599*67e74705SXin Li return _mm512_maskz_cvt_roundepu64_ps(__U, __A, _MM_FROUND_TO_NEAREST_INT);
600*67e74705SXin Li }
601*67e74705SXin Li
test_mm512_range_pd(__m512d __A,__m512d __B)602*67e74705SXin Li __m512d test_mm512_range_pd(__m512d __A, __m512d __B) {
603*67e74705SXin Li // CHECK-LABEL: @test_mm512_range_pd
604*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.512
605*67e74705SXin Li return _mm512_range_pd(__A, __B, 4);
606*67e74705SXin Li }
607*67e74705SXin Li
test_mm512_mask_range_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)608*67e74705SXin Li __m512d test_mm512_mask_range_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
609*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_range_pd
610*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.512
611*67e74705SXin Li return _mm512_mask_range_pd(__W, __U, __A, __B, 4);
612*67e74705SXin Li }
613*67e74705SXin Li
test_mm512_maskz_range_pd(__mmask8 __U,__m512d __A,__m512d __B)614*67e74705SXin Li __m512d test_mm512_maskz_range_pd(__mmask8 __U, __m512d __A, __m512d __B) {
615*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_range_pd
616*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.512
617*67e74705SXin Li return _mm512_maskz_range_pd(__U, __A, __B, 4);
618*67e74705SXin Li }
619*67e74705SXin Li
test_mm512_range_round_pd(__m512d __A,__m512d __B)620*67e74705SXin Li __m512d test_mm512_range_round_pd(__m512d __A, __m512d __B) {
621*67e74705SXin Li // CHECK-LABEL: @test_mm512_range_round_pd
622*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.512
623*67e74705SXin Li return _mm512_range_round_pd(__A, __B, 4, 8);
624*67e74705SXin Li }
625*67e74705SXin Li
test_mm512_mask_range_round_pd(__m512d __W,__mmask8 __U,__m512d __A,__m512d __B)626*67e74705SXin Li __m512d test_mm512_mask_range_round_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
627*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_range_round_pd
628*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.512
629*67e74705SXin Li return _mm512_mask_range_round_pd(__W, __U, __A, __B, 4, 8);
630*67e74705SXin Li }
631*67e74705SXin Li
test_mm512_maskz_range_round_pd(__mmask8 __U,__m512d __A,__m512d __B)632*67e74705SXin Li __m512d test_mm512_maskz_range_round_pd(__mmask8 __U, __m512d __A, __m512d __B) {
633*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_range_round_pd
634*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.512
635*67e74705SXin Li return _mm512_maskz_range_round_pd(__U, __A, __B, 4, 8);
636*67e74705SXin Li }
637*67e74705SXin Li
test_mm512_range_round_sd(__m128d __A,__m128d __B)638*67e74705SXin Li __m128d test_mm512_range_round_sd(__m128d __A, __m128d __B) {
639*67e74705SXin Li // CHECK-LABEL: @test_mm512_range_round_sd
640*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.sd
641*67e74705SXin Li return _mm_range_round_sd(__A, __B, 4, 8);
642*67e74705SXin Li }
643*67e74705SXin Li
test_mm512_mask_range_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)644*67e74705SXin Li __m128d test_mm512_mask_range_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
645*67e74705SXin Li // CHECK-LABEL: test_mm512_mask_range_round_sd
646*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.sd
647*67e74705SXin Li return _mm_mask_range_round_sd(__W, __U, __A, __B, 4, 8);
648*67e74705SXin Li }
649*67e74705SXin Li
test_mm512_maskz_range_round_sd(__mmask8 __U,__m128d __A,__m128d __B)650*67e74705SXin Li __m128d test_mm512_maskz_range_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
651*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_range_round_sd
652*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.sd
653*67e74705SXin Li return _mm_maskz_range_round_sd(__U, __A, __B, 4, 8);
654*67e74705SXin Li }
655*67e74705SXin Li
test_mm512_range_round_ss(__m128d __A,__m128d __B)656*67e74705SXin Li __m128d test_mm512_range_round_ss(__m128d __A, __m128d __B) {
657*67e74705SXin Li // CHECK-LABEL: @test_mm512_range_round_ss
658*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ss
659*67e74705SXin Li return _mm_range_round_ss(__A, __B, 4, 8);
660*67e74705SXin Li }
661*67e74705SXin Li
test_mm512_mask_range_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)662*67e74705SXin Li __m128d test_mm512_mask_range_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
663*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_range_round_ss
664*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ss
665*67e74705SXin Li return _mm_mask_range_round_ss(__W, __U, __A, __B, 4, 8);
666*67e74705SXin Li }
667*67e74705SXin Li
test_mm512_maskz_range_round_ss(__mmask8 __U,__m128 __A,__m128 __B)668*67e74705SXin Li __m128 test_mm512_maskz_range_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
669*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_range_round_ss
670*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ss
671*67e74705SXin Li return _mm_maskz_range_round_ss(__U, __A, __B, 4, 8);
672*67e74705SXin Li }
673*67e74705SXin Li
test_mm_range_sd(__m128d __A,__m128d __B)674*67e74705SXin Li __m128d test_mm_range_sd(__m128d __A, __m128d __B) {
675*67e74705SXin Li // CHECK-LABEL: @test_mm_range_sd
676*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.sd
677*67e74705SXin Li return _mm_range_sd(__A, __B, 4);
678*67e74705SXin Li }
679*67e74705SXin Li
test_mm_mask_range_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)680*67e74705SXin Li __m128d test_mm_mask_range_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
681*67e74705SXin Li // CHECK-LABEL: test_mm_mask_range_sd
682*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.sd
683*67e74705SXin Li return _mm_mask_range_sd(__W, __U, __A, __B, 4);
684*67e74705SXin Li }
685*67e74705SXin Li
test_mm_maskz_range_sd(__mmask8 __U,__m128d __A,__m128d __B)686*67e74705SXin Li __m128d test_mm_maskz_range_sd(__mmask8 __U, __m128d __A, __m128d __B) {
687*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_range_sd
688*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.sd
689*67e74705SXin Li return _mm_maskz_range_sd(__U, __A, __B, 4);
690*67e74705SXin Li }
691*67e74705SXin Li
test_mm_range_ss(__m128d __A,__m128d __B)692*67e74705SXin Li __m128d test_mm_range_ss(__m128d __A, __m128d __B) {
693*67e74705SXin Li // CHECK-LABEL: @test_mm_range_ss
694*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ss
695*67e74705SXin Li return _mm_range_ss(__A, __B, 4);
696*67e74705SXin Li }
697*67e74705SXin Li
test_mm_mask_range_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)698*67e74705SXin Li __m128d test_mm_mask_range_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
699*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_range_ss
700*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ss
701*67e74705SXin Li return _mm_mask_range_ss(__W, __U, __A, __B, 4);
702*67e74705SXin Li }
703*67e74705SXin Li
test_mm_maskz_range_ss(__mmask8 __U,__m128 __A,__m128 __B)704*67e74705SXin Li __m128 test_mm_maskz_range_ss(__mmask8 __U, __m128 __A, __m128 __B) {
705*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_range_ss
706*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ss
707*67e74705SXin Li return _mm_maskz_range_ss(__U, __A, __B, 4);
708*67e74705SXin Li }
709*67e74705SXin Li
test_mm512_range_ps(__m512 __A,__m512 __B)710*67e74705SXin Li __m512 test_mm512_range_ps(__m512 __A, __m512 __B) {
711*67e74705SXin Li // CHECK-LABEL: @test_mm512_range_ps
712*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.512
713*67e74705SXin Li return _mm512_range_ps(__A, __B, 4);
714*67e74705SXin Li }
715*67e74705SXin Li
test_mm512_mask_range_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)716*67e74705SXin Li __m512 test_mm512_mask_range_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
717*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_range_ps
718*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.512
719*67e74705SXin Li return _mm512_mask_range_ps(__W, __U, __A, __B, 4);
720*67e74705SXin Li }
721*67e74705SXin Li
test_mm512_maskz_range_ps(__mmask16 __U,__m512 __A,__m512 __B)722*67e74705SXin Li __m512 test_mm512_maskz_range_ps(__mmask16 __U, __m512 __A, __m512 __B) {
723*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_range_ps
724*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.512
725*67e74705SXin Li return _mm512_maskz_range_ps(__U, __A, __B, 4);
726*67e74705SXin Li }
727*67e74705SXin Li
test_mm512_range_round_ps(__m512 __A,__m512 __B)728*67e74705SXin Li __m512 test_mm512_range_round_ps(__m512 __A, __m512 __B) {
729*67e74705SXin Li // CHECK-LABEL: @test_mm512_range_round_ps
730*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.512
731*67e74705SXin Li return _mm512_range_round_ps(__A, __B, 4, 8);
732*67e74705SXin Li }
733*67e74705SXin Li
test_mm512_mask_range_round_ps(__m512 __W,__mmask16 __U,__m512 __A,__m512 __B)734*67e74705SXin Li __m512 test_mm512_mask_range_round_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
735*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_range_round_ps
736*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.512
737*67e74705SXin Li return _mm512_mask_range_round_ps(__W, __U, __A, __B, 4, 8);
738*67e74705SXin Li }
739*67e74705SXin Li
test_mm512_maskz_range_round_ps(__mmask16 __U,__m512 __A,__m512 __B)740*67e74705SXin Li __m512 test_mm512_maskz_range_round_ps(__mmask16 __U, __m512 __A, __m512 __B) {
741*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_range_round_ps
742*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.512
743*67e74705SXin Li return _mm512_maskz_range_round_ps(__U, __A, __B, 4, 8);
744*67e74705SXin Li }
745*67e74705SXin Li
test_mm512_reduce_pd(__m512d __A)746*67e74705SXin Li __m512d test_mm512_reduce_pd(__m512d __A) {
747*67e74705SXin Li // CHECK-LABEL: @test_mm512_reduce_pd
748*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
749*67e74705SXin Li return _mm512_reduce_pd(__A, 4);
750*67e74705SXin Li }
751*67e74705SXin Li
test_mm512_mask_reduce_pd(__m512d __W,__mmask8 __U,__m512d __A)752*67e74705SXin Li __m512d test_mm512_mask_reduce_pd(__m512d __W, __mmask8 __U, __m512d __A) {
753*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_reduce_pd
754*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
755*67e74705SXin Li return _mm512_mask_reduce_pd(__W, __U, __A, 4);
756*67e74705SXin Li }
757*67e74705SXin Li
test_mm512_maskz_reduce_pd(__mmask8 __U,__m512d __A)758*67e74705SXin Li __m512d test_mm512_maskz_reduce_pd(__mmask8 __U, __m512d __A) {
759*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_reduce_pd
760*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
761*67e74705SXin Li return _mm512_maskz_reduce_pd(__U, __A, 4);
762*67e74705SXin Li }
763*67e74705SXin Li
test_mm512_reduce_ps(__m512 __A)764*67e74705SXin Li __m512 test_mm512_reduce_ps(__m512 __A) {
765*67e74705SXin Li // CHECK-LABEL: @test_mm512_reduce_ps
766*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
767*67e74705SXin Li return _mm512_reduce_ps(__A, 4);
768*67e74705SXin Li }
769*67e74705SXin Li
test_mm512_mask_reduce_ps(__m512 __W,__mmask16 __U,__m512 __A)770*67e74705SXin Li __m512 test_mm512_mask_reduce_ps(__m512 __W, __mmask16 __U, __m512 __A) {
771*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_reduce_ps
772*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
773*67e74705SXin Li return _mm512_mask_reduce_ps(__W, __U, __A, 4);
774*67e74705SXin Li }
775*67e74705SXin Li
test_mm512_maskz_reduce_ps(__mmask16 __U,__m512 __A)776*67e74705SXin Li __m512 test_mm512_maskz_reduce_ps(__mmask16 __U, __m512 __A) {
777*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_reduce_ps
778*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
779*67e74705SXin Li return _mm512_maskz_reduce_ps(__U, __A, 4);
780*67e74705SXin Li }
781*67e74705SXin Li
test_mm512_reduce_round_pd(__m512d __A)782*67e74705SXin Li __m512d test_mm512_reduce_round_pd(__m512d __A) {
783*67e74705SXin Li // CHECK-LABEL: @test_mm512_reduce_round_pd
784*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
785*67e74705SXin Li return _mm512_reduce_round_pd(__A, 4, 8);
786*67e74705SXin Li }
787*67e74705SXin Li
test_mm512_mask_reduce_round_pd(__m512d __W,__mmask8 __U,__m512d __A)788*67e74705SXin Li __m512d test_mm512_mask_reduce_round_pd(__m512d __W, __mmask8 __U, __m512d __A) {
789*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_reduce_round_pd
790*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
791*67e74705SXin Li return _mm512_mask_reduce_round_pd(__W, __U, __A, 4, 8);
792*67e74705SXin Li }
793*67e74705SXin Li
test_mm512_maskz_reduce_round_pd(__mmask8 __U,__m512d __A)794*67e74705SXin Li __m512d test_mm512_maskz_reduce_round_pd(__mmask8 __U, __m512d __A) {
795*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_reduce_round_pd
796*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.512
797*67e74705SXin Li return _mm512_maskz_reduce_round_pd(__U, __A, 4, 8);
798*67e74705SXin Li }
799*67e74705SXin Li
test_mm512_reduce_round_ps(__m512 __A)800*67e74705SXin Li __m512 test_mm512_reduce_round_ps(__m512 __A) {
801*67e74705SXin Li // CHECK-LABEL: @test_mm512_reduce_round_ps
802*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
803*67e74705SXin Li return _mm512_reduce_round_ps(__A, 4, 8);
804*67e74705SXin Li }
805*67e74705SXin Li
test_mm512_mask_reduce_round_ps(__m512 __W,__mmask16 __U,__m512 __A)806*67e74705SXin Li __m512 test_mm512_mask_reduce_round_ps(__m512 __W, __mmask16 __U, __m512 __A) {
807*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_reduce_round_ps
808*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
809*67e74705SXin Li return _mm512_mask_reduce_round_ps(__W, __U, __A, 4, 8);
810*67e74705SXin Li }
811*67e74705SXin Li
test_mm512_maskz_reduce_round_ps(__mmask16 __U,__m512 __A)812*67e74705SXin Li __m512 test_mm512_maskz_reduce_round_ps(__mmask16 __U, __m512 __A) {
813*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_reduce_round_ps
814*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.512
815*67e74705SXin Li return _mm512_maskz_reduce_round_ps(__U, __A, 4, 8);
816*67e74705SXin Li }
817*67e74705SXin Li
test_mm_reduce_ss(__m128 __A,__m128 __B)818*67e74705SXin Li __m128 test_mm_reduce_ss(__m128 __A, __m128 __B) {
819*67e74705SXin Li // CHECK-LABEL: @test_mm_reduce_ss
820*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ss
821*67e74705SXin Li return _mm_reduce_ss(__A, __B, 4);
822*67e74705SXin Li }
823*67e74705SXin Li
test_mm_mask_reduce_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)824*67e74705SXin Li __m128 test_mm_mask_reduce_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
825*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_reduce_ss
826*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ss
827*67e74705SXin Li return _mm_mask_reduce_ss(__W, __U, __A, __B, 4);
828*67e74705SXin Li }
829*67e74705SXin Li
test_mm_maskz_reduce_ss(__mmask8 __U,__m128 __A,__m128 __B)830*67e74705SXin Li __m128 test_mm_maskz_reduce_ss(__mmask8 __U, __m128 __A, __m128 __B) {
831*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_reduce_ss
832*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ss
833*67e74705SXin Li return _mm_maskz_reduce_ss(__U, __A, __B, 4);
834*67e74705SXin Li }
835*67e74705SXin Li
test_mm_reduce_round_ss(__m128 __A,__m128 __B)836*67e74705SXin Li __m128 test_mm_reduce_round_ss(__m128 __A, __m128 __B) {
837*67e74705SXin Li // CHECK-LABEL: @test_mm_reduce_round_ss
838*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ss
839*67e74705SXin Li return _mm_reduce_round_ss(__A, __B, 4, 8);
840*67e74705SXin Li }
841*67e74705SXin Li
test_mm_mask_reduce_round_ss(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)842*67e74705SXin Li __m128 test_mm_mask_reduce_round_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
843*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_reduce_round_ss
844*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ss
845*67e74705SXin Li return _mm_mask_reduce_round_ss(__W, __U, __A, __B, 4, 8);
846*67e74705SXin Li }
847*67e74705SXin Li
test_mm_maskz_reduce_round_ss(__mmask8 __U,__m128 __A,__m128 __B)848*67e74705SXin Li __m128 test_mm_maskz_reduce_round_ss(__mmask8 __U, __m128 __A, __m128 __B) {
849*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_reduce_round_ss
850*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ss
851*67e74705SXin Li return _mm_maskz_reduce_round_ss(__U, __A, __B, 4, 8);
852*67e74705SXin Li }
853*67e74705SXin Li
test_mm_reduce_sd(__m128d __A,__m128d __B)854*67e74705SXin Li __m128d test_mm_reduce_sd(__m128d __A, __m128d __B) {
855*67e74705SXin Li // CHECK-LABEL: @test_mm_reduce_sd
856*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.sd
857*67e74705SXin Li return _mm_reduce_sd(__A, __B, 4);
858*67e74705SXin Li }
859*67e74705SXin Li
test_mm_mask_reduce_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)860*67e74705SXin Li __m128d test_mm_mask_reduce_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
861*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_reduce_sd
862*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.sd
863*67e74705SXin Li return _mm_mask_reduce_sd(__W, __U, __A, __B, 4);
864*67e74705SXin Li }
865*67e74705SXin Li
test_mm_maskz_reduce_sd(__mmask8 __U,__m128d __A,__m128d __B)866*67e74705SXin Li __m128d test_mm_maskz_reduce_sd(__mmask8 __U, __m128d __A, __m128d __B) {
867*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_reduce_sd
868*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.sd
869*67e74705SXin Li return _mm_maskz_reduce_sd(__U, __A, __B, 4);
870*67e74705SXin Li }
871*67e74705SXin Li
test_mm_reduce_round_sd(__m128d __A,__m128d __B)872*67e74705SXin Li __m128d test_mm_reduce_round_sd(__m128d __A, __m128d __B) {
873*67e74705SXin Li // CHECK-LABEL: @test_mm_reduce_round_sd
874*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.sd
875*67e74705SXin Li return _mm_reduce_round_sd(__A, __B, 4, 8);
876*67e74705SXin Li }
877*67e74705SXin Li
test_mm_mask_reduce_round_sd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)878*67e74705SXin Li __m128d test_mm_mask_reduce_round_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
879*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_reduce_round_sd
880*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.sd
881*67e74705SXin Li return _mm_mask_reduce_round_sd(__W, __U, __A, __B, 4, 8);
882*67e74705SXin Li }
883*67e74705SXin Li
test_mm_maskz_reduce_round_sd(__mmask8 __U,__m128d __A,__m128d __B)884*67e74705SXin Li __m128d test_mm_maskz_reduce_round_sd(__mmask8 __U, __m128d __A, __m128d __B) {
885*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_reduce_round_sd
886*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.sd
887*67e74705SXin Li return _mm_maskz_reduce_round_sd(__U, __A, __B, 4, 8);
888*67e74705SXin Li }
889*67e74705SXin Li
test_mm512_movepi32_mask(__m512i __A)890*67e74705SXin Li __mmask16 test_mm512_movepi32_mask(__m512i __A) {
891*67e74705SXin Li // CHECK-LABEL: @test_mm512_movepi32_mask
892*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtd2mask.512
893*67e74705SXin Li return _mm512_movepi32_mask(__A);
894*67e74705SXin Li }
895*67e74705SXin Li
test_mm512_movm_epi32(__mmask16 __A)896*67e74705SXin Li __m512i test_mm512_movm_epi32(__mmask16 __A) {
897*67e74705SXin Li // CHECK-LABEL: @test_mm512_movm_epi32
898*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtmask2d.512
899*67e74705SXin Li return _mm512_movm_epi32(__A);
900*67e74705SXin Li }
901*67e74705SXin Li
test_mm512_movm_epi64(__mmask8 __A)902*67e74705SXin Li __m512i test_mm512_movm_epi64(__mmask8 __A) {
903*67e74705SXin Li // CHECK-LABEL: @test_mm512_movm_epi64
904*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtmask2q.512
905*67e74705SXin Li return _mm512_movm_epi64(__A);
906*67e74705SXin Li }
907*67e74705SXin Li
test_mm512_movepi64_mask(__m512i __A)908*67e74705SXin Li __mmask8 test_mm512_movepi64_mask(__m512i __A) {
909*67e74705SXin Li // CHECK-LABEL: @test_mm512_movepi64_mask
910*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtq2mask.512
911*67e74705SXin Li return _mm512_movepi64_mask(__A);
912*67e74705SXin Li }
913*67e74705SXin Li
test_mm512_broadcast_f32x2(__m128 __A)914*67e74705SXin Li __m512 test_mm512_broadcast_f32x2(__m128 __A) {
915*67e74705SXin Li // CHECK-LABEL: @test_mm512_broadcast_f32x2
916*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
917*67e74705SXin Li return _mm512_broadcast_f32x2(__A);
918*67e74705SXin Li }
919*67e74705SXin Li
test_mm512_mask_broadcast_f32x2(__m512 __O,__mmask16 __M,__m128 __A)920*67e74705SXin Li __m512 test_mm512_mask_broadcast_f32x2(__m512 __O, __mmask16 __M, __m128 __A) {
921*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_broadcast_f32x2
922*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
923*67e74705SXin Li return _mm512_mask_broadcast_f32x2(__O, __M, __A);
924*67e74705SXin Li }
925*67e74705SXin Li
test_mm512_maskz_broadcast_f32x2(__mmask16 __M,__m128 __A)926*67e74705SXin Li __m512 test_mm512_maskz_broadcast_f32x2(__mmask16 __M, __m128 __A) {
927*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_broadcast_f32x2
928*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
929*67e74705SXin Li return _mm512_maskz_broadcast_f32x2(__M, __A);
930*67e74705SXin Li }
931*67e74705SXin Li
test_mm512_broadcast_f32x8(__m256 __A)932*67e74705SXin Li __m512 test_mm512_broadcast_f32x8(__m256 __A) {
933*67e74705SXin Li // CHECK-LABEL: @test_mm512_broadcast_f32x8
934*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x8
935*67e74705SXin Li return _mm512_broadcast_f32x8(__A);
936*67e74705SXin Li }
937*67e74705SXin Li
test_mm512_mask_broadcast_f32x8(__m512 __O,__mmask16 __M,__m256 __A)938*67e74705SXin Li __m512 test_mm512_mask_broadcast_f32x8(__m512 __O, __mmask16 __M, __m256 __A) {
939*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_broadcast_f32x8
940*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x8
941*67e74705SXin Li return _mm512_mask_broadcast_f32x8(__O, __M, __A);
942*67e74705SXin Li }
943*67e74705SXin Li
test_mm512_maskz_broadcast_f32x8(__mmask16 __M,__m256 __A)944*67e74705SXin Li __m512 test_mm512_maskz_broadcast_f32x8(__mmask16 __M, __m256 __A) {
945*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_broadcast_f32x8
946*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x8
947*67e74705SXin Li return _mm512_maskz_broadcast_f32x8(__M, __A);
948*67e74705SXin Li }
949*67e74705SXin Li
test_mm512_broadcast_f64x2(__m128d __A)950*67e74705SXin Li __m512d test_mm512_broadcast_f64x2(__m128d __A) {
951*67e74705SXin Li // CHECK-LABEL: @test_mm512_broadcast_f64x2
952*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
953*67e74705SXin Li return _mm512_broadcast_f64x2(__A);
954*67e74705SXin Li }
955*67e74705SXin Li
test_mm512_mask_broadcast_f64x2(__m512d __O,__mmask8 __M,__m128d __A)956*67e74705SXin Li __m512d test_mm512_mask_broadcast_f64x2(__m512d __O, __mmask8 __M, __m128d __A) {
957*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_broadcast_f64x2
958*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
959*67e74705SXin Li return _mm512_mask_broadcast_f64x2(__O, __M, __A);
960*67e74705SXin Li }
961*67e74705SXin Li
test_mm512_maskz_broadcast_f64x2(__mmask8 __M,__m128d __A)962*67e74705SXin Li __m512d test_mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) {
963*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_broadcast_f64x2
964*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
965*67e74705SXin Li return _mm512_maskz_broadcast_f64x2(__M, __A);
966*67e74705SXin Li }
967*67e74705SXin Li
test_mm512_broadcast_i32x2(__m128i __A)968*67e74705SXin Li __m512i test_mm512_broadcast_i32x2(__m128i __A) {
969*67e74705SXin Li // CHECK-LABEL: @test_mm512_broadcast_i32x2
970*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
971*67e74705SXin Li return _mm512_broadcast_i32x2(__A);
972*67e74705SXin Li }
973*67e74705SXin Li
test_mm512_mask_broadcast_i32x2(__m512i __O,__mmask16 __M,__m128i __A)974*67e74705SXin Li __m512i test_mm512_mask_broadcast_i32x2(__m512i __O, __mmask16 __M, __m128i __A) {
975*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_broadcast_i32x2
976*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
977*67e74705SXin Li return _mm512_mask_broadcast_i32x2(__O, __M, __A);
978*67e74705SXin Li }
979*67e74705SXin Li
test_mm512_maskz_broadcast_i32x2(__mmask16 __M,__m128i __A)980*67e74705SXin Li __m512i test_mm512_maskz_broadcast_i32x2(__mmask16 __M, __m128i __A) {
981*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_broadcast_i32x2
982*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
983*67e74705SXin Li return _mm512_maskz_broadcast_i32x2(__M, __A);
984*67e74705SXin Li }
985*67e74705SXin Li
test_mm512_broadcast_i32x8(__m256i __A)986*67e74705SXin Li __m512i test_mm512_broadcast_i32x8(__m256i __A) {
987*67e74705SXin Li // CHECK-LABEL: @test_mm512_broadcast_i32x8
988*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x8
989*67e74705SXin Li return _mm512_broadcast_i32x8(__A);
990*67e74705SXin Li }
991*67e74705SXin Li
test_mm512_mask_broadcast_i32x8(__m512i __O,__mmask16 __M,__m256i __A)992*67e74705SXin Li __m512i test_mm512_mask_broadcast_i32x8(__m512i __O, __mmask16 __M, __m256i __A) {
993*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_broadcast_i32x8
994*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x8
995*67e74705SXin Li return _mm512_mask_broadcast_i32x8(__O, __M, __A);
996*67e74705SXin Li }
997*67e74705SXin Li
test_mm512_maskz_broadcast_i32x8(__mmask16 __M,__m256i __A)998*67e74705SXin Li __m512i test_mm512_maskz_broadcast_i32x8(__mmask16 __M, __m256i __A) {
999*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_broadcast_i32x8
1000*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x8
1001*67e74705SXin Li return _mm512_maskz_broadcast_i32x8(__M, __A);
1002*67e74705SXin Li }
1003*67e74705SXin Li
test_mm512_broadcast_i64x2(__m128i __A)1004*67e74705SXin Li __m512i test_mm512_broadcast_i64x2(__m128i __A) {
1005*67e74705SXin Li // CHECK-LABEL: @test_mm512_broadcast_i64x2
1006*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
1007*67e74705SXin Li return _mm512_broadcast_i64x2(__A);
1008*67e74705SXin Li }
1009*67e74705SXin Li
test_mm512_mask_broadcast_i64x2(__m512i __O,__mmask8 __M,__m128i __A)1010*67e74705SXin Li __m512i test_mm512_mask_broadcast_i64x2(__m512i __O, __mmask8 __M, __m128i __A) {
1011*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_broadcast_i64x2
1012*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
1013*67e74705SXin Li return _mm512_mask_broadcast_i64x2(__O, __M, __A);
1014*67e74705SXin Li }
1015*67e74705SXin Li
test_mm512_maskz_broadcast_i64x2(__mmask8 __M,__m128i __A)1016*67e74705SXin Li __m512i test_mm512_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) {
1017*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_broadcast_i64x2
1018*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
1019*67e74705SXin Li return _mm512_maskz_broadcast_i64x2(__M, __A);
1020*67e74705SXin Li }
test_mm512_extractf32x8_ps(__m512 __A)1021*67e74705SXin Li __m256 test_mm512_extractf32x8_ps(__m512 __A) {
1022*67e74705SXin Li // CHECK-LABEL: @test_mm512_extractf32x8_ps
1023*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf32x8
1024*67e74705SXin Li return _mm512_extractf32x8_ps(__A, 1);
1025*67e74705SXin Li }
1026*67e74705SXin Li
test_mm512_mask_extractf32x8_ps(__m256 __W,__mmask8 __U,__m512 __A)1027*67e74705SXin Li __m256 test_mm512_mask_extractf32x8_ps(__m256 __W, __mmask8 __U, __m512 __A) {
1028*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_extractf32x8_ps
1029*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf32x8
1030*67e74705SXin Li return _mm512_mask_extractf32x8_ps(__W, __U, __A, 1);
1031*67e74705SXin Li }
1032*67e74705SXin Li
test_mm512_maskz_extractf32x8_ps(__mmask8 __U,__m512 __A)1033*67e74705SXin Li __m256 test_mm512_maskz_extractf32x8_ps(__mmask8 __U, __m512 __A) {
1034*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_extractf32x8_ps
1035*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf32x8
1036*67e74705SXin Li return _mm512_maskz_extractf32x8_ps(__U, __A, 1);
1037*67e74705SXin Li }
1038*67e74705SXin Li
test_mm512_extractf64x2_pd(__m512d __A)1039*67e74705SXin Li __m128d test_mm512_extractf64x2_pd(__m512d __A) {
1040*67e74705SXin Li // CHECK-LABEL: @test_mm512_extractf64x2_pd
1041*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf64x2
1042*67e74705SXin Li return _mm512_extractf64x2_pd(__A, 3);
1043*67e74705SXin Li }
1044*67e74705SXin Li
test_mm512_mask_extractf64x2_pd(__m128d __W,__mmask8 __U,__m512d __A)1045*67e74705SXin Li __m128d test_mm512_mask_extractf64x2_pd(__m128d __W, __mmask8 __U, __m512d __A) {
1046*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_extractf64x2_pd
1047*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf64x2
1048*67e74705SXin Li return _mm512_mask_extractf64x2_pd(__W, __U, __A, 3);
1049*67e74705SXin Li }
1050*67e74705SXin Li
test_mm512_maskz_extractf64x2_pd(__mmask8 __U,__m512d __A)1051*67e74705SXin Li __m128d test_mm512_maskz_extractf64x2_pd(__mmask8 __U, __m512d __A) {
1052*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_extractf64x2_pd
1053*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf64x2
1054*67e74705SXin Li return _mm512_maskz_extractf64x2_pd(__U, __A, 3);
1055*67e74705SXin Li }
1056*67e74705SXin Li
test_mm512_extracti32x8_epi32(__m512i __A)1057*67e74705SXin Li __m256i test_mm512_extracti32x8_epi32(__m512i __A) {
1058*67e74705SXin Li // CHECK-LABEL: @test_mm512_extracti32x8_epi32
1059*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti32x8
1060*67e74705SXin Li return _mm512_extracti32x8_epi32(__A, 1);
1061*67e74705SXin Li }
1062*67e74705SXin Li
test_mm512_mask_extracti32x8_epi32(__m256i __W,__mmask8 __U,__m512i __A)1063*67e74705SXin Li __m256i test_mm512_mask_extracti32x8_epi32(__m256i __W, __mmask8 __U, __m512i __A) {
1064*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_extracti32x8_epi32
1065*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti32x8
1066*67e74705SXin Li return _mm512_mask_extracti32x8_epi32(__W, __U, __A, 1);
1067*67e74705SXin Li }
1068*67e74705SXin Li
test_mm512_maskz_extracti32x8_epi32(__mmask8 __U,__m512i __A)1069*67e74705SXin Li __m256i test_mm512_maskz_extracti32x8_epi32(__mmask8 __U, __m512i __A) {
1070*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_extracti32x8_epi32
1071*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti32x8
1072*67e74705SXin Li return _mm512_maskz_extracti32x8_epi32(__U, __A, 1);
1073*67e74705SXin Li }
1074*67e74705SXin Li
test_mm512_extracti64x2_epi64(__m512i __A)1075*67e74705SXin Li __m128i test_mm512_extracti64x2_epi64(__m512i __A) {
1076*67e74705SXin Li // CHECK-LABEL: @test_mm512_extracti64x2_epi64
1077*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti64x2
1078*67e74705SXin Li return _mm512_extracti64x2_epi64(__A, 3);
1079*67e74705SXin Li }
1080*67e74705SXin Li
test_mm512_mask_extracti64x2_epi64(__m128i __W,__mmask8 __U,__m512i __A)1081*67e74705SXin Li __m128i test_mm512_mask_extracti64x2_epi64(__m128i __W, __mmask8 __U, __m512i __A) {
1082*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_extracti64x2_epi64
1083*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti64x2
1084*67e74705SXin Li return _mm512_mask_extracti64x2_epi64(__W, __U, __A, 3);
1085*67e74705SXin Li }
1086*67e74705SXin Li
test_mm512_maskz_extracti64x2_epi64(__mmask8 __U,__m512i __A)1087*67e74705SXin Li __m128i test_mm512_maskz_extracti64x2_epi64(__mmask8 __U, __m512i __A) {
1088*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_extracti64x2_epi64
1089*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti64x2
1090*67e74705SXin Li return _mm512_maskz_extracti64x2_epi64(__U, __A, 3);
1091*67e74705SXin Li }
1092*67e74705SXin Li
test_mm512_insertf32x8(__m512 __A,__m256 __B)1093*67e74705SXin Li __m512 test_mm512_insertf32x8(__m512 __A, __m256 __B) {
1094*67e74705SXin Li // CHECK-LABEL: @test_mm512_insertf32x8
1095*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf32x8
1096*67e74705SXin Li return _mm512_insertf32x8(__A, __B, 1);
1097*67e74705SXin Li }
1098*67e74705SXin Li
test_mm512_mask_insertf32x8(__m512 __W,__mmask16 __U,__m512 __A,__m256 __B)1099*67e74705SXin Li __m512 test_mm512_mask_insertf32x8(__m512 __W, __mmask16 __U, __m512 __A, __m256 __B) {
1100*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_insertf32x8
1101*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf32x8
1102*67e74705SXin Li return _mm512_mask_insertf32x8(__W, __U, __A, __B, 1);
1103*67e74705SXin Li }
1104*67e74705SXin Li
test_mm512_maskz_insertf32x8(__mmask16 __U,__m512 __A,__m256 __B)1105*67e74705SXin Li __m512 test_mm512_maskz_insertf32x8(__mmask16 __U, __m512 __A, __m256 __B) {
1106*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_insertf32x8
1107*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf32x8
1108*67e74705SXin Li return _mm512_maskz_insertf32x8(__U, __A, __B, 1);
1109*67e74705SXin Li }
1110*67e74705SXin Li
test_mm512_insertf64x2(__m512d __A,__m128d __B)1111*67e74705SXin Li __m512d test_mm512_insertf64x2(__m512d __A, __m128d __B) {
1112*67e74705SXin Li // CHECK-LABEL: @test_mm512_insertf64x2
1113*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf64x2
1114*67e74705SXin Li return _mm512_insertf64x2(__A, __B, 3);
1115*67e74705SXin Li }
1116*67e74705SXin Li
test_mm512_mask_insertf64x2(__m512d __W,__mmask8 __U,__m512d __A,__m128d __B)1117*67e74705SXin Li __m512d test_mm512_mask_insertf64x2(__m512d __W, __mmask8 __U, __m512d __A, __m128d __B) {
1118*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_insertf64x2
1119*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf64x2
1120*67e74705SXin Li return _mm512_mask_insertf64x2(__W, __U, __A, __B, 3);
1121*67e74705SXin Li }
1122*67e74705SXin Li
test_mm512_maskz_insertf64x2(__mmask8 __U,__m512d __A,__m128d __B)1123*67e74705SXin Li __m512d test_mm512_maskz_insertf64x2(__mmask8 __U, __m512d __A, __m128d __B) {
1124*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_insertf64x2
1125*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf64x2
1126*67e74705SXin Li return _mm512_maskz_insertf64x2(__U, __A, __B, 3);
1127*67e74705SXin Li }
1128*67e74705SXin Li
test_mm512_inserti32x8(__m512i __A,__m256i __B)1129*67e74705SXin Li __m512i test_mm512_inserti32x8(__m512i __A, __m256i __B) {
1130*67e74705SXin Li // CHECK-LABEL: @test_mm512_inserti32x8
1131*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti32x8
1132*67e74705SXin Li return _mm512_inserti32x8(__A, __B, 1);
1133*67e74705SXin Li }
1134*67e74705SXin Li
test_mm512_mask_inserti32x8(__m512i __W,__mmask16 __U,__m512i __A,__m256i __B)1135*67e74705SXin Li __m512i test_mm512_mask_inserti32x8(__m512i __W, __mmask16 __U, __m512i __A, __m256i __B) {
1136*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_inserti32x8
1137*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti32x8
1138*67e74705SXin Li return _mm512_mask_inserti32x8(__W, __U, __A, __B, 1);
1139*67e74705SXin Li }
1140*67e74705SXin Li
test_mm512_maskz_inserti32x8(__mmask16 __U,__m512i __A,__m256i __B)1141*67e74705SXin Li __m512i test_mm512_maskz_inserti32x8(__mmask16 __U, __m512i __A, __m256i __B) {
1142*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_inserti32x8
1143*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti32x8
1144*67e74705SXin Li return _mm512_maskz_inserti32x8(__U, __A, __B, 1);
1145*67e74705SXin Li }
1146*67e74705SXin Li
test_mm512_inserti64x2(__m512i __A,__m128i __B)1147*67e74705SXin Li __m512i test_mm512_inserti64x2(__m512i __A, __m128i __B) {
1148*67e74705SXin Li // CHECK-LABEL: @test_mm512_inserti64x2
1149*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti64x2
1150*67e74705SXin Li return _mm512_inserti64x2(__A, __B, 1);
1151*67e74705SXin Li }
1152*67e74705SXin Li
test_mm512_mask_inserti64x2(__m512i __W,__mmask8 __U,__m512i __A,__m128i __B)1153*67e74705SXin Li __m512i test_mm512_mask_inserti64x2(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) {
1154*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_inserti64x2
1155*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti64x2
1156*67e74705SXin Li return _mm512_mask_inserti64x2(__W, __U, __A, __B, 1);
1157*67e74705SXin Li }
1158*67e74705SXin Li
test_mm512_maskz_inserti64x2(__mmask8 __U,__m512i __A,__m128i __B)1159*67e74705SXin Li __m512i test_mm512_maskz_inserti64x2(__mmask8 __U, __m512i __A, __m128i __B) {
1160*67e74705SXin Li // CHECK-LABEL: @test_mm512_maskz_inserti64x2
1161*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti64x2
1162*67e74705SXin Li return _mm512_maskz_inserti64x2(__U, __A, __B, 1);
1163*67e74705SXin Li }
test_mm512_mask_fpclass_pd_mask(__mmask8 __U,__m512d __A)1164*67e74705SXin Li __mmask8 test_mm512_mask_fpclass_pd_mask(__mmask8 __U, __m512d __A) {
1165*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_fpclass_pd_mask
1166*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.pd.512
1167*67e74705SXin Li return _mm512_mask_fpclass_pd_mask(__U, __A, 4);
1168*67e74705SXin Li }
1169*67e74705SXin Li
test_mm512_fpclass_pd_mask(__m512d __A)1170*67e74705SXin Li __mmask8 test_mm512_fpclass_pd_mask(__m512d __A) {
1171*67e74705SXin Li // CHECK-LABEL: @test_mm512_fpclass_pd_mask
1172*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.pd.512
1173*67e74705SXin Li return _mm512_fpclass_pd_mask(__A, 4);
1174*67e74705SXin Li }
1175*67e74705SXin Li
test_mm512_mask_fpclass_ps_mask(__mmask16 __U,__m512 __A)1176*67e74705SXin Li __mmask16 test_mm512_mask_fpclass_ps_mask(__mmask16 __U, __m512 __A) {
1177*67e74705SXin Li // CHECK-LABEL: @test_mm512_mask_fpclass_ps_mask
1178*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.ps.512
1179*67e74705SXin Li return _mm512_mask_fpclass_ps_mask(__U, __A, 4);
1180*67e74705SXin Li }
1181*67e74705SXin Li
test_mm512_fpclass_ps_mask(__m512 __A)1182*67e74705SXin Li __mmask16 test_mm512_fpclass_ps_mask(__m512 __A) {
1183*67e74705SXin Li // CHECK-LABEL: @test_mm512_fpclass_ps_mask
1184*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.ps.512
1185*67e74705SXin Li return _mm512_fpclass_ps_mask(__A, 4);
1186*67e74705SXin Li }
1187*67e74705SXin Li
test_mm_fpclass_sd_mask(__m128 __A)1188*67e74705SXin Li __mmask8 test_mm_fpclass_sd_mask(__m128 __A) {
1189*67e74705SXin Li // CHECK-LABEL: @test_mm_fpclass_sd_mask
1190*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.sd
1191*67e74705SXin Li return _mm_fpclass_sd_mask (__A, 2);
1192*67e74705SXin Li }
1193*67e74705SXin Li
test_mm_mask_fpclass_sd_mask(__mmask8 __U,__m128 __A)1194*67e74705SXin Li __mmask8 test_mm_mask_fpclass_sd_mask(__mmask8 __U, __m128 __A) {
1195*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_fpclass_sd_mask
1196*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.sd
1197*67e74705SXin Li return _mm_mask_fpclass_sd_mask (__U, __A, 2);
1198*67e74705SXin Li }
1199*67e74705SXin Li
test_mm_fpclass_ss_mask(__m128 __A)1200*67e74705SXin Li __mmask8 test_mm_fpclass_ss_mask(__m128 __A) {
1201*67e74705SXin Li // CHECK-LABEL: @test_mm_fpclass_ss_mask
1202*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.ss
1203*67e74705SXin Li return _mm_fpclass_ss_mask ( __A, 2);
1204*67e74705SXin Li }
1205*67e74705SXin Li
test_mm_mask_fpclass_ss_mask(__mmask8 __U,__m128 __A)1206*67e74705SXin Li __mmask8 test_mm_mask_fpclass_ss_mask(__mmask8 __U, __m128 __A) {
1207*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_fpclass_ss_mask
1208*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.ss
1209*67e74705SXin Li return _mm_mask_fpclass_ss_mask (__U, __A, 2);
1210*67e74705SXin Li }
1211*67e74705SXin Li
1212