blob: 084e0f53825c4648021a9479758368f56fbd190e [file] [log] [blame]
Elad Cohenb107a222016-09-28 11:59:09 +00001// RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512er -emit-llvm -o - -Wall -Werror | FileCheck %s
Eric Christophercd875ef2015-10-14 05:40:21 +00002
Craig Toppera5df3982015-02-01 19:56:51 +00003
4#include <immintrin.h>
5
6__m512d test_mm512_rsqrt28_round_pd(__m512d a) {
7 // CHECK-LABEL: @test_mm512_rsqrt28_round_pd
8 // CHECK: @llvm.x86.avx512.rsqrt28.pd
Craig Topper5fbabd72016-09-22 06:13:33 +00009 return _mm512_rsqrt28_round_pd(a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000010}
11
12__m512d test_mm512_mask_rsqrt28_round_pd(__m512d s, __mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +000013 // CHECK-LABEL: @test_mm512_mask_rsqrt28_round_pd
14 // CHECK: @llvm.x86.avx512.rsqrt28.pd
Craig Topper5fbabd72016-09-22 06:13:33 +000015 return _mm512_mask_rsqrt28_round_pd(s, m, a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000016}
17
18__m512d test_mm512_maskz_rsqrt28_round_pd(__mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +000019 // CHECK-LABEL: @test_mm512_maskz_rsqrt28_round_pd
20 // CHECK: @llvm.x86.avx512.rsqrt28.pd
Craig Topper5fbabd72016-09-22 06:13:33 +000021 return _mm512_maskz_rsqrt28_round_pd(m, a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000022}
23
24__m512d test_mm512_rsqrt28_pd(__m512d a) {
25 // CHECK-LABEL: @test_mm512_rsqrt28_pd
26 // CHECK: @llvm.x86.avx512.rsqrt28.pd
27 return _mm512_rsqrt28_pd(a);
28}
29
30__m512d test_mm512_mask_rsqrt28_pd(__m512d s, __mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +000031 // CHECK-LABEL: @test_mm512_mask_rsqrt28_pd
32 // CHECK: @llvm.x86.avx512.rsqrt28.pd
Craig Toppera5df3982015-02-01 19:56:51 +000033 return _mm512_mask_rsqrt28_pd(s, m, a);
34}
35
36__m512d test_mm512_maskz_rsqrt28_pd(__mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +000037 // CHECK-LABEL: @test_mm512_maskz_rsqrt28_pd
38 // CHECK: @llvm.x86.avx512.rsqrt28.pd
Craig Toppera5df3982015-02-01 19:56:51 +000039 return _mm512_maskz_rsqrt28_pd(m, a);
40}
41
42__m512 test_mm512_rsqrt28_round_ps(__m512 a) {
43 // CHECK-LABEL: @test_mm512_rsqrt28_round_ps
44 // CHECK: @llvm.x86.avx512.rsqrt28.ps
Craig Topper5fbabd72016-09-22 06:13:33 +000045 return _mm512_rsqrt28_round_ps(a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000046}
47
48__m512 test_mm512_mask_rsqrt28_round_ps(__m512 s, __mmask16 m, __m512 a) {
49 // CHECK-LABEL: @test_mm512_mask_rsqrt28_round_ps
50 // CHECK: @llvm.x86.avx512.rsqrt28.ps
Craig Topper5fbabd72016-09-22 06:13:33 +000051 return _mm512_mask_rsqrt28_round_ps(s, m, a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000052}
53
54__m512 test_mm512_maskz_rsqrt28_round_ps(__mmask16 m, __m512 a) {
55 // CHECK-LABEL: @test_mm512_maskz_rsqrt28_round_ps
56 // CHECK: @llvm.x86.avx512.rsqrt28.ps
Craig Topper5fbabd72016-09-22 06:13:33 +000057 return _mm512_maskz_rsqrt28_round_ps(m, a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000058}
59
60__m512 test_mm512_rsqrt28_ps(__m512 a) {
61 // CHECK-LABEL: @test_mm512_rsqrt28_ps
62 // CHECK: @llvm.x86.avx512.rsqrt28.ps
63 return _mm512_rsqrt28_ps(a);
64}
65
66__m512 test_mm512_mask_rsqrt28_ps(__m512 s, __mmask16 m, __m512 a) {
67 // CHECK-LABEL: @test_mm512_mask_rsqrt28_ps
68 // CHECK: @llvm.x86.avx512.rsqrt28.ps
69 return _mm512_mask_rsqrt28_ps(s, m, a);
70}
71
72__m512 test_mm512_maskz_rsqrt28_ps(__mmask16 m, __m512 a) {
73 // CHECK-LABEL: @test_mm512_maskz_rsqrt28_ps
74 // CHECK: @llvm.x86.avx512.rsqrt28.ps
75 return _mm512_maskz_rsqrt28_ps(m, a);
76}
77
78__m128 test_mm_rsqrt28_round_ss(__m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +000079 // CHECK-LABEL: @test_mm_rsqrt28_round_ss
80 // CHECK: @llvm.x86.avx512.rsqrt28.ss
Craig Topper5fbabd72016-09-22 06:13:33 +000081 return _mm_rsqrt28_round_ss(a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000082}
83
84__m128 test_mm_mask_rsqrt28_round_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +000085 // CHECK-LABEL: @test_mm_mask_rsqrt28_round_ss
86 // CHECK: @llvm.x86.avx512.rsqrt28.ss
Craig Topper5fbabd72016-09-22 06:13:33 +000087 return _mm_mask_rsqrt28_round_ss(s, m, a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000088}
89
90__m128 test_mm_maskz_rsqrt28_round_ss(__mmask16 m, __m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +000091 // CHECK-LABEL: @test_mm_maskz_rsqrt28_round_ss
92 // CHECK: @llvm.x86.avx512.rsqrt28.ss
Craig Topper5fbabd72016-09-22 06:13:33 +000093 return _mm_maskz_rsqrt28_round_ss(m, a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +000094}
95
96__m128 test_mm_rsqrt28_ss(__m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +000097 // CHECK-LABEL: @test_mm_rsqrt28_ss
98 // CHECK: @llvm.x86.avx512.rsqrt28.ss
Craig Toppera5df3982015-02-01 19:56:51 +000099 return _mm_rsqrt28_ss(a, b);
100}
101
102__m128 test_mm_mask_rsqrt28_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000103 // CHECK-LABEL: @test_mm_mask_rsqrt28_ss
104 // CHECK: @llvm.x86.avx512.rsqrt28.ss
Craig Toppera5df3982015-02-01 19:56:51 +0000105 return _mm_mask_rsqrt28_ss(s, m, a, b);
106}
107
108__m128 test_mm_maskz_rsqrt28_ss(__mmask16 m, __m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000109 // CHECK-LABEL: @test_mm_maskz_rsqrt28_ss
110 // CHECK: @llvm.x86.avx512.rsqrt28.ss
Craig Toppera5df3982015-02-01 19:56:51 +0000111 return _mm_maskz_rsqrt28_ss(m, a, b);
112}
113
114__m128d test_mm_rsqrt28_round_sd(__m128d a, __m128d b) {
115 // CHECK-LABEL: @test_mm_rsqrt28_round_sd
116 // CHECK: @llvm.x86.avx512.rsqrt28.sd
Craig Topper5fbabd72016-09-22 06:13:33 +0000117 return _mm_rsqrt28_round_sd(a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000118}
119
120__m128d test_mm_mask_rsqrt28_round_sd(__m128d s, __mmask8 m, __m128d a, __m128d b) {
121 // CHECK-LABEL: @test_mm_mask_rsqrt28_round_sd
122 // CHECK: @llvm.x86.avx512.rsqrt28.sd
Craig Topper5fbabd72016-09-22 06:13:33 +0000123 return _mm_mask_rsqrt28_round_sd(s, m, a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000124}
125
126__m128d test_mm_maskz_rsqrt28_round_sd(__mmask8 m, __m128d a, __m128d b) {
127 // CHECK-LABEL: @test_mm_maskz_rsqrt28_round_sd
128 // CHECK: @llvm.x86.avx512.rsqrt28.sd
Craig Topper5fbabd72016-09-22 06:13:33 +0000129 return _mm_maskz_rsqrt28_round_sd(m, a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000130}
131
132__m512d test_mm512_rcp28_round_pd(__m512d a) {
133 // CHECK-LABEL: @test_mm512_rcp28_round_pd
134 // CHECK: @llvm.x86.avx512.rcp28.pd
Craig Topper5fbabd72016-09-22 06:13:33 +0000135 return _mm512_rcp28_round_pd(a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000136}
137
138__m512d test_mm512_mask_rcp28_round_pd(__m512d s, __mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000139 // CHECK-LABEL: @test_mm512_mask_rcp28_round_pd
140 // CHECK: @llvm.x86.avx512.rcp28.pd
Craig Topper5fbabd72016-09-22 06:13:33 +0000141 return _mm512_mask_rcp28_round_pd(s, m, a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000142}
143
144__m512d test_mm512_maskz_rcp28_round_pd(__mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000145 // CHECK-LABEL: @test_mm512_maskz_rcp28_round_pd
146 // CHECK: @llvm.x86.avx512.rcp28.pd
Craig Topper5fbabd72016-09-22 06:13:33 +0000147 return _mm512_maskz_rcp28_round_pd(m, a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000148}
149
150__m512d test_mm512_rcp28_pd(__m512d a) {
151 // CHECK-LABEL: @test_mm512_rcp28_pd
152 // CHECK: @llvm.x86.avx512.rcp28.pd
153 return _mm512_rcp28_pd(a);
154}
155
156__m512d test_mm512_mask_rcp28_pd(__m512d s, __mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000157 // CHECK-LABEL: @test_mm512_mask_rcp28_pd
158 // CHECK: @llvm.x86.avx512.rcp28.pd
Craig Toppera5df3982015-02-01 19:56:51 +0000159 return _mm512_mask_rcp28_pd(s, m, a);
160}
161
162__m512d test_mm512_maskz_rcp28_pd(__mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000163 // CHECK-LABEL: @test_mm512_maskz_rcp28_pd
164 // CHECK: @llvm.x86.avx512.rcp28.pd
Craig Toppera5df3982015-02-01 19:56:51 +0000165 return _mm512_maskz_rcp28_pd(m, a);
166}
167
168__m512 test_mm512_rcp28_round_ps(__m512 a) {
169 // CHECK-LABEL: @test_mm512_rcp28_round_ps
170 // CHECK: @llvm.x86.avx512.rcp28.ps
Craig Topper5fbabd72016-09-22 06:13:33 +0000171 return _mm512_rcp28_round_ps(a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000172}
173
174__m512 test_mm512_mask_rcp28_round_ps(__m512 s, __mmask16 m, __m512 a) {
175 // CHECK-LABEL: @test_mm512_mask_rcp28_round_ps
176 // CHECK: @llvm.x86.avx512.rcp28.ps
Craig Topper5fbabd72016-09-22 06:13:33 +0000177 return _mm512_mask_rcp28_round_ps(s, m, a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000178}
179
180__m512 test_mm512_maskz_rcp28_round_ps(__mmask16 m, __m512 a) {
181 // CHECK-LABEL: @test_mm512_maskz_rcp28_round_ps
182 // CHECK: @llvm.x86.avx512.rcp28.ps
Craig Topper5fbabd72016-09-22 06:13:33 +0000183 return _mm512_maskz_rcp28_round_ps(m, a, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000184}
185
186__m512 test_mm512_rcp28_ps(__m512 a) {
187 // CHECK-LABEL: @test_mm512_rcp28_ps
188 // CHECK: @llvm.x86.avx512.rcp28.ps
189 return _mm512_rcp28_ps(a);
190}
191
192__m512 test_mm512_mask_rcp28_ps(__m512 s, __mmask16 m, __m512 a) {
193 // CHECK-LABEL: @test_mm512_mask_rcp28_ps
194 // CHECK: @llvm.x86.avx512.rcp28.ps
195 return _mm512_mask_rcp28_ps(s, m, a);
196}
197
198__m512 test_mm512_maskz_rcp28_ps(__mmask16 m, __m512 a) {
199 // CHECK-LABEL: @test_mm512_maskz_rcp28_ps
200 // CHECK: @llvm.x86.avx512.rcp28.ps
201 return _mm512_maskz_rcp28_ps(m, a);
202}
203
204__m128 test_mm_rcp28_round_ss(__m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000205 // CHECK-LABEL: @test_mm_rcp28_round_ss
206 // CHECK: @llvm.x86.avx512.rcp28.ss
Craig Topper5fbabd72016-09-22 06:13:33 +0000207 return _mm_rcp28_round_ss(a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000208}
209
210__m128 test_mm_mask_rcp28_round_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000211 // CHECK-LABEL: @test_mm_mask_rcp28_round_ss
212 // CHECK: @llvm.x86.avx512.rcp28.ss
Craig Topper5fbabd72016-09-22 06:13:33 +0000213 return _mm_mask_rcp28_round_ss(s, m, a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000214}
215
216__m128 test_mm_maskz_rcp28_round_ss(__mmask16 m, __m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000217 // CHECK-LABEL: @test_mm_maskz_rcp28_round_ss
218 // CHECK: @llvm.x86.avx512.rcp28.ss
Craig Topper5fbabd72016-09-22 06:13:33 +0000219 return _mm_maskz_rcp28_round_ss(m, a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000220}
221
222__m128 test_mm_rcp28_ss(__m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000223 // CHECK-LABEL: @test_mm_rcp28_ss
224 // CHECK: @llvm.x86.avx512.rcp28.ss
Craig Toppera5df3982015-02-01 19:56:51 +0000225 return _mm_rcp28_ss(a, b);
226}
227
228__m128 test_mm_mask_rcp28_ss(__m128 s, __mmask16 m, __m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000229 // CHECK-LABEL: @test_mm_mask_rcp28_ss
230 // CHECK: @llvm.x86.avx512.rcp28.ss
Craig Toppera5df3982015-02-01 19:56:51 +0000231 return _mm_mask_rcp28_ss(s, m, a, b);
232}
233
234__m128 test_mm_maskz_rcp28_ss(__mmask16 m, __m128 a, __m128 b) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000235 // CHECK-LABEL: @test_mm_maskz_rcp28_ss
236 // CHECK: @llvm.x86.avx512.rcp28.ss
Craig Toppera5df3982015-02-01 19:56:51 +0000237 return _mm_maskz_rcp28_ss(m, a, b);
238}
239
240__m128d test_mm_rcp28_round_sd(__m128d a, __m128d b) {
241 // CHECK-LABEL: @test_mm_rcp28_round_sd
242 // CHECK: @llvm.x86.avx512.rcp28.sd
Craig Topper5fbabd72016-09-22 06:13:33 +0000243 return _mm_rcp28_round_sd(a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000244}
245
246__m128d test_mm_mask_rcp28_round_sd(__m128d s, __mmask8 m, __m128d a, __m128d b) {
247 // CHECK-LABEL: @test_mm_mask_rcp28_round_sd
248 // CHECK: @llvm.x86.avx512.rcp28.sd
Craig Topper5fbabd72016-09-22 06:13:33 +0000249 return _mm_mask_rcp28_round_sd(s, m, a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000250}
251
252__m128d test_mm_maskz_rcp28_round_sd(__mmask8 m, __m128d a, __m128d b) {
253 // CHECK-LABEL: @test_mm_maskz_rcp28_round_sd
254 // CHECK: @llvm.x86.avx512.rcp28.sd
Craig Topper5fbabd72016-09-22 06:13:33 +0000255 return _mm_maskz_rcp28_round_sd(m, a, b, _MM_FROUND_CUR_DIRECTION);
Craig Toppera5df3982015-02-01 19:56:51 +0000256}
257
258__m128d test_mm_rcp28_sd(__m128d a, __m128d b) {
259 // CHECK-LABEL: @test_mm_rcp28_sd
260 // CHECK: @llvm.x86.avx512.rcp28.sd
261 return _mm_rcp28_sd(a, b);
262}
263
264__m128d test_mm_mask_rcp28_sd(__m128d s, __mmask8 m, __m128d a, __m128d b) {
265 // CHECK-LABEL: @test_mm_mask_rcp28_sd
266 // CHECK: @llvm.x86.avx512.rcp28.sd
267 return _mm_mask_rcp28_sd(s, m, a, b);
268}
269
270__m128d test_mm_maskz_rcp28_sd(__mmask8 m, __m128d a, __m128d b) {
271 // CHECK-LABEL: @test_mm_maskz_rcp28_sd
272 // CHECK: @llvm.x86.avx512.rcp28.sd
273 return _mm_maskz_rcp28_sd(m, a, b);
274}
Craig Topper2a898bf2015-02-01 21:34:11 +0000275
276__m512d test_mm512_exp2a23_round_pd(__m512d a) {
277 // CHECK-LABEL: @test_mm512_exp2a23_round_pd
278 // CHECK: @llvm.x86.avx512.exp2.pd
Craig Topper5fbabd72016-09-22 06:13:33 +0000279 return _mm512_exp2a23_round_pd(a, _MM_FROUND_CUR_DIRECTION);
Craig Topper2a898bf2015-02-01 21:34:11 +0000280}
281
282__m512d test_mm512_mask_exp2a23_round_pd(__m512d s, __mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000283 // CHECK-LABEL: @test_mm512_mask_exp2a23_round_pd
284 // CHECK: @llvm.x86.avx512.exp2.pd
Craig Topper5fbabd72016-09-22 06:13:33 +0000285 return _mm512_mask_exp2a23_round_pd(s, m, a, _MM_FROUND_CUR_DIRECTION);
Craig Topper2a898bf2015-02-01 21:34:11 +0000286}
287
288__m512d test_mm512_maskz_exp2a23_round_pd(__mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000289 // CHECK-LABEL: @test_mm512_maskz_exp2a23_round_pd
290 // CHECK: @llvm.x86.avx512.exp2.pd
Craig Topper5fbabd72016-09-22 06:13:33 +0000291 return _mm512_maskz_exp2a23_round_pd(m, a, _MM_FROUND_CUR_DIRECTION);
Craig Topper2a898bf2015-02-01 21:34:11 +0000292}
293
294__m512d test_mm512_exp2a23_pd(__m512d a) {
295 // CHECK-LABEL: @test_mm512_exp2a23_pd
296 // CHECK: @llvm.x86.avx512.exp2.pd
297 return _mm512_exp2a23_pd(a);
298}
299
300__m512d test_mm512_mask_exp2a23_pd(__m512d s, __mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000301 // CHECK-LABEL: @test_mm512_mask_exp2a23_pd
302 // CHECK: @llvm.x86.avx512.exp2.pd
Craig Topper2a898bf2015-02-01 21:34:11 +0000303 return _mm512_mask_exp2a23_pd(s, m, a);
304}
305
306__m512d test_mm512_maskz_exp2a23_pd(__mmask8 m, __m512d a) {
Chad Rosier0df679e2015-12-17 18:54:42 +0000307 // CHECK-LABEL: @test_mm512_maskz_exp2a23_pd
308 // CHECK: @llvm.x86.avx512.exp2.pd
Craig Topper2a898bf2015-02-01 21:34:11 +0000309 return _mm512_maskz_exp2a23_pd(m, a);
310}
311
312__m512 test_mm512_exp2a23_round_ps(__m512 a) {
313 // CHECK-LABEL: @test_mm512_exp2a23_round_ps
314 // CHECK: @llvm.x86.avx512.exp2.ps
Craig Topper5fbabd72016-09-22 06:13:33 +0000315 return _mm512_exp2a23_round_ps(a, _MM_FROUND_CUR_DIRECTION);
Craig Topper2a898bf2015-02-01 21:34:11 +0000316}
317
318__m512 test_mm512_mask_exp2a23_round_ps(__m512 s, __mmask16 m, __m512 a) {
319 // CHECK-LABEL: @test_mm512_mask_exp2a23_round_ps
320 // CHECK: @llvm.x86.avx512.exp2.ps
Craig Topper5fbabd72016-09-22 06:13:33 +0000321 return _mm512_mask_exp2a23_round_ps(s, m, a, _MM_FROUND_CUR_DIRECTION);
Craig Topper2a898bf2015-02-01 21:34:11 +0000322}
323
324__m512 test_mm512_maskz_exp2a23_round_ps(__mmask16 m, __m512 a) {
325 // CHECK-LABEL: @test_mm512_maskz_exp2a23_round_ps
326 // CHECK: @llvm.x86.avx512.exp2.ps
Craig Topper5fbabd72016-09-22 06:13:33 +0000327 return _mm512_maskz_exp2a23_round_ps(m, a, _MM_FROUND_CUR_DIRECTION);
Craig Topper2a898bf2015-02-01 21:34:11 +0000328}
329
330__m512 test_mm512_exp2a23_ps(__m512 a) {
331 // CHECK-LABEL: @test_mm512_exp2a23_ps
332 // CHECK: @llvm.x86.avx512.exp2.ps
333 return _mm512_exp2a23_ps(a);
334}
335
336__m512 test_mm512_mask_exp2a23_ps(__m512 s, __mmask16 m, __m512 a) {
337 // CHECK-LABEL: @test_mm512_mask_exp2a23_ps
338 // CHECK: @llvm.x86.avx512.exp2.ps
339 return _mm512_mask_exp2a23_ps(s, m, a);
340}
341
342__m512 test_mm512_maskz_exp2a23_ps(__mmask16 m, __m512 a) {
343 // CHECK-LABEL: @test_mm512_maskz_exp2a23_ps
344 // CHECK: @llvm.x86.avx512.exp2.ps
345 return _mm512_maskz_exp2a23_ps(m, a);
346}
347