12 "Never use <avx10_2satcvtdsintrin.h> directly; include <immintrin.h> instead."
15#ifndef __AVX10_2SATCVTDSINTRIN_H
16#define __AVX10_2SATCVTDSINTRIN_H
19#define __DEFAULT_FN_ATTRS256 \
20 __attribute__((__always_inline__, __nodebug__, __target__("avx10.2-256"), \
21 __min_vector_width__(256)))
23#define __DEFAULT_FN_ATTRS128 \
24 __attribute__((__always_inline__, __nodebug__, __target__("avx10.2-256"), \
25 __min_vector_width__(128)))
27#define _mm_cvtts_roundsd_i32(__A, __R) \
28 ((int)__builtin_ia32_vcvttsd2sis32((__v2df)(__m128)(__A), (const int)(__R)))
30#define _mm_cvtts_roundsd_si32(__A, __R) \
31 ((int)__builtin_ia32_vcvttsd2sis32((__v2df)(__m128d)(__A), (const int)(__R)))
33#define _mm_cvtts_roundsd_u32(__A, __R) \
34 ((unsigned int)__builtin_ia32_vcvttsd2usis32((__v2df)(__m128d)(__A), \
37#define _mm_cvtts_roundss_i32(__A, __R) \
38 ((int)__builtin_ia32_vcvttss2sis32((__v4sf)(__m128)(__A), (const int)(__R)))
40#define _mm_cvtts_roundss_si32(__A, __R) \
41 ((int)__builtin_ia32_vcvttss2sis32((__v4sf)(__m128)(__A), (const int)(__R)))
43#define _mm_cvtts_roundss_u32(__A, __R) \
44 ((unsigned int)__builtin_ia32_vcvttss2usis32((__v4sf)(__m128)(__A), \
48#define _mm_cvtts_roundss_u64(__A, __R) \
49 ((unsigned long long)__builtin_ia32_vcvttss2usis64((__v4sf)(__m128)(__A), \
52#define _mm_cvtts_roundsd_u64(__A, __R) \
53 ((unsigned long long)__builtin_ia32_vcvttsd2usis64((__v2df)(__m128d)(__A), \
56#define _mm_cvtts_roundss_i64(__A, __R) \
57 ((long long)__builtin_ia32_vcvttss2sis64((__v4sf)(__m128)(__A), \
60#define _mm_cvtts_roundss_si64(__A, __R) \
61 ((long long)__builtin_ia32_vcvttss2sis64((__v4sf)(__m128)(__A), \
64#define _mm_cvtts_roundsd_si64(__A, __R) \
65 ((long long)__builtin_ia32_vcvttsd2sis64((__v2df)(__m128d)(__A), \
68#define _mm_cvtts_roundsd_i64(__A, __R) \
69 ((long long)__builtin_ia32_vcvttsd2sis64((__v2df)(__m128d)(__A), \
75 return ((__m128i)__builtin_ia32_vcvttpd2dqs128_mask(
81 return ((__m128i)__builtin_ia32_vcvttpd2dqs128_mask((__v2df)__A, (__v4si)__W,
87 return ((__m128i)__builtin_ia32_vcvttpd2dqs128_mask(
94 return ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask(
101 return ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask(
107 return ((__m128i)__builtin_ia32_vcvttpd2dqs256_round_mask(
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)))
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)))
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)))
127 return ((__m128i)__builtin_ia32_vcvttpd2udqs128_mask(
133 return ((__m128i)__builtin_ia32_vcvttpd2udqs128_mask(
134 (__v2df)__A, (__v4si)(__m128i)__W, (
__mmask8)__U));
139 return ((__m128i)__builtin_ia32_vcvttpd2udqs128_mask(
146 return ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask(
153 return ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask(
159 return ((__m128i)__builtin_ia32_vcvttpd2udqs256_round_mask(
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)))
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)))
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)))
179 return ((__m128i)__builtin_ia32_vcvttpd2qqs128_mask(
185 return ((__m128i)__builtin_ia32_vcvttpd2qqs128_mask((__v2df)__A, (__v2di)__W,
191 return ((__m128i)__builtin_ia32_vcvttpd2qqs128_mask(
198 return ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask(
205 return ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask(
211 return ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask(
216#define _mm256_cvtts_roundpd_epi64(__A, __R) \
217 ((__m256i)__builtin_ia32_vcvttpd2qqs256_round_mask( \
218 (__v4df)__A, (__v4di)_mm256_undefined_si256(), (__mmask8) - 1, \
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))
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))
231 return ((__m128i)__builtin_ia32_vcvttpd2uqqs128_mask(
237 return ((__m128i)__builtin_ia32_vcvttpd2uqqs128_mask((__v2df)__A, (__v2di)__W,
243 return ((__m128i)__builtin_ia32_vcvttpd2uqqs128_mask(
251 return ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask(
258 return ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask(
264 return ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask(
269#define _mm256_cvtts_roundpd_epu64(__A, __R) \
270 ((__m256i)__builtin_ia32_vcvttpd2uqqs256_round_mask( \
271 (__v4df)__A, (__v4di)_mm256_undefined_si256(), (__mmask8) - 1, \
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))
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))
284 return ((__m128i)__builtin_ia32_vcvttps2dqs128_mask(
290 return ((__m128i)__builtin_ia32_vcvttps2dqs128_mask((__v4sf)__A, (__v4si)__W,
296 return ((__m128i)__builtin_ia32_vcvttps2dqs128_mask(
303 return ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask(
310 return ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask(
316 return ((__m256i)__builtin_ia32_vcvttps2dqs256_round_mask(
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)))
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)))
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)))
337 return ((__m128i)__builtin_ia32_vcvttps2udqs128_mask(
343 return ((__m128i)__builtin_ia32_vcvttps2udqs128_mask((__v4sf)__A, (__v4si)__W,
349 return ((__m128i)__builtin_ia32_vcvttps2udqs128_mask(
357 return ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask(
364 return ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask(
370 return ((__m256i)__builtin_ia32_vcvttps2udqs256_round_mask(
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)))
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)))
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)))
391 return ((__m128i)__builtin_ia32_vcvttps2qqs128_mask(
397 return ((__m128i)__builtin_ia32_vcvttps2qqs128_mask(
398 (__v4sf)__A, (__v2di)(__m128i)__W, (
__mmask8)__U));
403 return ((__m128i)__builtin_ia32_vcvttps2qqs128_mask(
410 return ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask(
416 return ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask(
422 return ((__m256i)__builtin_ia32_vcvttps2qqs256_round_mask(
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, \
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))
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, \
443 return ((__m128i)__builtin_ia32_vcvttps2uqqs128_mask(
449 return ((__m128i)__builtin_ia32_vcvttps2uqqs128_mask(
450 (__v4sf)__A, (__v2di)(__m128i)__W, (
__mmask8)__U));
455 return ((__m128i)__builtin_ia32_vcvttps2uqqs128_mask(
462 return ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask(
469 return ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask(
475 return ((__m256i)__builtin_ia32_vcvttps2uqqs256_round_mask(
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, \
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))
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, \
494#undef __DEFAULT_FN_ATTRS128
495#undef __DEFAULT_FN_ATTRS256
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)
#define _MM_FROUND_CUR_DIRECTION
static __inline__ __m256i __DEFAULT_FN_ATTRS _mm256_undefined_si256(void)
Create a 256-bit integer vector with undefined values.
static __inline __m256i __DEFAULT_FN_ATTRS_CONSTEXPR _mm256_setzero_si256(void)
Constructs a 256-bit integer vector initialized to zero.
static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_si128(void)
Creates a 128-bit integer vector initialized to zero.
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_undefined_si128(void)
Generates a 128-bit vector of [4 x i32] with unspecified content.