xref: /aosp_15_r20/external/clang/test/CodeGen/avx512er-builtins.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512er -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_rsqrt28_round_pd(__m512d a)8*67e74705SXin Li __m512d test_mm512_rsqrt28_round_pd(__m512d a) {
9*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rsqrt28_round_pd
10*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.pd
11*67e74705SXin Li   return _mm512_rsqrt28_round_pd(a, _MM_FROUND_TO_NEAREST_INT);
12*67e74705SXin Li }
13*67e74705SXin Li 
test_mm512_mask_rsqrt28_round_pd(__m512d s,__mmask8 m,__m512d a)14*67e74705SXin Li __m512d test_mm512_mask_rsqrt28_round_pd(__m512d s, __mmask8 m, __m512d a) {
15*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rsqrt28_round_pd
16*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.pd
17*67e74705SXin Li   return _mm512_mask_rsqrt28_round_pd(s, m, a, _MM_FROUND_TO_NEAREST_INT);
18*67e74705SXin Li }
19*67e74705SXin Li 
test_mm512_maskz_rsqrt28_round_pd(__mmask8 m,__m512d a)20*67e74705SXin Li __m512d test_mm512_maskz_rsqrt28_round_pd(__mmask8 m, __m512d a) {
21*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rsqrt28_round_pd
22*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.pd
23*67e74705SXin Li   return _mm512_maskz_rsqrt28_round_pd(m, a, _MM_FROUND_TO_NEAREST_INT);
24*67e74705SXin Li }
25*67e74705SXin Li 
test_mm512_rsqrt28_pd(__m512d a)26*67e74705SXin Li __m512d test_mm512_rsqrt28_pd(__m512d a) {
27*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rsqrt28_pd
28*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.pd
29*67e74705SXin Li   return _mm512_rsqrt28_pd(a);
30*67e74705SXin Li }
31*67e74705SXin Li 
test_mm512_mask_rsqrt28_pd(__m512d s,__mmask8 m,__m512d a)32*67e74705SXin Li __m512d test_mm512_mask_rsqrt28_pd(__m512d s, __mmask8 m, __m512d a) {
33*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rsqrt28_pd
34*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.pd
35*67e74705SXin Li   return _mm512_mask_rsqrt28_pd(s, m, a);
36*67e74705SXin Li }
37*67e74705SXin Li 
test_mm512_maskz_rsqrt28_pd(__mmask8 m,__m512d a)38*67e74705SXin Li __m512d test_mm512_maskz_rsqrt28_pd(__mmask8 m, __m512d a) {
39*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rsqrt28_pd
40*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.pd
41*67e74705SXin Li   return _mm512_maskz_rsqrt28_pd(m, a);
42*67e74705SXin Li }
43*67e74705SXin Li 
test_mm512_rsqrt28_round_ps(__m512 a)44*67e74705SXin Li __m512 test_mm512_rsqrt28_round_ps(__m512 a) {
45*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rsqrt28_round_ps
46*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ps
47*67e74705SXin Li   return _mm512_rsqrt28_round_ps(a, _MM_FROUND_TO_NEAREST_INT);
48*67e74705SXin Li }
49*67e74705SXin Li 
test_mm512_mask_rsqrt28_round_ps(__m512 s,__mmask16 m,__m512 a)50*67e74705SXin Li __m512 test_mm512_mask_rsqrt28_round_ps(__m512 s, __mmask16 m, __m512 a) {
51*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rsqrt28_round_ps
52*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ps
53*67e74705SXin Li   return _mm512_mask_rsqrt28_round_ps(s, m, a, _MM_FROUND_TO_NEAREST_INT);
54*67e74705SXin Li }
55*67e74705SXin Li 
test_mm512_maskz_rsqrt28_round_ps(__mmask16 m,__m512 a)56*67e74705SXin Li __m512 test_mm512_maskz_rsqrt28_round_ps(__mmask16 m, __m512 a) {
57*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rsqrt28_round_ps
58*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ps
59*67e74705SXin Li   return _mm512_maskz_rsqrt28_round_ps(m, a, _MM_FROUND_TO_NEAREST_INT);
60*67e74705SXin Li }
61*67e74705SXin Li 
test_mm512_rsqrt28_ps(__m512 a)62*67e74705SXin Li __m512 test_mm512_rsqrt28_ps(__m512 a) {
63*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rsqrt28_ps
64*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ps
65*67e74705SXin Li   return _mm512_rsqrt28_ps(a);
66*67e74705SXin Li }
67*67e74705SXin Li 
test_mm512_mask_rsqrt28_ps(__m512 s,__mmask16 m,__m512 a)68*67e74705SXin Li __m512 test_mm512_mask_rsqrt28_ps(__m512 s, __mmask16 m, __m512 a) {
69*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rsqrt28_ps
70*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ps
71*67e74705SXin Li   return _mm512_mask_rsqrt28_ps(s, m, a);
72*67e74705SXin Li }
73*67e74705SXin Li 
test_mm512_maskz_rsqrt28_ps(__mmask16 m,__m512 a)74*67e74705SXin Li __m512 test_mm512_maskz_rsqrt28_ps(__mmask16 m, __m512 a) {
75*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rsqrt28_ps
76*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ps
77*67e74705SXin Li   return _mm512_maskz_rsqrt28_ps(m, a);
78*67e74705SXin Li }
79*67e74705SXin Li 
test_mm_rsqrt28_round_ss(__m128 a,__m128 b)80*67e74705SXin Li __m128 test_mm_rsqrt28_round_ss(__m128 a, __m128 b) {
81*67e74705SXin Li   // CHECK-LABEL: @test_mm_rsqrt28_round_ss
82*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ss
83*67e74705SXin Li   return _mm_rsqrt28_round_ss(a, b, _MM_FROUND_TO_NEAREST_INT);
84*67e74705SXin Li }
85*67e74705SXin Li 
test_mm_mask_rsqrt28_round_ss(__m128 s,__mmask16 m,__m128 a,__m128 b)86*67e74705SXin Li __m128 test_mm_mask_rsqrt28_round_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
87*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rsqrt28_round_ss
88*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ss
89*67e74705SXin Li   return _mm_mask_rsqrt28_round_ss(s, m, a, b, _MM_FROUND_TO_NEAREST_INT);
90*67e74705SXin Li }
91*67e74705SXin Li 
test_mm_maskz_rsqrt28_round_ss(__mmask16 m,__m128 a,__m128 b)92*67e74705SXin Li __m128 test_mm_maskz_rsqrt28_round_ss(__mmask16 m, __m128 a, __m128 b) {
93*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rsqrt28_round_ss
94*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ss
95*67e74705SXin Li   return _mm_maskz_rsqrt28_round_ss(m, a, b, _MM_FROUND_TO_NEAREST_INT);
96*67e74705SXin Li }
97*67e74705SXin Li 
test_mm_rsqrt28_ss(__m128 a,__m128 b)98*67e74705SXin Li __m128 test_mm_rsqrt28_ss(__m128 a, __m128 b) {
99*67e74705SXin Li   // CHECK-LABEL: @test_mm_rsqrt28_ss
100*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ss
101*67e74705SXin Li   return _mm_rsqrt28_ss(a, b);
102*67e74705SXin Li }
103*67e74705SXin Li 
test_mm_mask_rsqrt28_ss(__m128 s,__mmask16 m,__m128 a,__m128 b)104*67e74705SXin Li __m128 test_mm_mask_rsqrt28_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
105*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rsqrt28_ss
106*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ss
107*67e74705SXin Li   return _mm_mask_rsqrt28_ss(s, m, a, b);
108*67e74705SXin Li }
109*67e74705SXin Li 
test_mm_maskz_rsqrt28_ss(__mmask16 m,__m128 a,__m128 b)110*67e74705SXin Li __m128 test_mm_maskz_rsqrt28_ss(__mmask16 m, __m128 a, __m128 b) {
111*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rsqrt28_ss
112*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.ss
113*67e74705SXin Li   return _mm_maskz_rsqrt28_ss(m, a, b);
114*67e74705SXin Li }
115*67e74705SXin Li 
test_mm_rsqrt28_round_sd(__m128d a,__m128d b)116*67e74705SXin Li __m128d test_mm_rsqrt28_round_sd(__m128d a, __m128d b) {
117*67e74705SXin Li   // CHECK-LABEL: @test_mm_rsqrt28_round_sd
118*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.sd
119*67e74705SXin Li   return _mm_rsqrt28_round_sd(a, b, _MM_FROUND_TO_NEAREST_INT);
120*67e74705SXin Li }
121*67e74705SXin Li 
test_mm_mask_rsqrt28_round_sd(__m128d s,__mmask8 m,__m128d a,__m128d b)122*67e74705SXin Li __m128d test_mm_mask_rsqrt28_round_sd(__m128d s, __mmask8 m, __m128d a, __m128d b) {
123*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rsqrt28_round_sd
124*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.sd
125*67e74705SXin Li   return _mm_mask_rsqrt28_round_sd(s, m, a, b, _MM_FROUND_TO_NEAREST_INT);
126*67e74705SXin Li }
127*67e74705SXin Li 
test_mm_maskz_rsqrt28_round_sd(__mmask8 m,__m128d a,__m128d b)128*67e74705SXin Li __m128d test_mm_maskz_rsqrt28_round_sd(__mmask8 m, __m128d a, __m128d b) {
129*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rsqrt28_round_sd
130*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rsqrt28.sd
131*67e74705SXin Li   return _mm_maskz_rsqrt28_round_sd(m, a, b, _MM_FROUND_TO_NEAREST_INT);
132*67e74705SXin Li }
133*67e74705SXin Li 
test_mm512_rcp28_round_pd(__m512d a)134*67e74705SXin Li __m512d test_mm512_rcp28_round_pd(__m512d a) {
135*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rcp28_round_pd
136*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.pd
137*67e74705SXin Li   return _mm512_rcp28_round_pd(a, _MM_FROUND_TO_NEAREST_INT);
138*67e74705SXin Li }
139*67e74705SXin Li 
test_mm512_mask_rcp28_round_pd(__m512d s,__mmask8 m,__m512d a)140*67e74705SXin Li __m512d test_mm512_mask_rcp28_round_pd(__m512d s, __mmask8 m, __m512d a) {
141*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rcp28_round_pd
142*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.pd
143*67e74705SXin Li   return _mm512_mask_rcp28_round_pd(s, m, a, _MM_FROUND_TO_NEAREST_INT);
144*67e74705SXin Li }
145*67e74705SXin Li 
test_mm512_maskz_rcp28_round_pd(__mmask8 m,__m512d a)146*67e74705SXin Li __m512d test_mm512_maskz_rcp28_round_pd(__mmask8 m, __m512d a) {
147*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rcp28_round_pd
148*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.pd
149*67e74705SXin Li   return _mm512_maskz_rcp28_round_pd(m, a, _MM_FROUND_TO_NEAREST_INT);
150*67e74705SXin Li }
151*67e74705SXin Li 
test_mm512_rcp28_pd(__m512d a)152*67e74705SXin Li __m512d test_mm512_rcp28_pd(__m512d a) {
153*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rcp28_pd
154*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.pd
155*67e74705SXin Li   return _mm512_rcp28_pd(a);
156*67e74705SXin Li }
157*67e74705SXin Li 
test_mm512_mask_rcp28_pd(__m512d s,__mmask8 m,__m512d a)158*67e74705SXin Li __m512d test_mm512_mask_rcp28_pd(__m512d s, __mmask8 m, __m512d a) {
159*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rcp28_pd
160*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.pd
161*67e74705SXin Li   return _mm512_mask_rcp28_pd(s, m, a);
162*67e74705SXin Li }
163*67e74705SXin Li 
test_mm512_maskz_rcp28_pd(__mmask8 m,__m512d a)164*67e74705SXin Li __m512d test_mm512_maskz_rcp28_pd(__mmask8 m, __m512d a) {
165*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rcp28_pd
166*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.pd
167*67e74705SXin Li   return _mm512_maskz_rcp28_pd(m, a);
168*67e74705SXin Li }
169*67e74705SXin Li 
test_mm512_rcp28_round_ps(__m512 a)170*67e74705SXin Li __m512 test_mm512_rcp28_round_ps(__m512 a) {
171*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rcp28_round_ps
172*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ps
173*67e74705SXin Li   return _mm512_rcp28_round_ps(a, _MM_FROUND_TO_NEAREST_INT);
174*67e74705SXin Li }
175*67e74705SXin Li 
test_mm512_mask_rcp28_round_ps(__m512 s,__mmask16 m,__m512 a)176*67e74705SXin Li __m512 test_mm512_mask_rcp28_round_ps(__m512 s, __mmask16 m, __m512 a) {
177*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rcp28_round_ps
178*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ps
179*67e74705SXin Li   return _mm512_mask_rcp28_round_ps(s, m, a, _MM_FROUND_TO_NEAREST_INT);
180*67e74705SXin Li }
181*67e74705SXin Li 
test_mm512_maskz_rcp28_round_ps(__mmask16 m,__m512 a)182*67e74705SXin Li __m512 test_mm512_maskz_rcp28_round_ps(__mmask16 m, __m512 a) {
183*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rcp28_round_ps
184*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ps
185*67e74705SXin Li   return _mm512_maskz_rcp28_round_ps(m, a, _MM_FROUND_TO_NEAREST_INT);
186*67e74705SXin Li }
187*67e74705SXin Li 
test_mm512_rcp28_ps(__m512 a)188*67e74705SXin Li __m512 test_mm512_rcp28_ps(__m512 a) {
189*67e74705SXin Li   // CHECK-LABEL: @test_mm512_rcp28_ps
190*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ps
191*67e74705SXin Li   return _mm512_rcp28_ps(a);
192*67e74705SXin Li }
193*67e74705SXin Li 
test_mm512_mask_rcp28_ps(__m512 s,__mmask16 m,__m512 a)194*67e74705SXin Li __m512 test_mm512_mask_rcp28_ps(__m512 s, __mmask16 m, __m512 a) {
195*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_rcp28_ps
196*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ps
197*67e74705SXin Li   return _mm512_mask_rcp28_ps(s, m, a);
198*67e74705SXin Li }
199*67e74705SXin Li 
test_mm512_maskz_rcp28_ps(__mmask16 m,__m512 a)200*67e74705SXin Li __m512 test_mm512_maskz_rcp28_ps(__mmask16 m, __m512 a) {
201*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_rcp28_ps
202*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ps
203*67e74705SXin Li   return _mm512_maskz_rcp28_ps(m, a);
204*67e74705SXin Li }
205*67e74705SXin Li 
test_mm_rcp28_round_ss(__m128 a,__m128 b)206*67e74705SXin Li __m128 test_mm_rcp28_round_ss(__m128 a, __m128 b) {
207*67e74705SXin Li   // CHECK-LABEL: @test_mm_rcp28_round_ss
208*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ss
209*67e74705SXin Li   return _mm_rcp28_round_ss(a, b, _MM_FROUND_TO_NEAREST_INT);
210*67e74705SXin Li }
211*67e74705SXin Li 
test_mm_mask_rcp28_round_ss(__m128 s,__mmask16 m,__m128 a,__m128 b)212*67e74705SXin Li __m128 test_mm_mask_rcp28_round_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
213*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rcp28_round_ss
214*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ss
215*67e74705SXin Li   return _mm_mask_rcp28_round_ss(s, m, a, b, _MM_FROUND_TO_NEAREST_INT);
216*67e74705SXin Li }
217*67e74705SXin Li 
test_mm_maskz_rcp28_round_ss(__mmask16 m,__m128 a,__m128 b)218*67e74705SXin Li __m128 test_mm_maskz_rcp28_round_ss(__mmask16 m, __m128 a, __m128 b) {
219*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rcp28_round_ss
220*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ss
221*67e74705SXin Li   return _mm_maskz_rcp28_round_ss(m, a, b, _MM_FROUND_TO_NEAREST_INT);
222*67e74705SXin Li }
223*67e74705SXin Li 
test_mm_rcp28_ss(__m128 a,__m128 b)224*67e74705SXin Li __m128 test_mm_rcp28_ss(__m128 a, __m128 b) {
225*67e74705SXin Li   // CHECK-LABEL: @test_mm_rcp28_ss
226*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ss
227*67e74705SXin Li   return _mm_rcp28_ss(a, b);
228*67e74705SXin Li }
229*67e74705SXin Li 
test_mm_mask_rcp28_ss(__m128 s,__mmask16 m,__m128 a,__m128 b)230*67e74705SXin Li __m128 test_mm_mask_rcp28_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
231*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rcp28_ss
232*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ss
233*67e74705SXin Li   return _mm_mask_rcp28_ss(s, m, a, b);
234*67e74705SXin Li }
235*67e74705SXin Li 
test_mm_maskz_rcp28_ss(__mmask16 m,__m128 a,__m128 b)236*67e74705SXin Li __m128 test_mm_maskz_rcp28_ss(__mmask16 m, __m128 a, __m128 b) {
237*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rcp28_ss
238*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.ss
239*67e74705SXin Li   return _mm_maskz_rcp28_ss(m, a, b);
240*67e74705SXin Li }
241*67e74705SXin Li 
test_mm_rcp28_round_sd(__m128d a,__m128d b)242*67e74705SXin Li __m128d test_mm_rcp28_round_sd(__m128d a, __m128d b) {
243*67e74705SXin Li   // CHECK-LABEL: @test_mm_rcp28_round_sd
244*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.sd
245*67e74705SXin Li   return _mm_rcp28_round_sd(a, b, _MM_FROUND_TO_NEAREST_INT);
246*67e74705SXin Li }
247*67e74705SXin Li 
test_mm_mask_rcp28_round_sd(__m128d s,__mmask8 m,__m128d a,__m128d b)248*67e74705SXin Li __m128d test_mm_mask_rcp28_round_sd(__m128d s, __mmask8 m, __m128d a, __m128d b) {
249*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rcp28_round_sd
250*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.sd
251*67e74705SXin Li   return _mm_mask_rcp28_round_sd(s, m, a, b, _MM_FROUND_TO_NEAREST_INT);
252*67e74705SXin Li }
253*67e74705SXin Li 
test_mm_maskz_rcp28_round_sd(__mmask8 m,__m128d a,__m128d b)254*67e74705SXin Li __m128d test_mm_maskz_rcp28_round_sd(__mmask8 m, __m128d a, __m128d b) {
255*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rcp28_round_sd
256*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.sd
257*67e74705SXin Li   return _mm_maskz_rcp28_round_sd(m, a, b, _MM_FROUND_TO_NEAREST_INT);
258*67e74705SXin Li }
259*67e74705SXin Li 
test_mm_rcp28_sd(__m128d a,__m128d b)260*67e74705SXin Li __m128d test_mm_rcp28_sd(__m128d a, __m128d b) {
261*67e74705SXin Li   // CHECK-LABEL: @test_mm_rcp28_sd
262*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.sd
263*67e74705SXin Li   return _mm_rcp28_sd(a, b);
264*67e74705SXin Li }
265*67e74705SXin Li 
test_mm_mask_rcp28_sd(__m128d s,__mmask8 m,__m128d a,__m128d b)266*67e74705SXin Li __m128d test_mm_mask_rcp28_sd(__m128d s, __mmask8 m, __m128d a, __m128d b) {
267*67e74705SXin Li   // CHECK-LABEL: @test_mm_mask_rcp28_sd
268*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.sd
269*67e74705SXin Li   return _mm_mask_rcp28_sd(s, m, a, b);
270*67e74705SXin Li }
271*67e74705SXin Li 
test_mm_maskz_rcp28_sd(__mmask8 m,__m128d a,__m128d b)272*67e74705SXin Li __m128d test_mm_maskz_rcp28_sd(__mmask8 m, __m128d a, __m128d b) {
273*67e74705SXin Li   // CHECK-LABEL: @test_mm_maskz_rcp28_sd
274*67e74705SXin Li   // CHECK: @llvm.x86.avx512.rcp28.sd
275*67e74705SXin Li   return _mm_maskz_rcp28_sd(m, a, b);
276*67e74705SXin Li }
277*67e74705SXin Li 
test_mm512_exp2a23_round_pd(__m512d a)278*67e74705SXin Li __m512d test_mm512_exp2a23_round_pd(__m512d a) {
279*67e74705SXin Li   // CHECK-LABEL: @test_mm512_exp2a23_round_pd
280*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.pd
281*67e74705SXin Li   return _mm512_exp2a23_round_pd(a, _MM_FROUND_TO_NEAREST_INT);
282*67e74705SXin Li }
283*67e74705SXin Li 
test_mm512_mask_exp2a23_round_pd(__m512d s,__mmask8 m,__m512d a)284*67e74705SXin Li __m512d test_mm512_mask_exp2a23_round_pd(__m512d s, __mmask8 m, __m512d a) {
285*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_exp2a23_round_pd
286*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.pd
287*67e74705SXin Li   return _mm512_mask_exp2a23_round_pd(s, m, a, _MM_FROUND_TO_NEAREST_INT);
288*67e74705SXin Li }
289*67e74705SXin Li 
test_mm512_maskz_exp2a23_round_pd(__mmask8 m,__m512d a)290*67e74705SXin Li __m512d test_mm512_maskz_exp2a23_round_pd(__mmask8 m, __m512d a) {
291*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_exp2a23_round_pd
292*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.pd
293*67e74705SXin Li   return _mm512_maskz_exp2a23_round_pd(m, a, _MM_FROUND_TO_NEAREST_INT);
294*67e74705SXin Li }
295*67e74705SXin Li 
test_mm512_exp2a23_pd(__m512d a)296*67e74705SXin Li __m512d test_mm512_exp2a23_pd(__m512d a) {
297*67e74705SXin Li   // CHECK-LABEL: @test_mm512_exp2a23_pd
298*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.pd
299*67e74705SXin Li   return _mm512_exp2a23_pd(a);
300*67e74705SXin Li }
301*67e74705SXin Li 
test_mm512_mask_exp2a23_pd(__m512d s,__mmask8 m,__m512d a)302*67e74705SXin Li __m512d test_mm512_mask_exp2a23_pd(__m512d s, __mmask8 m, __m512d a) {
303*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_exp2a23_pd
304*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.pd
305*67e74705SXin Li   return _mm512_mask_exp2a23_pd(s, m, a);
306*67e74705SXin Li }
307*67e74705SXin Li 
test_mm512_maskz_exp2a23_pd(__mmask8 m,__m512d a)308*67e74705SXin Li __m512d test_mm512_maskz_exp2a23_pd(__mmask8 m, __m512d a) {
309*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_exp2a23_pd
310*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.pd
311*67e74705SXin Li   return _mm512_maskz_exp2a23_pd(m, a);
312*67e74705SXin Li }
313*67e74705SXin Li 
test_mm512_exp2a23_round_ps(__m512 a)314*67e74705SXin Li __m512 test_mm512_exp2a23_round_ps(__m512 a) {
315*67e74705SXin Li   // CHECK-LABEL: @test_mm512_exp2a23_round_ps
316*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.ps
317*67e74705SXin Li   return _mm512_exp2a23_round_ps(a, _MM_FROUND_TO_NEAREST_INT);
318*67e74705SXin Li }
319*67e74705SXin Li 
test_mm512_mask_exp2a23_round_ps(__m512 s,__mmask16 m,__m512 a)320*67e74705SXin Li __m512 test_mm512_mask_exp2a23_round_ps(__m512 s, __mmask16 m, __m512 a) {
321*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_exp2a23_round_ps
322*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.ps
323*67e74705SXin Li   return _mm512_mask_exp2a23_round_ps(s, m, a, _MM_FROUND_TO_NEAREST_INT);
324*67e74705SXin Li }
325*67e74705SXin Li 
test_mm512_maskz_exp2a23_round_ps(__mmask16 m,__m512 a)326*67e74705SXin Li __m512 test_mm512_maskz_exp2a23_round_ps(__mmask16 m, __m512 a) {
327*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_exp2a23_round_ps
328*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.ps
329*67e74705SXin Li   return _mm512_maskz_exp2a23_round_ps(m, a, _MM_FROUND_TO_NEAREST_INT);
330*67e74705SXin Li }
331*67e74705SXin Li 
test_mm512_exp2a23_ps(__m512 a)332*67e74705SXin Li __m512 test_mm512_exp2a23_ps(__m512 a) {
333*67e74705SXin Li   // CHECK-LABEL: @test_mm512_exp2a23_ps
334*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.ps
335*67e74705SXin Li   return _mm512_exp2a23_ps(a);
336*67e74705SXin Li }
337*67e74705SXin Li 
test_mm512_mask_exp2a23_ps(__m512 s,__mmask16 m,__m512 a)338*67e74705SXin Li __m512 test_mm512_mask_exp2a23_ps(__m512 s, __mmask16 m, __m512 a) {
339*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_exp2a23_ps
340*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.ps
341*67e74705SXin Li   return _mm512_mask_exp2a23_ps(s, m, a);
342*67e74705SXin Li }
343*67e74705SXin Li 
test_mm512_maskz_exp2a23_ps(__mmask16 m,__m512 a)344*67e74705SXin Li __m512 test_mm512_maskz_exp2a23_ps(__mmask16 m, __m512 a) {
345*67e74705SXin Li   // CHECK-LABEL: @test_mm512_maskz_exp2a23_ps
346*67e74705SXin Li   // CHECK: @llvm.x86.avx512.exp2.ps
347*67e74705SXin Li   return _mm512_maskz_exp2a23_ps(m, a);
348*67e74705SXin Li }
349*67e74705SXin Li 
350