clang 20.0.0git
avx10_2satcvtdsintrin.h
Go to the documentation of this file.
1/*===----------- avx10_2satcvtdsintrin.h - AVX512SATCVTDS intrinsics --------===
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9
10#ifndef __IMMINTRIN_H
11#error \
12 "Never use <avx10_2satcvtdsintrin.h> directly; include <immintrin.h> instead."
13#endif // __IMMINTRIN_H
14
15#ifndef __AVX10_2SATCVTDSINTRIN_H
16#define __AVX10_2SATCVTDSINTRIN_H
17
18/* Define the default attributes for the functions in this file. */
19#define __DEFAULT_FN_ATTRS256 \
20 __attribute__((__always_inline__, __nodebug__, __target__("avx10.2-256"), \
21 __min_vector_width__(256)))
22
23#define __DEFAULT_FN_ATTRS128 \
24 __attribute__((__always_inline__, __nodebug__, __target__("avx10.2-256"), \
25 __min_vector_width__(128)))
26
27#define _mm_cvtts_roundsd_i32(__A, __R) \
28 ((int)__builtin_ia32_vcvttsd2sis32((__v2df)(__m128)(__A), (const int)(__R)))
29
30#define _mm_cvtts_roundsd_si32(__A, __R) \
31 ((int)__builtin_ia32_vcvttsd2sis32((__v2df)(__m128d)(__A), (const int)(__R)))
32
33#define _mm_cvtts_roundsd_u32(__A, __R) \
34 ((unsigned int)__builtin_ia32_vcvttsd2usis32((__v2df)(__m128d)(__A), \
35 (const int)(__R)))
36
37#define _mm_cvtts_roundss_i32(__A, __R) \
38 ((int)__builtin_ia32_vcvttss2sis32((__v4sf)(__m128)(__A), (const int)(__R)))
39
40#define _mm_cvtts_roundss_si32(__A, __R) \
41 ((int)__builtin_ia32_vcvttss2sis32((__v4sf)(__m128)(__A), (const int)(__R)))
42
43#define _mm_cvtts_roundss_u32(__A, __R) \
44 ((unsigned int)__builtin_ia32_vcvttss2usis32((__v4sf)(__m128)(__A), \
45 (const int)(__R)))
46
47#ifdef __x86_64__
48#define _mm_cvtts_roundss_u64(__A, __R) \
49 ((unsigned long long)__builtin_ia32_vcvttss2usis64((__v4sf)(__m128)(__A), \
50 (const int)(__R)))
51
52#define _mm_cvtts_roundsd_u64(__A, __R) \
53 ((unsigned long long)__builtin_ia32_vcvttsd2usis64((__v2df)(__m128d)(__A), \
54 (const int)(__R)))
55
56#define _mm_cvtts_roundss_i64(__A, __R) \
57 ((long long)__builtin_ia32_vcvttss2sis64((__v4sf)(__m128)(__A), \
58 (const int)(__R)))
59
60#define _mm_cvtts_roundss_si64(__A, __R) \
61 ((long long)__builtin_ia32_vcvttss2sis64((__v4sf)(__m128)(__A), \
62 (const int)(__R)))
63
64#define _mm_cvtts_roundsd_si64(__A, __R) \
65 ((long long)__builtin_ia32_vcvttsd2sis64((__v2df)(__m128d)(__A), \
66 (const int)(__R)))
67
68#define _mm_cvtts_roundsd_i64(__A, __R) \
69 ((long long)__builtin_ia32_vcvttsd2sis64((__v2df)(__m128d)(__A), \
70 (const int)(__R)))
71#endif /* __x86_64__ */
72
73// 128 Bit : Double -> int
74static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttspd_epi32(__m128d __A) {
75 return ((__m128i)__builtin_ia32_vcvttpd2dqs128_mask(
76 (__v2df)__A, (__v4si)(__m128i)_mm_undefined_si128(), (__mmask8)(-1)));
77}
78
79static __inline__ __m128i __DEFAULT_FN_ATTRS128
80_mm_mask_cvttspd_epi32(__m128i __W, __mmask8 __U, __m128d __A) {
81 return ((__m128i)__builtin_ia32_vcvttpd2dqs128_mask((__v2df)__A, (__v4si)__W,
82 __U));
83}
84
85static __inline__ __m128i __DEFAULT_FN_ATTRS128
87 return ((__m128i)__builtin_ia32_vcvttpd2dqs128_mask(
88 (__v2df)__A, (__v4si)(__m128i)_mm_setzero_si128(), __U));
89}
90
91// 256 Bit : Double -> int
92static __inline__ __m128i __DEFAULT_FN_ATTRS256
94 return ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask(
95 (__v4df)__A, (__v4si)_mm_undefined_si128(), (__mmask8)-1,
97}
98
99static __inline__ __m128i __DEFAULT_FN_ATTRS256
100_mm256_mask_cvttspd_epi32(__m128i __W, __mmask8 __U, __m256d __A) {
101 return ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask(
102 (__v4df)__A, (__v4si)__W, __U, _MM_FROUND_CUR_DIRECTION));
103}
104
105static __inline__ __m128i __DEFAULT_FN_ATTRS256
107 return ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask(
108 (__v4df)__A, (__v4si)_mm_setzero_si128(), __U, _MM_FROUND_CUR_DIRECTION));
109}
110
111#define _mm256_cvtts_roundpd_epi32(__A, __R) \
112 ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask( \
113 (__v4df)(__m256d)__A, (__v4si)(__m128i)_mm_undefined_si128(), \
114 (__mmask8) - 1, (int)(__R)))
115
116#define _mm256_mask_cvtts_roundpd_epi32(__W, __U, __A, __R) \
117 ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask( \
118 (__v4df)(__m256d)__A, (__v4si)(__m128i)__W, (__mmask8)__U, (int)(__R)))
119
120#define _mm256_maskz_cvtts_roundpd_epi32(__U, __A, __R) \
121 ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask( \
122 (__v4df)(__m256d)__A, (__v4si)(__m128i)_mm_setzero_si128(), \
123 (__mmask8)__U, (int)(__R)))
124
125// 128 Bit : Double -> uint
126static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttspd_epu32(__m128d __A) {
127 return ((__m128i)__builtin_ia32_vcvttpd2udqs128_mask(
128 (__v2df)__A, (__v4si)(__m128i)_mm_undefined_si128(), (__mmask8)(-1)));
129}
130
131static __inline__ __m128i __DEFAULT_FN_ATTRS128
132_mm_mask_cvttspd_epu32(__m128i __W, __mmask8 __U, __m128d __A) {
133 return ((__m128i)__builtin_ia32_vcvttpd2udqs128_mask(
134 (__v2df)__A, (__v4si)(__m128i)__W, (__mmask8)__U));
135}
136
137static __inline__ __m128i __DEFAULT_FN_ATTRS128
139 return ((__m128i)__builtin_ia32_vcvttpd2udqs128_mask(
140 (__v2df)__A, (__v4si)(__m128i)_mm_setzero_si128(), __U));
141}
142
143// 256 Bit : Double -> uint
144static __inline__ __m128i __DEFAULT_FN_ATTRS256
146 return ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask(
147 (__v4df)__A, (__v4si)_mm_undefined_si128(), (__mmask8)-1,
149}
150
151static __inline__ __m128i __DEFAULT_FN_ATTRS256
152_mm256_mask_cvttspd_epu32(__m128i __W, __mmask8 __U, __m256d __A) {
153 return ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask(
154 (__v4df)__A, (__v4si)__W, __U, _MM_FROUND_CUR_DIRECTION));
155}
156
157static __inline__ __m128i __DEFAULT_FN_ATTRS256
159 return ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask(
160 (__v4df)__A, (__v4si)_mm_setzero_si128(), __U, _MM_FROUND_CUR_DIRECTION));
161}
162
163#define _mm256_cvtts_roundpd_epu32(__A, __R) \
164 ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask( \
165 (__v4df)(__m256d)__A, (__v4si)(__m128i)_mm_undefined_si128(), \
166 (__mmask8) - 1, (int)(__R)))
167
168#define _mm256_mask_cvtts_roundpd_epu32(__W, __U, __A, __R) \
169 ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask( \
170 (__v4df)(__m256d)__A, (__v4si)(__m128i)__W, (__mmask8)__U, (int)(__R)))
171
172#define _mm256_maskz_cvtts_roundpd_epu32(__U, __A, __R) \
173 ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask( \
174 (__v4df)(__m256d)__A, (__v4si)(__m128i)_mm_setzero_si128(), \
175 (__mmask8)__U, (int)(__R)))
176
177// 128 Bit : Double -> long
178static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttspd_epi64(__m128d __A) {
179 return ((__m128i)__builtin_ia32_vcvttpd2qqs128_mask(
180 (__v2df)__A, (__v2di)_mm_undefined_si128(), (__mmask8)-1));
181}
182
183static __inline__ __m128i __DEFAULT_FN_ATTRS128
184_mm_mask_cvttspd_epi64(__m128i __W, __mmask8 __U, __m128d __A) {
185 return ((__m128i)__builtin_ia32_vcvttpd2qqs128_mask((__v2df)__A, (__v2di)__W,
186 (__mmask8)__U));
187}
188
189static __inline__ __m128i __DEFAULT_FN_ATTRS128
191 return ((__m128i)__builtin_ia32_vcvttpd2qqs128_mask(
192 (__v2df)__A, (__v2di)_mm_setzero_si128(), (__mmask8)__U));
193}
194
195// 256 Bit : Double -> long
196static __inline__ __m256i __DEFAULT_FN_ATTRS256
198 return ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask(
199 (__v4df)__A, (__v4di)_mm256_undefined_si256(), (__mmask8)-1,
201}
202
203static __inline__ __m256i __DEFAULT_FN_ATTRS256
204_mm256_mask_cvttspd_epi64(__m256i __W, __mmask8 __U, __m256d __A) {
205 return ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask(
206 (__v4df)__A, (__v4di)__W, __U, _MM_FROUND_CUR_DIRECTION));
207}
208
209static __inline__ __m256i __DEFAULT_FN_ATTRS256
211 return ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask(
212 (__v4df)__A, (__v4di)_mm256_setzero_si256(), __U,
214}
215
216#define _mm256_cvtts_roundpd_epi64(__A, __R) \
217 ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask( \
218 (__v4df)__A, (__v4di)_mm256_undefined_si256(), (__mmask8) - 1, \
219 (int)__R))
220
221#define _mm256_mask_cvtts_roundpd_epi64(__W, __U, __A, __R) \
222 ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask((__v4df)__A, (__v4di)__W, \
223 (__mmask8)__U, (int)__R))
224
225#define _mm256_maskz_cvtts_roundpd_epi64(__U, __A, __R) \
226 ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask( \
227 (__v4df)__A, (__v4di)_mm256_setzero_si256(), (__mmask8)__U, (int)__R))
228
229// 128 Bit : Double -> ulong
230static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttspd_epu64(__m128d __A) {
231 return ((__m128i)__builtin_ia32_vcvttpd2uqqs128_mask(
232 (__v2df)__A, (__v2di)_mm_undefined_si128(), (__mmask8)-1));
233}
234
235static __inline__ __m128i __DEFAULT_FN_ATTRS128
236_mm_mask_cvttspd_epu64(__m128i __W, __mmask8 __U, __m128d __A) {
237 return ((__m128i)__builtin_ia32_vcvttpd2uqqs128_mask((__v2df)__A, (__v2di)__W,
238 (__mmask8)__U));
239}
240
241static __inline__ __m128i __DEFAULT_FN_ATTRS128
243 return ((__m128i)__builtin_ia32_vcvttpd2uqqs128_mask(
244 (__v2df)__A, (__v2di)_mm_setzero_si128(), (__mmask8)__U));
245}
246
247// 256 Bit : Double -> ulong
248
249static __inline__ __m256i __DEFAULT_FN_ATTRS256
251 return ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask(
252 (__v4df)__A, (__v4di)_mm256_undefined_si256(), (__mmask8)-1,
254}
255
256static __inline__ __m256i __DEFAULT_FN_ATTRS256
257_mm256_mask_cvttspd_epu64(__m256i __W, __mmask8 __U, __m256d __A) {
258 return ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask(
259 (__v4df)__A, (__v4di)__W, __U, _MM_FROUND_CUR_DIRECTION));
260}
261
262static __inline__ __m256i __DEFAULT_FN_ATTRS256
264 return ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask(
265 (__v4df)__A, (__v4di)_mm256_setzero_si256(), __U,
267}
268
269#define _mm256_cvtts_roundpd_epu64(__A, __R) \
270 ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask( \
271 (__v4df)__A, (__v4di)_mm256_undefined_si256(), (__mmask8) - 1, \
272 (int)__R))
273
274#define _mm256_mask_cvtts_roundpd_epu64(__W, __U, __A, __R) \
275 ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask( \
276 (__v4df)__A, (__v4di)__W, (__mmask8)__U, (int)__R))
277
278#define _mm256_maskz_cvtts_roundpd_epu64(__U, __A, __R) \
279 ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask( \
280 (__v4df)__A, (__v4di)_mm256_setzero_si256(), (__mmask8)__U, (int)__R))
281
282// 128 Bit : float -> int
283static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttsps_epi32(__m128 __A) {
284 return ((__m128i)__builtin_ia32_vcvttps2dqs128_mask(
285 (__v4sf)__A, (__v4si)(__m128i)_mm_undefined_si128(), (__mmask8)(-1)));
286}
287
288static __inline__ __m128i __DEFAULT_FN_ATTRS128
289_mm_mask_cvttsps_epi32(__m128i __W, __mmask8 __U, __m128 __A) {
290 return ((__m128i)__builtin_ia32_vcvttps2dqs128_mask((__v4sf)__A, (__v4si)__W,
291 (__mmask8)__U));
292}
293
294static __inline__ __m128i __DEFAULT_FN_ATTRS128
296 return ((__m128i)__builtin_ia32_vcvttps2dqs128_mask(
297 (__v4sf)__A, (__v4si)(__m128i)_mm_setzero_si128(), (__mmask8)__U));
298}
299
300// 256 Bit : float -> int
301static __inline__ __m256i __DEFAULT_FN_ATTRS256
303 return ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask(
304 (__v8sf)__A, (__v8si)_mm256_undefined_si256(), (__mmask8)-1,
306}
307
308static __inline__ __m256i __DEFAULT_FN_ATTRS256
309_mm256_mask_cvttsps_epi32(__m256i __W, __mmask8 __U, __m256 __A) {
310 return ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask(
311 (__v8sf)__A, (__v8si)__W, __U, _MM_FROUND_CUR_DIRECTION));
312}
313
314static __inline__ __m256i __DEFAULT_FN_ATTRS256
316 return ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask(
317 (__v8sf)__A, (__v8si)_mm256_setzero_si256(), __U,
319}
320
321#define _mm256_cvtts_roundps_epi32(__A, __R) \
322 ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask( \
323 (__v8sf)(__m256)__A, (__v8si)(__m256i)_mm256_undefined_si256(), \
324 (__mmask8) - 1, (int)(__R)))
325
326#define _mm256_mask_cvtts_roundps_epi32(__W, __U, __A, __R) \
327 ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask( \
328 (__v8sf)(__m256)__A, (__v8si)(__m256i)__W, (__mmask8)__U, (int)(__R)))
329
330#define _mm256_maskz_cvtts_roundps_epi32(__U, __A, __R) \
331 ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask( \
332 (__v8sf)(__m256)__A, (__v8si)(__m256i)_mm256_setzero_si256(), \
333 (__mmask8)__U, (int)(__R)))
334
335// 128 Bit : float -> uint
336static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttsps_epu32(__m128 __A) {
337 return ((__m128i)__builtin_ia32_vcvttps2udqs128_mask(
338 (__v4sf)__A, (__v4si)(__m128i)_mm_undefined_si128(), (__mmask8)(-1)));
339}
340
341static __inline__ __m128i __DEFAULT_FN_ATTRS128
342_mm_mask_cvttsps_epu32(__m128i __W, __mmask8 __U, __m128 __A) {
343 return ((__m128i)__builtin_ia32_vcvttps2udqs128_mask((__v4sf)__A, (__v4si)__W,
344 (__mmask8)__U));
345}
346
347static __inline__ __m128i __DEFAULT_FN_ATTRS128
349 return ((__m128i)__builtin_ia32_vcvttps2udqs128_mask(
350 (__v4sf)__A, (__v4si)_mm_setzero_si128(), (__mmask8)__U));
351}
352
353// 256 Bit : float -> uint
354
355static __inline__ __m256i __DEFAULT_FN_ATTRS256
357 return ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask(
358 (__v8sf)__A, (__v8si)_mm256_undefined_si256(), (__mmask8)-1,
360}
361
362static __inline__ __m256i __DEFAULT_FN_ATTRS256
363_mm256_mask_cvttsps_epu32(__m256i __W, __mmask8 __U, __m256 __A) {
364 return ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask(
365 (__v8sf)__A, (__v8si)__W, __U, _MM_FROUND_CUR_DIRECTION));
366}
367
368static __inline__ __m256i __DEFAULT_FN_ATTRS256
370 return ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask(
371 (__v8sf)__A, (__v8si)_mm256_setzero_si256(), __U,
373}
374
375#define _mm256_cvtts_roundps_epu32(__A, __R) \
376 ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask( \
377 (__v8sf)(__m256)__A, (__v8si)(__m256i)_mm256_undefined_si256(), \
378 (__mmask8) - 1, (int)(__R)))
379
380#define _mm256_mask_cvtts_roundps_epu32(__W, __U, __A, __R) \
381 ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask( \
382 (__v8sf)(__m256)__A, (__v8si)(__m256i)__W, (__mmask8)__U, (int)(__R)))
383
384#define _mm256_maskz_cvtts_roundps_epu32(__U, __A, __R) \
385 ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask( \
386 (__v8sf)(__m256)__A, (__v8si)(__m256i)_mm256_setzero_si256(), \
387 (__mmask8)__U, (int)(__R)))
388
389// 128 bit : float -> long
390static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttsps_epi64(__m128 __A) {
391 return ((__m128i)__builtin_ia32_vcvttps2qqs128_mask(
392 (__v4sf)__A, (__v2di)_mm_undefined_si128(), (__mmask8)-1));
393}
394
395static __inline__ __m128i __DEFAULT_FN_ATTRS128
396_mm_mask_cvttsps_epi64(__m128i __W, __mmask8 __U, __m128 __A) {
397 return ((__m128i)__builtin_ia32_vcvttps2qqs128_mask(
398 (__v4sf)__A, (__v2di)(__m128i)__W, (__mmask8)__U));
399}
400
401static __inline__ __m128i __DEFAULT_FN_ATTRS128
403 return ((__m128i)__builtin_ia32_vcvttps2qqs128_mask(
404 (__v4sf)__A, (__v2di)_mm_setzero_si128(), (__mmask8)__U));
405}
406// 256 bit : float -> long
407
408static __inline__ __m256i __DEFAULT_FN_ATTRS256
410 return ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask(
411 (__v4sf)__A, (__v4di)_mm256_undefined_si256(), (__mmask8)-1,
413}
414static __inline__ __m256i __DEFAULT_FN_ATTRS256
415_mm256_mask_cvttsps_epi64(__m256i __W, __mmask8 __U, __m128 __A) {
416 return ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask(
417 (__v4sf)__A, (__v4di)__W, __U, _MM_FROUND_CUR_DIRECTION));
418}
419
420static __inline__ __m256i __DEFAULT_FN_ATTRS256
422 return ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask(
423 (__v4sf)__A, (__v4di)_mm256_setzero_si256(), __U,
425}
426
427#define _mm256_cvtts_roundps_epi64(__A, __R) \
428 ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask( \
429 (__v4sf)(__m128)__A, (__v4di)_mm256_undefined_si256(), (__mmask8) - 1, \
430 (int)__R))
431
432#define _mm256_mask_cvtts_roundps_epi64(__W, __U, __A, __R) \
433 ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask( \
434 (__v4sf)(__m128)__A, (__v4di)__W, (__mmask8)__U, (int)__R))
435
436#define _mm256_maskz_cvtts_roundps_epi64(__U, __A, __R) \
437 ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask( \
438 (__v4sf)(__m128)__A, (__v4di)_mm256_setzero_si256(), (__mmask8)__U, \
439 (int)__R))
440
441// 128 bit : float -> ulong
442static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttsps_epu64(__m128 __A) {
443 return ((__m128i)__builtin_ia32_vcvttps2uqqs128_mask(
444 (__v4sf)__A, (__v2di)_mm_undefined_si128(), (__mmask8)-1));
445}
446
447static __inline__ __m128i __DEFAULT_FN_ATTRS128
448_mm_mask_cvttsps_epu64(__m128i __W, __mmask8 __U, __m128 __A) {
449 return ((__m128i)__builtin_ia32_vcvttps2uqqs128_mask(
450 (__v4sf)__A, (__v2di)(__m128i)__W, (__mmask8)__U));
451}
452
453static __inline__ __m128i __DEFAULT_FN_ATTRS128
455 return ((__m128i)__builtin_ia32_vcvttps2uqqs128_mask(
456 (__v4sf)__A, (__v2di)_mm_setzero_si128(), (__mmask8)__U));
457}
458// 256 bit : float -> ulong
459
460static __inline__ __m256i __DEFAULT_FN_ATTRS256
462 return ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask(
463 (__v4sf)__A, (__v4di)_mm256_undefined_si256(), (__mmask8)-1,
465}
466
467static __inline__ __m256i __DEFAULT_FN_ATTRS256
468_mm256_mask_cvttsps_epu64(__m256i __W, __mmask8 __U, __m128 __A) {
469 return ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask(
470 (__v4sf)__A, (__v4di)__W, __U, _MM_FROUND_CUR_DIRECTION));
471}
472
473static __inline__ __m256i __DEFAULT_FN_ATTRS256
475 return ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask(
476 (__v4sf)__A, (__v4di)_mm256_setzero_si256(), __U,
478}
479
480#define _mm256_cvtts_roundps_epu64(__A, __R) \
481 ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask( \
482 (__v4sf)(__m128)__A, (__v4di)_mm256_undefined_si256(), (__mmask8) - 1, \
483 (int)__R))
484
485#define _mm256_mask_cvtts_roundps_epu64(__W, __U, __A, __R) \
486 ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask( \
487 (__v4sf)(__m128)__A, (__v4di)__W, (__mmask8)__U, (int)__R))
488
489#define _mm256_maskz_cvtts_roundps_epu64(__U, __A, __R) \
490 ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask( \
491 (__v4sf)(__m128)__A, (__v4di)_mm256_setzero_si256(), (__mmask8)__U, \
492 (int)__R))
493
494#undef __DEFAULT_FN_ATTRS128
495#undef __DEFAULT_FN_ATTRS256
496#endif // __AVX10_2SATCVTDSINTRIN_H
static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_cvttspd_epu32(__m256d __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_cvttspd_epi64(__mmask8 __U, __m256d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttsps_epi64(__m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_cvttsps_epi64(__mmask8 __U, __m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvttspd_epu32(__m128i __W, __mmask8 __U, __m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttspd_epi64(__m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvttsps_epi32(__m128i __W, __mmask8 __U, __m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_cvttspd_epi32(__m256d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvttspd_epi32(__m128i __W, __mmask8 __U, __m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttsps_epu64(__m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvttsps_epu32(__m128i __W, __mmask8 __U, __m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_cvttspd_epi64(__mmask8 __U, __m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_cvttsps_epu32(__mmask8 __U, __m128 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvttsps_epi32(__m256i __W, __mmask8 __U, __m256 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_cvttsps_epi64(__mmask8 __U, __m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_cvttsps_epu64(__mmask8 __U, __m128 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvttspd_epi64(__m256i __W, __mmask8 __U, __m256d __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_cvttsps_epu32(__m256 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvttsps_epi64(__m128i __W, __mmask8 __U, __m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_cvttspd_epu64(__mmask8 __U, __m128d __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_cvttspd_epu64(__m256d __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvttsps_epu32(__m256i __W, __mmask8 __U, __m256 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_cvttsps_epi32(__m256 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvttsps_epi64(__m256i __W, __mmask8 __U, __m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttspd_epu32(__m128d __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_cvttsps_epu64(__mmask8 __U, __m128 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_cvttspd_epu64(__mmask8 __U, __m256d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttsps_epi32(__m128 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvttspd_epu64(__m256i __W, __mmask8 __U, __m256d __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_cvttsps_epu64(__m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttspd_epu64(__m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvttsps_epu64(__m128i __W, __mmask8 __U, __m128 __A)
#define __DEFAULT_FN_ATTRS256
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_cvttsps_epi32(__mmask8 __U, __m256 __A)
#define __DEFAULT_FN_ATTRS128
static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_maskz_cvttspd_epu32(__mmask8 __U, __m256d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_mask_cvttspd_epi32(__m128i __W, __mmask8 __U, __m256d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_maskz_cvttspd_epi32(__mmask8 __U, __m256d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttspd_epi32(__m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_cvttspd_epi32(__mmask16 __U, __m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvttspd_epi64(__m128i __W, __mmask8 __U, __m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_cvttsps_epu32(__m128 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_cvttsps_epu32(__mmask8 __U, __m256 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_cvttsps_epi64(__m128 __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_cvttspd_epu64(__m128i __W, __mmask8 __U, __m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_cvttsps_epi32(__mmask8 __U, __m128 __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_cvttspd_epi64(__m256d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_cvttspd_epu32(__mmask8 __U, __m128d __A)
static __inline__ __m128i __DEFAULT_FN_ATTRS256 _mm256_mask_cvttspd_epu32(__m128i __W, __mmask8 __U, __m256d __A)
static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_cvttsps_epu64(__m256i __W, __mmask8 __U, __m128 __A)
unsigned char __mmask8
Definition: avx512fintrin.h:41
unsigned short __mmask16
Definition: avx512fintrin.h:42
#define _MM_FROUND_CUR_DIRECTION
Definition: avx512fintrin.h:49
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm256_undefined_si256(void)
Create a 256-bit integer vector with undefined values.
Definition: avxintrin.h:3683
static __inline __m256i __DEFAULT_FN_ATTRS_CONSTEXPR _mm256_setzero_si256(void)
Constructs a 256-bit integer vector initialized to zero.
Definition: avxintrin.h:4366
static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_si128(void)
Creates a 128-bit integer vector initialized to zero.
Definition: emmintrin.h:3880
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_undefined_si128(void)
Generates a 128-bit vector of [4 x i32] with unspecified content.
Definition: emmintrin.h:3495