1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512dq -target-feature +avx512vl -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_mm256_mullo_epi64(__m256i __A,__m256i __B)8*67e74705SXin Li __m256i test_mm256_mullo_epi64 (__m256i __A, __m256i __B) {
9*67e74705SXin Li // CHECK-LABEL: @test_mm256_mullo_epi64
10*67e74705SXin Li // CHECK: mul <4 x i64>
11*67e74705SXin Li return _mm256_mullo_epi64(__A, __B);
12*67e74705SXin Li }
13*67e74705SXin Li
test_mm256_mask_mullo_epi64(__m256i __W,__mmask8 __U,__m256i __A,__m256i __B)14*67e74705SXin Li __m256i test_mm256_mask_mullo_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
15*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_mullo_epi64
16*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.pmull.q.256
17*67e74705SXin Li return (__m256i) _mm256_mask_mullo_epi64 ( __W, __U, __A, __B);
18*67e74705SXin Li }
19*67e74705SXin Li
test_mm256_maskz_mullo_epi64(__mmask8 __U,__m256i __A,__m256i __B)20*67e74705SXin Li __m256i test_mm256_maskz_mullo_epi64 (__mmask8 __U, __m256i __A, __m256i __B) {
21*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_mullo_epi64
22*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.pmull.q.256
23*67e74705SXin Li return (__m256i) _mm256_maskz_mullo_epi64 (__U, __A, __B);
24*67e74705SXin Li }
25*67e74705SXin Li
test_mm_mullo_epi64(__m128i __A,__m128i __B)26*67e74705SXin Li __m128i test_mm_mullo_epi64 (__m128i __A, __m128i __B) {
27*67e74705SXin Li // CHECK-LABEL: @test_mm_mullo_epi64
28*67e74705SXin Li // CHECK: mul <2 x i64>
29*67e74705SXin Li return (__m128i) _mm_mullo_epi64(__A, __B);
30*67e74705SXin Li }
31*67e74705SXin Li
test_mm_mask_mullo_epi64(__m128i __W,__mmask8 __U,__m128i __A,__m128i __B)32*67e74705SXin Li __m128i test_mm_mask_mullo_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
33*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_mullo_epi64
34*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.pmull.q.128
35*67e74705SXin Li return (__m128i) _mm_mask_mullo_epi64 ( __W, __U, __A, __B);
36*67e74705SXin Li }
37*67e74705SXin Li
test_mm_maskz_mullo_epi64(__mmask8 __U,__m128i __A,__m128i __B)38*67e74705SXin Li __m128i test_mm_maskz_mullo_epi64 (__mmask8 __U, __m128i __A, __m128i __B) {
39*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_mullo_epi64
40*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.pmull.q.128
41*67e74705SXin Li return (__m128i) _mm_maskz_mullo_epi64 (__U, __A, __B);
42*67e74705SXin Li }
43*67e74705SXin Li
test_mm256_mask_andnot_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)44*67e74705SXin Li __m256d test_mm256_mask_andnot_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
45*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_andnot_pd
46*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.pd.256
47*67e74705SXin Li return (__m256d) _mm256_mask_andnot_pd ( __W, __U, __A, __B);
48*67e74705SXin Li }
49*67e74705SXin Li
test_mm256_maskz_andnot_pd(__mmask8 __U,__m256d __A,__m256d __B)50*67e74705SXin Li __m256d test_mm256_maskz_andnot_pd (__mmask8 __U, __m256d __A, __m256d __B) {
51*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_andnot_pd
52*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.pd.256
53*67e74705SXin Li return (__m256d) _mm256_maskz_andnot_pd (__U, __A, __B);
54*67e74705SXin Li }
55*67e74705SXin Li
test_mm_mask_andnot_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)56*67e74705SXin Li __m128d test_mm_mask_andnot_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
57*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_andnot_pd
58*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.pd.128
59*67e74705SXin Li return (__m128d) _mm_mask_andnot_pd ( __W, __U, __A, __B);
60*67e74705SXin Li }
61*67e74705SXin Li
test_mm_maskz_andnot_pd(__mmask8 __U,__m128d __A,__m128d __B)62*67e74705SXin Li __m128d test_mm_maskz_andnot_pd (__mmask8 __U, __m128d __A, __m128d __B) {
63*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_andnot_pd
64*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.pd.128
65*67e74705SXin Li return (__m128d) _mm_maskz_andnot_pd (__U, __A, __B);
66*67e74705SXin Li }
67*67e74705SXin Li
test_mm256_mask_andnot_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)68*67e74705SXin Li __m256 test_mm256_mask_andnot_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
69*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_andnot_ps
70*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.ps.256
71*67e74705SXin Li return (__m256) _mm256_mask_andnot_ps ( __W, __U, __A, __B);
72*67e74705SXin Li }
73*67e74705SXin Li
test_mm256_maskz_andnot_ps(__mmask8 __U,__m256 __A,__m256 __B)74*67e74705SXin Li __m256 test_mm256_maskz_andnot_ps (__mmask8 __U, __m256 __A, __m256 __B) {
75*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_andnot_ps
76*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.ps.256
77*67e74705SXin Li return (__m256) _mm256_maskz_andnot_ps (__U, __A, __B);
78*67e74705SXin Li }
79*67e74705SXin Li
test_mm_mask_andnot_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)80*67e74705SXin Li __m128 test_mm_mask_andnot_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
81*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_andnot_ps
82*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.ps.128
83*67e74705SXin Li return (__m128) _mm_mask_andnot_ps ( __W, __U, __A, __B);
84*67e74705SXin Li }
85*67e74705SXin Li
test_mm_maskz_andnot_ps(__mmask8 __U,__m128 __A,__m128 __B)86*67e74705SXin Li __m128 test_mm_maskz_andnot_ps (__mmask8 __U, __m128 __A, __m128 __B) {
87*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_andnot_ps
88*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.andn.ps.128
89*67e74705SXin Li return (__m128) _mm_maskz_andnot_ps (__U, __A, __B);
90*67e74705SXin Li }
91*67e74705SXin Li
test_mm256_mask_and_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)92*67e74705SXin Li __m256d test_mm256_mask_and_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
93*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_and_pd
94*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.pd.256
95*67e74705SXin Li return (__m256d) _mm256_mask_and_pd ( __W, __U, __A, __B);
96*67e74705SXin Li }
97*67e74705SXin Li
test_mm256_maskz_and_pd(__mmask8 __U,__m256d __A,__m256d __B)98*67e74705SXin Li __m256d test_mm256_maskz_and_pd (__mmask8 __U, __m256d __A, __m256d __B) {
99*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_and_pd
100*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.pd.256
101*67e74705SXin Li return (__m256d) _mm256_maskz_and_pd (__U, __A, __B);
102*67e74705SXin Li }
103*67e74705SXin Li
test_mm_mask_and_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)104*67e74705SXin Li __m128d test_mm_mask_and_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
105*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_and_pd
106*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.pd.128
107*67e74705SXin Li return (__m128d) _mm_mask_and_pd ( __W, __U, __A, __B);
108*67e74705SXin Li }
109*67e74705SXin Li
test_mm_maskz_and_pd(__mmask8 __U,__m128d __A,__m128d __B)110*67e74705SXin Li __m128d test_mm_maskz_and_pd (__mmask8 __U, __m128d __A, __m128d __B) {
111*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_and_pd
112*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.pd.128
113*67e74705SXin Li return (__m128d) _mm_maskz_and_pd (__U, __A, __B);
114*67e74705SXin Li }
115*67e74705SXin Li
test_mm256_mask_and_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)116*67e74705SXin Li __m256 test_mm256_mask_and_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
117*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_and_ps
118*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.ps.256
119*67e74705SXin Li return (__m256) _mm256_mask_and_ps ( __W, __U, __A, __B);
120*67e74705SXin Li }
121*67e74705SXin Li
test_mm256_maskz_and_ps(__mmask8 __U,__m256 __A,__m256 __B)122*67e74705SXin Li __m256 test_mm256_maskz_and_ps (__mmask8 __U, __m256 __A, __m256 __B) {
123*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_and_ps
124*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.ps.256
125*67e74705SXin Li return (__m256) _mm256_maskz_and_ps (__U, __A, __B);
126*67e74705SXin Li }
127*67e74705SXin Li
test_mm_mask_and_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)128*67e74705SXin Li __m128 test_mm_mask_and_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
129*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_and_ps
130*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.ps.128
131*67e74705SXin Li return (__m128) _mm_mask_and_ps ( __W, __U, __A, __B);
132*67e74705SXin Li }
133*67e74705SXin Li
test_mm_maskz_and_ps(__mmask8 __U,__m128 __A,__m128 __B)134*67e74705SXin Li __m128 test_mm_maskz_and_ps (__mmask8 __U, __m128 __A, __m128 __B) {
135*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_and_ps
136*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.and.ps.128
137*67e74705SXin Li return (__m128) _mm_maskz_and_ps (__U, __A, __B);
138*67e74705SXin Li }
139*67e74705SXin Li
test_mm256_mask_xor_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)140*67e74705SXin Li __m256d test_mm256_mask_xor_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
141*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_xor_pd
142*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.pd.256
143*67e74705SXin Li return (__m256d) _mm256_mask_xor_pd ( __W, __U, __A, __B);
144*67e74705SXin Li }
145*67e74705SXin Li
test_mm256_maskz_xor_pd(__mmask8 __U,__m256d __A,__m256d __B)146*67e74705SXin Li __m256d test_mm256_maskz_xor_pd (__mmask8 __U, __m256d __A, __m256d __B) {
147*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_xor_pd
148*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.pd.256
149*67e74705SXin Li return (__m256d) _mm256_maskz_xor_pd (__U, __A, __B);
150*67e74705SXin Li }
151*67e74705SXin Li
test_mm_mask_xor_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)152*67e74705SXin Li __m128d test_mm_mask_xor_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
153*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_xor_pd
154*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.pd.128
155*67e74705SXin Li return (__m128d) _mm_mask_xor_pd ( __W, __U, __A, __B);
156*67e74705SXin Li }
157*67e74705SXin Li
test_mm_maskz_xor_pd(__mmask8 __U,__m128d __A,__m128d __B)158*67e74705SXin Li __m128d test_mm_maskz_xor_pd (__mmask8 __U, __m128d __A, __m128d __B) {
159*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_xor_pd
160*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.pd.128
161*67e74705SXin Li return (__m128d) _mm_maskz_xor_pd (__U, __A, __B);
162*67e74705SXin Li }
163*67e74705SXin Li
test_mm256_mask_xor_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)164*67e74705SXin Li __m256 test_mm256_mask_xor_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
165*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_xor_ps
166*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.ps.256
167*67e74705SXin Li return (__m256) _mm256_mask_xor_ps ( __W, __U, __A, __B);
168*67e74705SXin Li }
169*67e74705SXin Li
test_mm256_maskz_xor_ps(__mmask8 __U,__m256 __A,__m256 __B)170*67e74705SXin Li __m256 test_mm256_maskz_xor_ps (__mmask8 __U, __m256 __A, __m256 __B) {
171*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_xor_ps
172*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.ps.256
173*67e74705SXin Li return (__m256) _mm256_maskz_xor_ps (__U, __A, __B);
174*67e74705SXin Li }
175*67e74705SXin Li
test_mm_mask_xor_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)176*67e74705SXin Li __m128 test_mm_mask_xor_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
177*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_xor_ps
178*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.ps.128
179*67e74705SXin Li return (__m128) _mm_mask_xor_ps ( __W, __U, __A, __B);
180*67e74705SXin Li }
181*67e74705SXin Li
test_mm_maskz_xor_ps(__mmask8 __U,__m128 __A,__m128 __B)182*67e74705SXin Li __m128 test_mm_maskz_xor_ps (__mmask8 __U, __m128 __A, __m128 __B) {
183*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_xor_ps
184*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.xor.ps.128
185*67e74705SXin Li return (__m128) _mm_maskz_xor_ps (__U, __A, __B);
186*67e74705SXin Li }
187*67e74705SXin Li
test_mm256_mask_or_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)188*67e74705SXin Li __m256d test_mm256_mask_or_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
189*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_or_pd
190*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.pd.256
191*67e74705SXin Li return (__m256d) _mm256_mask_or_pd ( __W, __U, __A, __B);
192*67e74705SXin Li }
193*67e74705SXin Li
test_mm256_maskz_or_pd(__mmask8 __U,__m256d __A,__m256d __B)194*67e74705SXin Li __m256d test_mm256_maskz_or_pd (__mmask8 __U, __m256d __A, __m256d __B) {
195*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_or_pd
196*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.pd.256
197*67e74705SXin Li return (__m256d) _mm256_maskz_or_pd (__U, __A, __B);
198*67e74705SXin Li }
199*67e74705SXin Li
test_mm_mask_or_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)200*67e74705SXin Li __m128d test_mm_mask_or_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
201*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_or_pd
202*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.pd.128
203*67e74705SXin Li return (__m128d) _mm_mask_or_pd ( __W, __U, __A, __B);
204*67e74705SXin Li }
205*67e74705SXin Li
test_mm_maskz_or_pd(__mmask8 __U,__m128d __A,__m128d __B)206*67e74705SXin Li __m128d test_mm_maskz_or_pd (__mmask8 __U, __m128d __A, __m128d __B) {
207*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_or_pd
208*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.pd.128
209*67e74705SXin Li return (__m128d) _mm_maskz_or_pd (__U, __A, __B);
210*67e74705SXin Li }
211*67e74705SXin Li
test_mm256_mask_or_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)212*67e74705SXin Li __m256 test_mm256_mask_or_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
213*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_or_ps
214*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.ps.256
215*67e74705SXin Li return (__m256) _mm256_mask_or_ps ( __W, __U, __A, __B);
216*67e74705SXin Li }
217*67e74705SXin Li
test_mm256_maskz_or_ps(__mmask8 __U,__m256 __A,__m256 __B)218*67e74705SXin Li __m256 test_mm256_maskz_or_ps (__mmask8 __U, __m256 __A, __m256 __B) {
219*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_or_ps
220*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.ps.256
221*67e74705SXin Li return (__m256) _mm256_maskz_or_ps (__U, __A, __B);
222*67e74705SXin Li }
223*67e74705SXin Li
test_mm_mask_or_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)224*67e74705SXin Li __m128 test_mm_mask_or_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
225*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_or_ps
226*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.ps.128
227*67e74705SXin Li return (__m128) _mm_mask_or_ps ( __W, __U, __A, __B);
228*67e74705SXin Li }
229*67e74705SXin Li
test_mm_maskz_or_ps(__mmask8 __U,__m128 __A,__m128 __B)230*67e74705SXin Li __m128 test_mm_maskz_or_ps (__mmask8 __U, __m128 __A, __m128 __B) {
231*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_or_ps
232*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.or.ps.128
233*67e74705SXin Li return (__m128) _mm_maskz_or_ps(__U, __A, __B);
234*67e74705SXin Li }
235*67e74705SXin Li
test_mm_cvtpd_epi64(__m128d __A)236*67e74705SXin Li __m128i test_mm_cvtpd_epi64(__m128d __A) {
237*67e74705SXin Li // CHECK-LABEL: @test_mm_cvtpd_epi64
238*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128
239*67e74705SXin Li return _mm_cvtpd_epi64(__A);
240*67e74705SXin Li }
241*67e74705SXin Li
test_mm_mask_cvtpd_epi64(__m128i __W,__mmask8 __U,__m128d __A)242*67e74705SXin Li __m128i test_mm_mask_cvtpd_epi64(__m128i __W, __mmask8 __U, __m128d __A) {
243*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvtpd_epi64
244*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128
245*67e74705SXin Li return _mm_mask_cvtpd_epi64(__W, __U, __A);
246*67e74705SXin Li }
247*67e74705SXin Li
test_mm_maskz_cvtpd_epi64(__mmask8 __U,__m128d __A)248*67e74705SXin Li __m128i test_mm_maskz_cvtpd_epi64(__mmask8 __U, __m128d __A) {
249*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvtpd_epi64
250*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.128
251*67e74705SXin Li return _mm_maskz_cvtpd_epi64(__U, __A);
252*67e74705SXin Li }
253*67e74705SXin Li
test_mm256_cvtpd_epi64(__m256d __A)254*67e74705SXin Li __m256i test_mm256_cvtpd_epi64(__m256d __A) {
255*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvtpd_epi64
256*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256
257*67e74705SXin Li return _mm256_cvtpd_epi64(__A);
258*67e74705SXin Li }
259*67e74705SXin Li
test_mm256_mask_cvtpd_epi64(__m256i __W,__mmask8 __U,__m256d __A)260*67e74705SXin Li __m256i test_mm256_mask_cvtpd_epi64(__m256i __W, __mmask8 __U, __m256d __A) {
261*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvtpd_epi64
262*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256
263*67e74705SXin Li return _mm256_mask_cvtpd_epi64(__W, __U, __A);
264*67e74705SXin Li }
265*67e74705SXin Li
test_mm256_maskz_cvtpd_epi64(__mmask8 __U,__m256d __A)266*67e74705SXin Li __m256i test_mm256_maskz_cvtpd_epi64(__mmask8 __U, __m256d __A) {
267*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi64
268*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2qq.256
269*67e74705SXin Li return _mm256_maskz_cvtpd_epi64(__U, __A);
270*67e74705SXin Li }
271*67e74705SXin Li
test_mm_cvtpd_epu64(__m128d __A)272*67e74705SXin Li __m128i test_mm_cvtpd_epu64(__m128d __A) {
273*67e74705SXin Li // CHECK-LABEL: @test_mm_cvtpd_epu64
274*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128
275*67e74705SXin Li return _mm_cvtpd_epu64(__A);
276*67e74705SXin Li }
277*67e74705SXin Li
test_mm_mask_cvtpd_epu64(__m128i __W,__mmask8 __U,__m128d __A)278*67e74705SXin Li __m128i test_mm_mask_cvtpd_epu64(__m128i __W, __mmask8 __U, __m128d __A) {
279*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvtpd_epu64
280*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128
281*67e74705SXin Li return _mm_mask_cvtpd_epu64(__W, __U, __A);
282*67e74705SXin Li }
283*67e74705SXin Li
test_mm_maskz_cvtpd_epu64(__mmask8 __U,__m128d __A)284*67e74705SXin Li __m128i test_mm_maskz_cvtpd_epu64(__mmask8 __U, __m128d __A) {
285*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvtpd_epu64
286*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.128
287*67e74705SXin Li return _mm_maskz_cvtpd_epu64(__U, __A);
288*67e74705SXin Li }
289*67e74705SXin Li
test_mm256_cvtpd_epu64(__m256d __A)290*67e74705SXin Li __m256i test_mm256_cvtpd_epu64(__m256d __A) {
291*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvtpd_epu64
292*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256
293*67e74705SXin Li return _mm256_cvtpd_epu64(__A);
294*67e74705SXin Li }
295*67e74705SXin Li
test_mm256_mask_cvtpd_epu64(__m256i __W,__mmask8 __U,__m256d __A)296*67e74705SXin Li __m256i test_mm256_mask_cvtpd_epu64(__m256i __W, __mmask8 __U, __m256d __A) {
297*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvtpd_epu64
298*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256
299*67e74705SXin Li return _mm256_mask_cvtpd_epu64(__W, __U, __A);
300*67e74705SXin Li }
301*67e74705SXin Li
test_mm256_maskz_cvtpd_epu64(__mmask8 __U,__m256d __A)302*67e74705SXin Li __m256i test_mm256_maskz_cvtpd_epu64(__mmask8 __U, __m256d __A) {
303*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu64
304*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtpd2uqq.256
305*67e74705SXin Li return _mm256_maskz_cvtpd_epu64(__U, __A);
306*67e74705SXin Li }
307*67e74705SXin Li
test_mm_cvtps_epi64(__m128 __A)308*67e74705SXin Li __m128i test_mm_cvtps_epi64(__m128 __A) {
309*67e74705SXin Li // CHECK-LABEL: @test_mm_cvtps_epi64
310*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128
311*67e74705SXin Li return _mm_cvtps_epi64(__A);
312*67e74705SXin Li }
313*67e74705SXin Li
test_mm_mask_cvtps_epi64(__m128i __W,__mmask8 __U,__m128 __A)314*67e74705SXin Li __m128i test_mm_mask_cvtps_epi64(__m128i __W, __mmask8 __U, __m128 __A) {
315*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvtps_epi64
316*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128
317*67e74705SXin Li return _mm_mask_cvtps_epi64(__W, __U, __A);
318*67e74705SXin Li }
319*67e74705SXin Li
test_mm_maskz_cvtps_epi64(__mmask8 __U,__m128 __A)320*67e74705SXin Li __m128i test_mm_maskz_cvtps_epi64(__mmask8 __U, __m128 __A) {
321*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvtps_epi64
322*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.128
323*67e74705SXin Li return _mm_maskz_cvtps_epi64(__U, __A);
324*67e74705SXin Li }
325*67e74705SXin Li
test_mm256_cvtps_epi64(__m128 __A)326*67e74705SXin Li __m256i test_mm256_cvtps_epi64(__m128 __A) {
327*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvtps_epi64
328*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256
329*67e74705SXin Li return _mm256_cvtps_epi64(__A);
330*67e74705SXin Li }
331*67e74705SXin Li
test_mm256_mask_cvtps_epi64(__m256i __W,__mmask8 __U,__m128 __A)332*67e74705SXin Li __m256i test_mm256_mask_cvtps_epi64(__m256i __W, __mmask8 __U, __m128 __A) {
333*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvtps_epi64
334*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256
335*67e74705SXin Li return _mm256_mask_cvtps_epi64(__W, __U, __A);
336*67e74705SXin Li }
337*67e74705SXin Li
test_mm256_maskz_cvtps_epi64(__mmask8 __U,__m128 __A)338*67e74705SXin Li __m256i test_mm256_maskz_cvtps_epi64(__mmask8 __U, __m128 __A) {
339*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvtps_epi64
340*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2qq.256
341*67e74705SXin Li return _mm256_maskz_cvtps_epi64(__U, __A);
342*67e74705SXin Li }
343*67e74705SXin Li
test_mm_cvtps_epu64(__m128 __A)344*67e74705SXin Li __m128i test_mm_cvtps_epu64(__m128 __A) {
345*67e74705SXin Li // CHECK-LABEL: @test_mm_cvtps_epu64
346*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128
347*67e74705SXin Li return _mm_cvtps_epu64(__A);
348*67e74705SXin Li }
349*67e74705SXin Li
test_mm_mask_cvtps_epu64(__m128i __W,__mmask8 __U,__m128 __A)350*67e74705SXin Li __m128i test_mm_mask_cvtps_epu64(__m128i __W, __mmask8 __U, __m128 __A) {
351*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvtps_epu64
352*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128
353*67e74705SXin Li return _mm_mask_cvtps_epu64(__W, __U, __A);
354*67e74705SXin Li }
355*67e74705SXin Li
test_mm_maskz_cvtps_epu64(__mmask8 __U,__m128 __A)356*67e74705SXin Li __m128i test_mm_maskz_cvtps_epu64(__mmask8 __U, __m128 __A) {
357*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvtps_epu64
358*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.128
359*67e74705SXin Li return _mm_maskz_cvtps_epu64(__U, __A);
360*67e74705SXin Li }
361*67e74705SXin Li
test_mm256_cvtps_epu64(__m128 __A)362*67e74705SXin Li __m256i test_mm256_cvtps_epu64(__m128 __A) {
363*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvtps_epu64
364*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256
365*67e74705SXin Li return _mm256_cvtps_epu64(__A);
366*67e74705SXin Li }
367*67e74705SXin Li
test_mm256_mask_cvtps_epu64(__m256i __W,__mmask8 __U,__m128 __A)368*67e74705SXin Li __m256i test_mm256_mask_cvtps_epu64(__m256i __W, __mmask8 __U, __m128 __A) {
369*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvtps_epu64
370*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256
371*67e74705SXin Li return _mm256_mask_cvtps_epu64(__W, __U, __A);
372*67e74705SXin Li }
373*67e74705SXin Li
test_mm256_maskz_cvtps_epu64(__mmask8 __U,__m128 __A)374*67e74705SXin Li __m256i test_mm256_maskz_cvtps_epu64(__mmask8 __U, __m128 __A) {
375*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvtps_epu64
376*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtps2uqq.256
377*67e74705SXin Li return _mm256_maskz_cvtps_epu64(__U, __A);
378*67e74705SXin Li }
379*67e74705SXin Li
test_mm_cvtepi64_pd(__m128i __A)380*67e74705SXin Li __m128d test_mm_cvtepi64_pd(__m128i __A) {
381*67e74705SXin Li // CHECK-LABEL: @test_mm_cvtepi64_pd
382*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128
383*67e74705SXin Li return _mm_cvtepi64_pd(__A);
384*67e74705SXin Li }
385*67e74705SXin Li
test_mm_mask_cvtepi64_pd(__m128d __W,__mmask8 __U,__m128i __A)386*67e74705SXin Li __m128d test_mm_mask_cvtepi64_pd(__m128d __W, __mmask8 __U, __m128i __A) {
387*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvtepi64_pd
388*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128
389*67e74705SXin Li return _mm_mask_cvtepi64_pd(__W, __U, __A);
390*67e74705SXin Li }
391*67e74705SXin Li
test_mm_maskz_cvtepi64_pd(__mmask8 __U,__m128i __A)392*67e74705SXin Li __m128d test_mm_maskz_cvtepi64_pd(__mmask8 __U, __m128i __A) {
393*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvtepi64_pd
394*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.128
395*67e74705SXin Li return _mm_maskz_cvtepi64_pd(__U, __A);
396*67e74705SXin Li }
397*67e74705SXin Li
test_mm256_cvtepi64_pd(__m256i __A)398*67e74705SXin Li __m256d test_mm256_cvtepi64_pd(__m256i __A) {
399*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvtepi64_pd
400*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256
401*67e74705SXin Li return _mm256_cvtepi64_pd(__A);
402*67e74705SXin Li }
403*67e74705SXin Li
test_mm256_mask_cvtepi64_pd(__m256d __W,__mmask8 __U,__m256i __A)404*67e74705SXin Li __m256d test_mm256_mask_cvtepi64_pd(__m256d __W, __mmask8 __U, __m256i __A) {
405*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvtepi64_pd
406*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256
407*67e74705SXin Li return _mm256_mask_cvtepi64_pd(__W, __U, __A);
408*67e74705SXin Li }
409*67e74705SXin Li
test_mm256_maskz_cvtepi64_pd(__mmask8 __U,__m256i __A)410*67e74705SXin Li __m256d test_mm256_maskz_cvtepi64_pd(__mmask8 __U, __m256i __A) {
411*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvtepi64_pd
412*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2pd.256
413*67e74705SXin Li return _mm256_maskz_cvtepi64_pd(__U, __A);
414*67e74705SXin Li }
415*67e74705SXin Li
test_mm_cvtepi64_ps(__m128i __A)416*67e74705SXin Li __m128 test_mm_cvtepi64_ps(__m128i __A) {
417*67e74705SXin Li // CHECK-LABEL: @test_mm_cvtepi64_ps
418*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128
419*67e74705SXin Li return _mm_cvtepi64_ps(__A);
420*67e74705SXin Li }
421*67e74705SXin Li
test_mm_mask_cvtepi64_ps(__m128 __W,__mmask8 __U,__m128i __A)422*67e74705SXin Li __m128 test_mm_mask_cvtepi64_ps(__m128 __W, __mmask8 __U, __m128i __A) {
423*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvtepi64_ps
424*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128
425*67e74705SXin Li return _mm_mask_cvtepi64_ps(__W, __U, __A);
426*67e74705SXin Li }
427*67e74705SXin Li
test_mm_maskz_cvtepi64_ps(__mmask8 __U,__m128i __A)428*67e74705SXin Li __m128 test_mm_maskz_cvtepi64_ps(__mmask8 __U, __m128i __A) {
429*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvtepi64_ps
430*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.128
431*67e74705SXin Li return _mm_maskz_cvtepi64_ps(__U, __A);
432*67e74705SXin Li }
433*67e74705SXin Li
test_mm256_cvtepi64_ps(__m256i __A)434*67e74705SXin Li __m128 test_mm256_cvtepi64_ps(__m256i __A) {
435*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvtepi64_ps
436*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256
437*67e74705SXin Li return _mm256_cvtepi64_ps(__A);
438*67e74705SXin Li }
439*67e74705SXin Li
test_mm256_mask_cvtepi64_ps(__m128 __W,__mmask8 __U,__m256i __A)440*67e74705SXin Li __m128 test_mm256_mask_cvtepi64_ps(__m128 __W, __mmask8 __U, __m256i __A) {
441*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvtepi64_ps
442*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256
443*67e74705SXin Li return _mm256_mask_cvtepi64_ps(__W, __U, __A);
444*67e74705SXin Li }
445*67e74705SXin Li
test_mm256_maskz_cvtepi64_ps(__mmask8 __U,__m256i __A)446*67e74705SXin Li __m128 test_mm256_maskz_cvtepi64_ps(__mmask8 __U, __m256i __A) {
447*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvtepi64_ps
448*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtqq2ps.256
449*67e74705SXin Li return _mm256_maskz_cvtepi64_ps(__U, __A);
450*67e74705SXin Li }
451*67e74705SXin Li
test_mm_cvttpd_epi64(__m128d __A)452*67e74705SXin Li __m128i test_mm_cvttpd_epi64(__m128d __A) {
453*67e74705SXin Li // CHECK-LABEL: @test_mm_cvttpd_epi64
454*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128
455*67e74705SXin Li return _mm_cvttpd_epi64(__A);
456*67e74705SXin Li }
457*67e74705SXin Li
test_mm_mask_cvttpd_epi64(__m128i __W,__mmask8 __U,__m128d __A)458*67e74705SXin Li __m128i test_mm_mask_cvttpd_epi64(__m128i __W, __mmask8 __U, __m128d __A) {
459*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvttpd_epi64
460*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128
461*67e74705SXin Li return _mm_mask_cvttpd_epi64(__W, __U, __A);
462*67e74705SXin Li }
463*67e74705SXin Li
test_mm_maskz_cvttpd_epi64(__mmask8 __U,__m128d __A)464*67e74705SXin Li __m128i test_mm_maskz_cvttpd_epi64(__mmask8 __U, __m128d __A) {
465*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvttpd_epi64
466*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.128
467*67e74705SXin Li return _mm_maskz_cvttpd_epi64(__U, __A);
468*67e74705SXin Li }
469*67e74705SXin Li
test_mm256_cvttpd_epi64(__m256d __A)470*67e74705SXin Li __m256i test_mm256_cvttpd_epi64(__m256d __A) {
471*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvttpd_epi64
472*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256
473*67e74705SXin Li return _mm256_cvttpd_epi64(__A);
474*67e74705SXin Li }
475*67e74705SXin Li
test_mm256_mask_cvttpd_epi64(__m256i __W,__mmask8 __U,__m256d __A)476*67e74705SXin Li __m256i test_mm256_mask_cvttpd_epi64(__m256i __W, __mmask8 __U, __m256d __A) {
477*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvttpd_epi64
478*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256
479*67e74705SXin Li return _mm256_mask_cvttpd_epi64(__W, __U, __A);
480*67e74705SXin Li }
481*67e74705SXin Li
test_mm256_maskz_cvttpd_epi64(__mmask8 __U,__m256d __A)482*67e74705SXin Li __m256i test_mm256_maskz_cvttpd_epi64(__mmask8 __U, __m256d __A) {
483*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi64
484*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2qq.256
485*67e74705SXin Li return _mm256_maskz_cvttpd_epi64(__U, __A);
486*67e74705SXin Li }
487*67e74705SXin Li
test_mm_cvttpd_epu64(__m128d __A)488*67e74705SXin Li __m128i test_mm_cvttpd_epu64(__m128d __A) {
489*67e74705SXin Li // CHECK-LABEL: @test_mm_cvttpd_epu64
490*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128
491*67e74705SXin Li return _mm_cvttpd_epu64(__A);
492*67e74705SXin Li }
493*67e74705SXin Li
test_mm_mask_cvttpd_epu64(__m128i __W,__mmask8 __U,__m128d __A)494*67e74705SXin Li __m128i test_mm_mask_cvttpd_epu64(__m128i __W, __mmask8 __U, __m128d __A) {
495*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvttpd_epu64
496*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128
497*67e74705SXin Li return _mm_mask_cvttpd_epu64(__W, __U, __A);
498*67e74705SXin Li }
499*67e74705SXin Li
test_mm_maskz_cvttpd_epu64(__mmask8 __U,__m128d __A)500*67e74705SXin Li __m128i test_mm_maskz_cvttpd_epu64(__mmask8 __U, __m128d __A) {
501*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvttpd_epu64
502*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.128
503*67e74705SXin Li return _mm_maskz_cvttpd_epu64(__U, __A);
504*67e74705SXin Li }
505*67e74705SXin Li
test_mm256_cvttpd_epu64(__m256d __A)506*67e74705SXin Li __m256i test_mm256_cvttpd_epu64(__m256d __A) {
507*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvttpd_epu64
508*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256
509*67e74705SXin Li return _mm256_cvttpd_epu64(__A);
510*67e74705SXin Li }
511*67e74705SXin Li
test_mm256_mask_cvttpd_epu64(__m256i __W,__mmask8 __U,__m256d __A)512*67e74705SXin Li __m256i test_mm256_mask_cvttpd_epu64(__m256i __W, __mmask8 __U, __m256d __A) {
513*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvttpd_epu64
514*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256
515*67e74705SXin Li return _mm256_mask_cvttpd_epu64(__W, __U, __A);
516*67e74705SXin Li }
517*67e74705SXin Li
test_mm256_maskz_cvttpd_epu64(__mmask8 __U,__m256d __A)518*67e74705SXin Li __m256i test_mm256_maskz_cvttpd_epu64(__mmask8 __U, __m256d __A) {
519*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu64
520*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttpd2uqq.256
521*67e74705SXin Li return _mm256_maskz_cvttpd_epu64(__U, __A);
522*67e74705SXin Li }
523*67e74705SXin Li
test_mm_cvttps_epi64(__m128 __A)524*67e74705SXin Li __m128i test_mm_cvttps_epi64(__m128 __A) {
525*67e74705SXin Li // CHECK-LABEL: @test_mm_cvttps_epi64
526*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128
527*67e74705SXin Li return _mm_cvttps_epi64(__A);
528*67e74705SXin Li }
529*67e74705SXin Li
test_mm_mask_cvttps_epi64(__m128i __W,__mmask8 __U,__m128 __A)530*67e74705SXin Li __m128i test_mm_mask_cvttps_epi64(__m128i __W, __mmask8 __U, __m128 __A) {
531*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvttps_epi64
532*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128
533*67e74705SXin Li return _mm_mask_cvttps_epi64(__W, __U, __A);
534*67e74705SXin Li }
535*67e74705SXin Li
test_mm_maskz_cvttps_epi64(__mmask8 __U,__m128 __A)536*67e74705SXin Li __m128i test_mm_maskz_cvttps_epi64(__mmask8 __U, __m128 __A) {
537*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvttps_epi64
538*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.128
539*67e74705SXin Li return _mm_maskz_cvttps_epi64(__U, __A);
540*67e74705SXin Li }
541*67e74705SXin Li
test_mm256_cvttps_epi64(__m128 __A)542*67e74705SXin Li __m256i test_mm256_cvttps_epi64(__m128 __A) {
543*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvttps_epi64
544*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256
545*67e74705SXin Li return _mm256_cvttps_epi64(__A);
546*67e74705SXin Li }
547*67e74705SXin Li
test_mm256_mask_cvttps_epi64(__m256i __W,__mmask8 __U,__m128 __A)548*67e74705SXin Li __m256i test_mm256_mask_cvttps_epi64(__m256i __W, __mmask8 __U, __m128 __A) {
549*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvttps_epi64
550*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256
551*67e74705SXin Li return _mm256_mask_cvttps_epi64(__W, __U, __A);
552*67e74705SXin Li }
553*67e74705SXin Li
test_mm256_maskz_cvttps_epi64(__mmask8 __U,__m128 __A)554*67e74705SXin Li __m256i test_mm256_maskz_cvttps_epi64(__mmask8 __U, __m128 __A) {
555*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvttps_epi64
556*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2qq.256
557*67e74705SXin Li return _mm256_maskz_cvttps_epi64(__U, __A);
558*67e74705SXin Li }
559*67e74705SXin Li
test_mm_cvttps_epu64(__m128 __A)560*67e74705SXin Li __m128i test_mm_cvttps_epu64(__m128 __A) {
561*67e74705SXin Li // CHECK-LABEL: @test_mm_cvttps_epu64
562*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128
563*67e74705SXin Li return _mm_cvttps_epu64(__A);
564*67e74705SXin Li }
565*67e74705SXin Li
test_mm_mask_cvttps_epu64(__m128i __W,__mmask8 __U,__m128 __A)566*67e74705SXin Li __m128i test_mm_mask_cvttps_epu64(__m128i __W, __mmask8 __U, __m128 __A) {
567*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvttps_epu64
568*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128
569*67e74705SXin Li return _mm_mask_cvttps_epu64(__W, __U, __A);
570*67e74705SXin Li }
571*67e74705SXin Li
test_mm_maskz_cvttps_epu64(__mmask8 __U,__m128 __A)572*67e74705SXin Li __m128i test_mm_maskz_cvttps_epu64(__mmask8 __U, __m128 __A) {
573*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvttps_epu64
574*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.128
575*67e74705SXin Li return _mm_maskz_cvttps_epu64(__U, __A);
576*67e74705SXin Li }
577*67e74705SXin Li
test_mm256_cvttps_epu64(__m128 __A)578*67e74705SXin Li __m256i test_mm256_cvttps_epu64(__m128 __A) {
579*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvttps_epu64
580*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256
581*67e74705SXin Li return _mm256_cvttps_epu64(__A);
582*67e74705SXin Li }
583*67e74705SXin Li
test_mm256_mask_cvttps_epu64(__m256i __W,__mmask8 __U,__m128 __A)584*67e74705SXin Li __m256i test_mm256_mask_cvttps_epu64(__m256i __W, __mmask8 __U, __m128 __A) {
585*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvttps_epu64
586*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256
587*67e74705SXin Li return _mm256_mask_cvttps_epu64(__W, __U, __A);
588*67e74705SXin Li }
589*67e74705SXin Li
test_mm256_maskz_cvttps_epu64(__mmask8 __U,__m128 __A)590*67e74705SXin Li __m256i test_mm256_maskz_cvttps_epu64(__mmask8 __U, __m128 __A) {
591*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvttps_epu64
592*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvttps2uqq.256
593*67e74705SXin Li return _mm256_maskz_cvttps_epu64(__U, __A);
594*67e74705SXin Li }
595*67e74705SXin Li
test_mm_cvtepu64_pd(__m128i __A)596*67e74705SXin Li __m128d test_mm_cvtepu64_pd(__m128i __A) {
597*67e74705SXin Li // CHECK-LABEL: @test_mm_cvtepu64_pd
598*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128
599*67e74705SXin Li return _mm_cvtepu64_pd(__A);
600*67e74705SXin Li }
601*67e74705SXin Li
test_mm_mask_cvtepu64_pd(__m128d __W,__mmask8 __U,__m128i __A)602*67e74705SXin Li __m128d test_mm_mask_cvtepu64_pd(__m128d __W, __mmask8 __U, __m128i __A) {
603*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvtepu64_pd
604*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128
605*67e74705SXin Li return _mm_mask_cvtepu64_pd(__W, __U, __A);
606*67e74705SXin Li }
607*67e74705SXin Li
test_mm_maskz_cvtepu64_pd(__mmask8 __U,__m128i __A)608*67e74705SXin Li __m128d test_mm_maskz_cvtepu64_pd(__mmask8 __U, __m128i __A) {
609*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvtepu64_pd
610*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.128
611*67e74705SXin Li return _mm_maskz_cvtepu64_pd(__U, __A);
612*67e74705SXin Li }
613*67e74705SXin Li
test_mm256_cvtepu64_pd(__m256i __A)614*67e74705SXin Li __m256d test_mm256_cvtepu64_pd(__m256i __A) {
615*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvtepu64_pd
616*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256
617*67e74705SXin Li return _mm256_cvtepu64_pd(__A);
618*67e74705SXin Li }
619*67e74705SXin Li
test_mm256_mask_cvtepu64_pd(__m256d __W,__mmask8 __U,__m256i __A)620*67e74705SXin Li __m256d test_mm256_mask_cvtepu64_pd(__m256d __W, __mmask8 __U, __m256i __A) {
621*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvtepu64_pd
622*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256
623*67e74705SXin Li return _mm256_mask_cvtepu64_pd(__W, __U, __A);
624*67e74705SXin Li }
625*67e74705SXin Li
test_mm256_maskz_cvtepu64_pd(__mmask8 __U,__m256i __A)626*67e74705SXin Li __m256d test_mm256_maskz_cvtepu64_pd(__mmask8 __U, __m256i __A) {
627*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvtepu64_pd
628*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2pd.256
629*67e74705SXin Li return _mm256_maskz_cvtepu64_pd(__U, __A);
630*67e74705SXin Li }
631*67e74705SXin Li
test_mm_cvtepu64_ps(__m128i __A)632*67e74705SXin Li __m128 test_mm_cvtepu64_ps(__m128i __A) {
633*67e74705SXin Li // CHECK-LABEL: @test_mm_cvtepu64_ps
634*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128
635*67e74705SXin Li return _mm_cvtepu64_ps(__A);
636*67e74705SXin Li }
637*67e74705SXin Li
test_mm_mask_cvtepu64_ps(__m128 __W,__mmask8 __U,__m128i __A)638*67e74705SXin Li __m128 test_mm_mask_cvtepu64_ps(__m128 __W, __mmask8 __U, __m128i __A) {
639*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_cvtepu64_ps
640*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128
641*67e74705SXin Li return _mm_mask_cvtepu64_ps(__W, __U, __A);
642*67e74705SXin Li }
643*67e74705SXin Li
test_mm_maskz_cvtepu64_ps(__mmask8 __U,__m128i __A)644*67e74705SXin Li __m128 test_mm_maskz_cvtepu64_ps(__mmask8 __U, __m128i __A) {
645*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_cvtepu64_ps
646*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.128
647*67e74705SXin Li return _mm_maskz_cvtepu64_ps(__U, __A);
648*67e74705SXin Li }
649*67e74705SXin Li
test_mm256_cvtepu64_ps(__m256i __A)650*67e74705SXin Li __m128 test_mm256_cvtepu64_ps(__m256i __A) {
651*67e74705SXin Li // CHECK-LABEL: @test_mm256_cvtepu64_ps
652*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256
653*67e74705SXin Li return _mm256_cvtepu64_ps(__A);
654*67e74705SXin Li }
655*67e74705SXin Li
test_mm256_mask_cvtepu64_ps(__m128 __W,__mmask8 __U,__m256i __A)656*67e74705SXin Li __m128 test_mm256_mask_cvtepu64_ps(__m128 __W, __mmask8 __U, __m256i __A) {
657*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_cvtepu64_ps
658*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256
659*67e74705SXin Li return _mm256_mask_cvtepu64_ps(__W, __U, __A);
660*67e74705SXin Li }
661*67e74705SXin Li
test_mm256_maskz_cvtepu64_ps(__mmask8 __U,__m256i __A)662*67e74705SXin Li __m128 test_mm256_maskz_cvtepu64_ps(__mmask8 __U, __m256i __A) {
663*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_cvtepu64_ps
664*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.cvtuqq2ps.256
665*67e74705SXin Li return _mm256_maskz_cvtepu64_ps(__U, __A);
666*67e74705SXin Li }
667*67e74705SXin Li
test_mm_range_pd(__m128d __A,__m128d __B)668*67e74705SXin Li __m128d test_mm_range_pd(__m128d __A, __m128d __B) {
669*67e74705SXin Li // CHECK-LABEL: @test_mm_range_pd
670*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.128
671*67e74705SXin Li return _mm_range_pd(__A, __B, 4);
672*67e74705SXin Li }
673*67e74705SXin Li
test_mm_mask_range_pd(__m128d __W,__mmask8 __U,__m128d __A,__m128d __B)674*67e74705SXin Li __m128d test_mm_mask_range_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
675*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_range_pd
676*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.128
677*67e74705SXin Li return _mm_mask_range_pd(__W, __U, __A, __B, 4);
678*67e74705SXin Li }
679*67e74705SXin Li
test_mm_maskz_range_pd(__mmask8 __U,__m128d __A,__m128d __B)680*67e74705SXin Li __m128d test_mm_maskz_range_pd(__mmask8 __U, __m128d __A, __m128d __B) {
681*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_range_pd
682*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.128
683*67e74705SXin Li return _mm_maskz_range_pd(__U, __A, __B, 4);
684*67e74705SXin Li }
685*67e74705SXin Li
test_mm256_range_pd(__m256d __A,__m256d __B)686*67e74705SXin Li __m256d test_mm256_range_pd(__m256d __A, __m256d __B) {
687*67e74705SXin Li // CHECK-LABEL: @test_mm256_range_pd
688*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.256
689*67e74705SXin Li return _mm256_range_pd(__A, __B, 4);
690*67e74705SXin Li }
691*67e74705SXin Li
test_mm256_mask_range_pd(__m256d __W,__mmask8 __U,__m256d __A,__m256d __B)692*67e74705SXin Li __m256d test_mm256_mask_range_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
693*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_range_pd
694*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.256
695*67e74705SXin Li return _mm256_mask_range_pd(__W, __U, __A, __B, 4);
696*67e74705SXin Li }
697*67e74705SXin Li
test_mm256_maskz_range_pd(__mmask8 __U,__m256d __A,__m256d __B)698*67e74705SXin Li __m256d test_mm256_maskz_range_pd(__mmask8 __U, __m256d __A, __m256d __B) {
699*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_range_pd
700*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.pd.256
701*67e74705SXin Li return _mm256_maskz_range_pd(__U, __A, __B, 4);
702*67e74705SXin Li }
703*67e74705SXin Li
test_mm_range_ps(__m128 __A,__m128 __B)704*67e74705SXin Li __m128 test_mm_range_ps(__m128 __A, __m128 __B) {
705*67e74705SXin Li // CHECK-LABEL: @test_mm_range_ps
706*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.128
707*67e74705SXin Li return _mm_range_ps(__A, __B, 4);
708*67e74705SXin Li }
709*67e74705SXin Li
test_mm_mask_range_ps(__m128 __W,__mmask8 __U,__m128 __A,__m128 __B)710*67e74705SXin Li __m128 test_mm_mask_range_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
711*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_range_ps
712*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.128
713*67e74705SXin Li return _mm_mask_range_ps(__W, __U, __A, __B, 4);
714*67e74705SXin Li }
715*67e74705SXin Li
test_mm_maskz_range_ps(__mmask8 __U,__m128 __A,__m128 __B)716*67e74705SXin Li __m128 test_mm_maskz_range_ps(__mmask8 __U, __m128 __A, __m128 __B) {
717*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_range_ps
718*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.128
719*67e74705SXin Li return _mm_maskz_range_ps(__U, __A, __B, 4);
720*67e74705SXin Li }
721*67e74705SXin Li
test_mm256_range_ps(__m256 __A,__m256 __B)722*67e74705SXin Li __m256 test_mm256_range_ps(__m256 __A, __m256 __B) {
723*67e74705SXin Li // CHECK-LABEL: @test_mm256_range_ps
724*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.256
725*67e74705SXin Li return _mm256_range_ps(__A, __B, 4);
726*67e74705SXin Li }
727*67e74705SXin Li
test_mm256_mask_range_ps(__m256 __W,__mmask8 __U,__m256 __A,__m256 __B)728*67e74705SXin Li __m256 test_mm256_mask_range_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
729*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_range_ps
730*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.256
731*67e74705SXin Li return _mm256_mask_range_ps(__W, __U, __A, __B, 4);
732*67e74705SXin Li }
733*67e74705SXin Li
test_mm256_maskz_range_ps(__mmask8 __U,__m256 __A,__m256 __B)734*67e74705SXin Li __m256 test_mm256_maskz_range_ps(__mmask8 __U, __m256 __A, __m256 __B) {
735*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_range_ps
736*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.range.ps.256
737*67e74705SXin Li return _mm256_maskz_range_ps(__U, __A, __B, 4);
738*67e74705SXin Li }
739*67e74705SXin Li
test_mm_reduce_pd(__m128d __A)740*67e74705SXin Li __m128d test_mm_reduce_pd(__m128d __A) {
741*67e74705SXin Li // CHECK-LABEL: @test_mm_reduce_pd
742*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.128
743*67e74705SXin Li return _mm_reduce_pd(__A, 4);
744*67e74705SXin Li }
745*67e74705SXin Li
test_mm_mask_reduce_pd(__m128d __W,__mmask8 __U,__m128d __A)746*67e74705SXin Li __m128d test_mm_mask_reduce_pd(__m128d __W, __mmask8 __U, __m128d __A) {
747*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_reduce_pd
748*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.128
749*67e74705SXin Li return _mm_mask_reduce_pd(__W, __U, __A, 4);
750*67e74705SXin Li }
751*67e74705SXin Li
test_mm_maskz_reduce_pd(__mmask8 __U,__m128d __A)752*67e74705SXin Li __m128d test_mm_maskz_reduce_pd(__mmask8 __U, __m128d __A) {
753*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_reduce_pd
754*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.128
755*67e74705SXin Li return _mm_maskz_reduce_pd(__U, __A, 4);
756*67e74705SXin Li }
757*67e74705SXin Li
test_mm256_reduce_pd(__m256d __A)758*67e74705SXin Li __m256d test_mm256_reduce_pd(__m256d __A) {
759*67e74705SXin Li // CHECK-LABEL: @test_mm256_reduce_pd
760*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.256
761*67e74705SXin Li return _mm256_reduce_pd(__A, 4);
762*67e74705SXin Li }
763*67e74705SXin Li
test_mm256_mask_reduce_pd(__m256d __W,__mmask8 __U,__m256d __A)764*67e74705SXin Li __m256d test_mm256_mask_reduce_pd(__m256d __W, __mmask8 __U, __m256d __A) {
765*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_reduce_pd
766*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.256
767*67e74705SXin Li return _mm256_mask_reduce_pd(__W, __U, __A, 4);
768*67e74705SXin Li }
769*67e74705SXin Li
test_mm256_maskz_reduce_pd(__mmask8 __U,__m256d __A)770*67e74705SXin Li __m256d test_mm256_maskz_reduce_pd(__mmask8 __U, __m256d __A) {
771*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_reduce_pd
772*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.pd.256
773*67e74705SXin Li return _mm256_maskz_reduce_pd(__U, __A, 4);
774*67e74705SXin Li }
775*67e74705SXin Li
test_mm_reduce_ps(__m128 __A)776*67e74705SXin Li __m128 test_mm_reduce_ps(__m128 __A) {
777*67e74705SXin Li // CHECK-LABEL: @test_mm_reduce_ps
778*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.128
779*67e74705SXin Li return _mm_reduce_ps(__A, 4);
780*67e74705SXin Li }
781*67e74705SXin Li
test_mm_mask_reduce_ps(__m128 __W,__mmask8 __U,__m128 __A)782*67e74705SXin Li __m128 test_mm_mask_reduce_ps(__m128 __W, __mmask8 __U, __m128 __A) {
783*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_reduce_ps
784*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.128
785*67e74705SXin Li return _mm_mask_reduce_ps(__W, __U, __A, 4);
786*67e74705SXin Li }
787*67e74705SXin Li
test_mm_maskz_reduce_ps(__mmask8 __U,__m128 __A)788*67e74705SXin Li __m128 test_mm_maskz_reduce_ps(__mmask8 __U, __m128 __A) {
789*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_reduce_ps
790*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.128
791*67e74705SXin Li return _mm_maskz_reduce_ps(__U, __A, 4);
792*67e74705SXin Li }
793*67e74705SXin Li
test_mm256_reduce_ps(__m256 __A)794*67e74705SXin Li __m256 test_mm256_reduce_ps(__m256 __A) {
795*67e74705SXin Li // CHECK-LABEL: @test_mm256_reduce_ps
796*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.256
797*67e74705SXin Li return _mm256_reduce_ps(__A, 4);
798*67e74705SXin Li }
799*67e74705SXin Li
test_mm256_mask_reduce_ps(__m256 __W,__mmask8 __U,__m256 __A)800*67e74705SXin Li __m256 test_mm256_mask_reduce_ps(__m256 __W, __mmask8 __U, __m256 __A) {
801*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_reduce_ps
802*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.256
803*67e74705SXin Li return _mm256_mask_reduce_ps(__W, __U, __A, 4);
804*67e74705SXin Li }
805*67e74705SXin Li
test_mm256_maskz_reduce_ps(__mmask8 __U,__m256 __A)806*67e74705SXin Li __m256 test_mm256_maskz_reduce_ps(__mmask8 __U, __m256 __A) {
807*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_reduce_ps
808*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.reduce.ps.256
809*67e74705SXin Li return _mm256_maskz_reduce_ps(__U, __A, 4);
810*67e74705SXin Li }
811*67e74705SXin Li
test_mm_movepi32_mask(__m128i __A)812*67e74705SXin Li __mmask8 test_mm_movepi32_mask(__m128i __A) {
813*67e74705SXin Li // CHECK-LABEL: @test_mm_movepi32_mask
814*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtd2mask.128
815*67e74705SXin Li return _mm_movepi32_mask(__A);
816*67e74705SXin Li }
817*67e74705SXin Li
test_mm256_movepi32_mask(__m256i __A)818*67e74705SXin Li __mmask8 test_mm256_movepi32_mask(__m256i __A) {
819*67e74705SXin Li // CHECK-LABEL: @test_mm256_movepi32_mask
820*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtd2mask.256
821*67e74705SXin Li return _mm256_movepi32_mask(__A);
822*67e74705SXin Li }
823*67e74705SXin Li
test_mm_movm_epi32(__mmask8 __A)824*67e74705SXin Li __m128i test_mm_movm_epi32(__mmask8 __A) {
825*67e74705SXin Li // CHECK-LABEL: @test_mm_movm_epi32
826*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtmask2d.128
827*67e74705SXin Li return _mm_movm_epi32(__A);
828*67e74705SXin Li }
829*67e74705SXin Li
test_mm256_movm_epi32(__mmask8 __A)830*67e74705SXin Li __m256i test_mm256_movm_epi32(__mmask8 __A) {
831*67e74705SXin Li // CHECK-LABEL: @test_mm256_movm_epi32
832*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtmask2d.256
833*67e74705SXin Li return _mm256_movm_epi32(__A);
834*67e74705SXin Li }
835*67e74705SXin Li
test_mm_movm_epi64(__mmask8 __A)836*67e74705SXin Li __m128i test_mm_movm_epi64(__mmask8 __A) {
837*67e74705SXin Li // CHECK-LABEL: @test_mm_movm_epi64
838*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtmask2q.128
839*67e74705SXin Li return _mm_movm_epi64(__A);
840*67e74705SXin Li }
841*67e74705SXin Li
test_mm256_movm_epi64(__mmask8 __A)842*67e74705SXin Li __m256i test_mm256_movm_epi64(__mmask8 __A) {
843*67e74705SXin Li // CHECK-LABEL: @test_mm256_movm_epi64
844*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtmask2q.256
845*67e74705SXin Li return _mm256_movm_epi64(__A);
846*67e74705SXin Li }
847*67e74705SXin Li
test_mm_movepi64_mask(__m128i __A)848*67e74705SXin Li __mmask8 test_mm_movepi64_mask(__m128i __A) {
849*67e74705SXin Li // CHECK-LABEL: @test_mm_movepi64_mask
850*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtq2mask.128
851*67e74705SXin Li return _mm_movepi64_mask(__A);
852*67e74705SXin Li }
853*67e74705SXin Li
test_mm256_movepi64_mask(__m256i __A)854*67e74705SXin Li __mmask8 test_mm256_movepi64_mask(__m256i __A) {
855*67e74705SXin Li // CHECK-LABEL: @test_mm256_movepi64_mask
856*67e74705SXin Li // CHECK: @llvm.x86.avx512.cvtq2mask.256
857*67e74705SXin Li return _mm256_movepi64_mask(__A);
858*67e74705SXin Li }
859*67e74705SXin Li
860*67e74705SXin Li
test_mm256_broadcast_f32x2(__m128 __A)861*67e74705SXin Li __m256 test_mm256_broadcast_f32x2(__m128 __A) {
862*67e74705SXin Li // CHECK-LABEL: @test_mm256_broadcast_f32x2
863*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
864*67e74705SXin Li return _mm256_broadcast_f32x2(__A);
865*67e74705SXin Li }
866*67e74705SXin Li
test_mm256_mask_broadcast_f32x2(__m256 __O,__mmask8 __M,__m128 __A)867*67e74705SXin Li __m256 test_mm256_mask_broadcast_f32x2(__m256 __O, __mmask8 __M, __m128 __A) {
868*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_broadcast_f32x2
869*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
870*67e74705SXin Li return _mm256_mask_broadcast_f32x2(__O, __M, __A);
871*67e74705SXin Li }
872*67e74705SXin Li
test_mm256_maskz_broadcast_f32x2(__mmask8 __M,__m128 __A)873*67e74705SXin Li __m256 test_mm256_maskz_broadcast_f32x2(__mmask8 __M, __m128 __A) {
874*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x2
875*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf32x2
876*67e74705SXin Li return _mm256_maskz_broadcast_f32x2(__M, __A);
877*67e74705SXin Li }
878*67e74705SXin Li
test_mm256_broadcast_f64x2(__m128d __A)879*67e74705SXin Li __m256d test_mm256_broadcast_f64x2(__m128d __A) {
880*67e74705SXin Li // CHECK-LABEL: @test_mm256_broadcast_f64x2
881*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
882*67e74705SXin Li return _mm256_broadcast_f64x2(__A);
883*67e74705SXin Li }
884*67e74705SXin Li
test_mm256_mask_broadcast_f64x2(__m256d __O,__mmask8 __M,__m128d __A)885*67e74705SXin Li __m256d test_mm256_mask_broadcast_f64x2(__m256d __O, __mmask8 __M, __m128d __A) {
886*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_broadcast_f64x2
887*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
888*67e74705SXin Li return _mm256_mask_broadcast_f64x2(__O, __M, __A);
889*67e74705SXin Li }
890*67e74705SXin Li
test_mm256_maskz_broadcast_f64x2(__mmask8 __M,__m128d __A)891*67e74705SXin Li __m256d test_mm256_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) {
892*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_broadcast_f64x2
893*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcastf64x2
894*67e74705SXin Li return _mm256_maskz_broadcast_f64x2(__M, __A);
895*67e74705SXin Li }
896*67e74705SXin Li
test_mm_broadcast_i32x2(__m128i __A)897*67e74705SXin Li __m128i test_mm_broadcast_i32x2(__m128i __A) {
898*67e74705SXin Li // CHECK-LABEL: @test_mm_broadcast_i32x2
899*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
900*67e74705SXin Li return _mm_broadcast_i32x2(__A);
901*67e74705SXin Li }
902*67e74705SXin Li
test_mm_mask_broadcast_i32x2(__m128i __O,__mmask8 __M,__m128i __A)903*67e74705SXin Li __m128i test_mm_mask_broadcast_i32x2(__m128i __O, __mmask8 __M, __m128i __A) {
904*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_broadcast_i32x2
905*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
906*67e74705SXin Li return _mm_mask_broadcast_i32x2(__O, __M, __A);
907*67e74705SXin Li }
908*67e74705SXin Li
test_mm_maskz_broadcast_i32x2(__mmask8 __M,__m128i __A)909*67e74705SXin Li __m128i test_mm_maskz_broadcast_i32x2(__mmask8 __M, __m128i __A) {
910*67e74705SXin Li // CHECK-LABEL: @test_mm_maskz_broadcast_i32x2
911*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
912*67e74705SXin Li return _mm_maskz_broadcast_i32x2(__M, __A);
913*67e74705SXin Li }
914*67e74705SXin Li
test_mm256_broadcast_i32x2(__m128i __A)915*67e74705SXin Li __m256i test_mm256_broadcast_i32x2(__m128i __A) {
916*67e74705SXin Li // CHECK-LABEL: @test_mm256_broadcast_i32x2
917*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
918*67e74705SXin Li return _mm256_broadcast_i32x2(__A);
919*67e74705SXin Li }
920*67e74705SXin Li
test_mm256_mask_broadcast_i32x2(__m256i __O,__mmask8 __M,__m128i __A)921*67e74705SXin Li __m256i test_mm256_mask_broadcast_i32x2(__m256i __O, __mmask8 __M, __m128i __A) {
922*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_broadcast_i32x2
923*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
924*67e74705SXin Li return _mm256_mask_broadcast_i32x2(__O, __M, __A);
925*67e74705SXin Li }
926*67e74705SXin Li
test_mm256_maskz_broadcast_i32x2(__mmask8 __M,__m128i __A)927*67e74705SXin Li __m256i test_mm256_maskz_broadcast_i32x2(__mmask8 __M, __m128i __A) {
928*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x2
929*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti32x2
930*67e74705SXin Li return _mm256_maskz_broadcast_i32x2(__M, __A);
931*67e74705SXin Li }
932*67e74705SXin Li
test_mm256_broadcast_i64x2(__m128i __A)933*67e74705SXin Li __m256i test_mm256_broadcast_i64x2(__m128i __A) {
934*67e74705SXin Li // CHECK-LABEL: @test_mm256_broadcast_i64x2
935*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
936*67e74705SXin Li return _mm256_broadcast_i64x2(__A);
937*67e74705SXin Li }
938*67e74705SXin Li
test_mm256_mask_broadcast_i64x2(__m256i __O,__mmask8 __M,__m128i __A)939*67e74705SXin Li __m256i test_mm256_mask_broadcast_i64x2(__m256i __O, __mmask8 __M, __m128i __A) {
940*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_broadcast_i64x2
941*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
942*67e74705SXin Li return _mm256_mask_broadcast_i64x2(__O, __M, __A);
943*67e74705SXin Li }
944*67e74705SXin Li
test_mm256_maskz_broadcast_i64x2(__mmask8 __M,__m128i __A)945*67e74705SXin Li __m256i test_mm256_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) {
946*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_broadcast_i64x2
947*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.broadcasti64x2
948*67e74705SXin Li return _mm256_maskz_broadcast_i64x2(__M, __A);
949*67e74705SXin Li }
950*67e74705SXin Li
test_mm256_extractf64x2_pd(__m256d __A)951*67e74705SXin Li __m128d test_mm256_extractf64x2_pd(__m256d __A) {
952*67e74705SXin Li // CHECK-LABEL: @test_mm256_extractf64x2_pd
953*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf64x2
954*67e74705SXin Li return _mm256_extractf64x2_pd(__A, 1);
955*67e74705SXin Li }
956*67e74705SXin Li
test_mm256_mask_extractf64x2_pd(__m128d __W,__mmask8 __U,__m256d __A)957*67e74705SXin Li __m128d test_mm256_mask_extractf64x2_pd(__m128d __W, __mmask8 __U, __m256d __A) {
958*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_extractf64x2_pd
959*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf64x2
960*67e74705SXin Li return _mm256_mask_extractf64x2_pd(__W, __U, __A, 1);
961*67e74705SXin Li }
962*67e74705SXin Li
test_mm256_maskz_extractf64x2_pd(__mmask8 __U,__m256d __A)963*67e74705SXin Li __m128d test_mm256_maskz_extractf64x2_pd(__mmask8 __U, __m256d __A) {
964*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_extractf64x2_pd
965*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextractf64x2
966*67e74705SXin Li return _mm256_maskz_extractf64x2_pd(__U, __A, 1);
967*67e74705SXin Li }
968*67e74705SXin Li
test_mm256_extracti64x2_epi64(__m256i __A)969*67e74705SXin Li __m128i test_mm256_extracti64x2_epi64(__m256i __A) {
970*67e74705SXin Li // CHECK-LABEL: @test_mm256_extracti64x2_epi64
971*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti64x2
972*67e74705SXin Li return _mm256_extracti64x2_epi64(__A, 1);
973*67e74705SXin Li }
974*67e74705SXin Li
test_mm256_mask_extracti64x2_epi64(__m128i __W,__mmask8 __U,__m256i __A)975*67e74705SXin Li __m128i test_mm256_mask_extracti64x2_epi64(__m128i __W, __mmask8 __U, __m256i __A) {
976*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_extracti64x2_epi64
977*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti64x2
978*67e74705SXin Li return _mm256_mask_extracti64x2_epi64(__W, __U, __A, 1);
979*67e74705SXin Li }
980*67e74705SXin Li
test_mm256_maskz_extracti64x2_epi64(__mmask8 __U,__m256i __A)981*67e74705SXin Li __m128i test_mm256_maskz_extracti64x2_epi64(__mmask8 __U, __m256i __A) {
982*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_extracti64x2_epi64
983*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.vextracti64x2
984*67e74705SXin Li return _mm256_maskz_extracti64x2_epi64(__U, __A, 1);
985*67e74705SXin Li }
986*67e74705SXin Li
test_mm256_insertf64x2(__m256d __A,__m128d __B)987*67e74705SXin Li __m256d test_mm256_insertf64x2(__m256d __A, __m128d __B) {
988*67e74705SXin Li // CHECK-LABEL: @test_mm256_insertf64x2
989*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf64x2
990*67e74705SXin Li return _mm256_insertf64x2(__A, __B, 1);
991*67e74705SXin Li }
992*67e74705SXin Li
test_mm256_mask_insertf64x2(__m256d __W,__mmask8 __U,__m256d __A,__m128d __B)993*67e74705SXin Li __m256d test_mm256_mask_insertf64x2(__m256d __W, __mmask8 __U, __m256d __A, __m128d __B) {
994*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_insertf64x2
995*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf64x2
996*67e74705SXin Li return _mm256_mask_insertf64x2(__W, __U, __A, __B, 1);
997*67e74705SXin Li }
998*67e74705SXin Li
test_mm256_maskz_insertf64x2(__mmask8 __U,__m256d __A,__m128d __B)999*67e74705SXin Li __m256d test_mm256_maskz_insertf64x2(__mmask8 __U, __m256d __A, __m128d __B) {
1000*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_insertf64x2
1001*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.insertf64x2
1002*67e74705SXin Li return _mm256_maskz_insertf64x2(__U, __A, __B, 1);
1003*67e74705SXin Li }
1004*67e74705SXin Li
test_mm256_inserti64x2(__m256i __A,__m128i __B)1005*67e74705SXin Li __m256i test_mm256_inserti64x2(__m256i __A, __m128i __B) {
1006*67e74705SXin Li // CHECK-LABEL: @test_mm256_inserti64x2
1007*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti64x2
1008*67e74705SXin Li return _mm256_inserti64x2(__A, __B, 1);
1009*67e74705SXin Li }
1010*67e74705SXin Li
test_mm256_mask_inserti64x2(__m256i __W,__mmask8 __U,__m256i __A,__m128i __B)1011*67e74705SXin Li __m256i test_mm256_mask_inserti64x2(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) {
1012*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_inserti64x2
1013*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti64x2
1014*67e74705SXin Li return _mm256_mask_inserti64x2(__W, __U, __A, __B, 1);
1015*67e74705SXin Li }
1016*67e74705SXin Li
test_mm256_maskz_inserti64x2(__mmask8 __U,__m256i __A,__m128i __B)1017*67e74705SXin Li __m256i test_mm256_maskz_inserti64x2(__mmask8 __U, __m256i __A, __m128i __B) {
1018*67e74705SXin Li // CHECK-LABEL: @test_mm256_maskz_inserti64x2
1019*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.inserti64x2
1020*67e74705SXin Li return _mm256_maskz_inserti64x2(__U, __A, __B, 1);
1021*67e74705SXin Li }
1022*67e74705SXin Li
test_mm_mask_fpclass_pd_mask(__mmask8 __U,__m128d __A)1023*67e74705SXin Li __mmask8 test_mm_mask_fpclass_pd_mask(__mmask8 __U, __m128d __A) {
1024*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_fpclass_pd_mask
1025*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.pd.128
1026*67e74705SXin Li return _mm_mask_fpclass_pd_mask(__U, __A, 2);
1027*67e74705SXin Li }
1028*67e74705SXin Li
test_mm_fpclass_pd_mask(__m128d __A)1029*67e74705SXin Li __mmask8 test_mm_fpclass_pd_mask(__m128d __A) {
1030*67e74705SXin Li // CHECK-LABEL: @test_mm_fpclass_pd_mask
1031*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.pd.128
1032*67e74705SXin Li return _mm_fpclass_pd_mask(__A, 2);
1033*67e74705SXin Li }
1034*67e74705SXin Li
test_mm256_mask_fpclass_pd_mask(__mmask8 __U,__m256d __A)1035*67e74705SXin Li __mmask8 test_mm256_mask_fpclass_pd_mask(__mmask8 __U, __m256d __A) {
1036*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_fpclass_pd_mask
1037*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.pd.256
1038*67e74705SXin Li return _mm256_mask_fpclass_pd_mask(__U, __A, 2);
1039*67e74705SXin Li }
1040*67e74705SXin Li
test_mm256_fpclass_pd_mask(__m256d __A)1041*67e74705SXin Li __mmask8 test_mm256_fpclass_pd_mask(__m256d __A) {
1042*67e74705SXin Li // CHECK-LABEL: @test_mm256_fpclass_pd_mask
1043*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.pd.256
1044*67e74705SXin Li return _mm256_fpclass_pd_mask(__A, 2);
1045*67e74705SXin Li }
1046*67e74705SXin Li
test_mm_mask_fpclass_ps_mask(__mmask8 __U,__m128 __A)1047*67e74705SXin Li __mmask8 test_mm_mask_fpclass_ps_mask(__mmask8 __U, __m128 __A) {
1048*67e74705SXin Li // CHECK-LABEL: @test_mm_mask_fpclass_ps_mask
1049*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.ps.128
1050*67e74705SXin Li return _mm_mask_fpclass_ps_mask(__U, __A, 2);
1051*67e74705SXin Li }
1052*67e74705SXin Li
test_mm_fpclass_ps_mask(__m128 __A)1053*67e74705SXin Li __mmask8 test_mm_fpclass_ps_mask(__m128 __A) {
1054*67e74705SXin Li // CHECK-LABEL: @test_mm_fpclass_ps_mask
1055*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.ps.128
1056*67e74705SXin Li return _mm_fpclass_ps_mask(__A, 2);
1057*67e74705SXin Li }
1058*67e74705SXin Li
test_mm256_mask_fpclass_ps_mask(__mmask8 __U,__m256 __A)1059*67e74705SXin Li __mmask8 test_mm256_mask_fpclass_ps_mask(__mmask8 __U, __m256 __A) {
1060*67e74705SXin Li // CHECK-LABEL: @test_mm256_mask_fpclass_ps_mask
1061*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.ps.256
1062*67e74705SXin Li return _mm256_mask_fpclass_ps_mask(__U, __A, 2);
1063*67e74705SXin Li }
1064*67e74705SXin Li
test_mm256_fpclass_ps_mask(__m256 __A)1065*67e74705SXin Li __mmask8 test_mm256_fpclass_ps_mask(__m256 __A) {
1066*67e74705SXin Li // CHECK-LABEL: @test_mm256_fpclass_ps_mask
1067*67e74705SXin Li // CHECK: @llvm.x86.avx512.mask.fpclass.ps.256
1068*67e74705SXin Li return _mm256_fpclass_ps_mask(__A, 2);
1069*67e74705SXin Li }
1070