[offload] [test] Use test compiler ID rather than host (#124408)
[llvm-project.git] / clang / lib / Headers / avx10_2_512satcvtdsintrin.h
blob5970ab0331444173f08fb2449d5e9994fda5d5a6
1 /*===----- avx10_2_512satcvtdsintrin.h - AVX10_2_512SATCVTDS intrinsics ----===
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
7 *===-----------------------------------------------------------------------===
8 */
9 #ifndef __IMMINTRIN_H
10 #error \
11 "Never use <avx10_2_512satcvtdsintrin.h> directly; include <immintrin.h> instead."
12 #endif
14 #ifndef __AVX10_2_512SATCVTDSINTRIN_H
15 #define __AVX10_2_512SATCVTDSINTRIN_H
17 /* Define the default attributes for the functions in this file. */
18 #define __DEFAULT_FN_ATTRS \
19 __attribute__((__always_inline__, __nodebug__, __target__("avx10.2-512"), \
20 __min_vector_width__(512)))
22 // 512 bit : Double -> Int
23 static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_cvttspd_epi32(__m512d __A) {
24 return ((__m256i)__builtin_ia32_vcvttpd2dqs512_round_mask(
25 (__v8df)__A, (__v8si)_mm256_undefined_si256(), (__mmask8)-1,
26 _MM_FROUND_CUR_DIRECTION));
29 static __inline__ __m256i __DEFAULT_FN_ATTRS
30 _mm512_mask_cvttspd_epi32(__m256i __W, __mmask8 __U, __m512d __A) {
31 return ((__m256i)__builtin_ia32_vcvttpd2dqs512_round_mask(
32 (__v8df)__A, (__v8si)__W, __U, _MM_FROUND_CUR_DIRECTION));
35 static __inline__ __m256i __DEFAULT_FN_ATTRS
36 _mm512_maskz_cvttspd_epi32(__mmask8 __U, __m512d __A) {
37 return ((__m256i)__builtin_ia32_vcvttpd2dqs512_round_mask(
38 (__v8df)__A, (__v8si)_mm256_setzero_si256(), __U,
39 _MM_FROUND_CUR_DIRECTION));
42 #define _mm512_cvtts_roundpd_epi32(__A, __R) \
43 ((__m256i)__builtin_ia32_vcvttpd2dqs512_round_mask( \
44 (__v8df)(__m512d)(__A), (__v8si)_mm256_undefined_si256(), \
45 (__mmask8) - 1, (const int)(__R)))
47 #define _mm512_mask_cvtts_roundpd_epi32(__W, __U, __A, __R) \
48 ((__m256i)__builtin_ia32_vcvttpd2dqs512_round_mask( \
49 (__v8df)(__m512d)(__A), (__v8si)(__m256i)(__W), (__mmask8)(__U), \
50 (const int)(__R)))
52 #define _mm512_maskz_cvtts_roundpd_epi32(__U, __A, __R) \
53 ((__m256i)__builtin_ia32_vcvttpd2dqs512_round_mask( \
54 (__v8df)(__m512d)(__A), (__v8si)_mm256_setzero_si256(), (__mmask8)(__U), \
55 (const int)(__R)))
57 // 512 bit : Double -> uInt
58 static __inline__ __m256i __DEFAULT_FN_ATTRS _mm512_cvttspd_epu32(__m512d __A) {
59 return ((__m256i)__builtin_ia32_vcvttpd2udqs512_round_mask(
60 (__v8df)__A, (__v8si)_mm256_undefined_si256(), (__mmask8)-1,
61 _MM_FROUND_CUR_DIRECTION));
64 static __inline__ __m256i __DEFAULT_FN_ATTRS
65 _mm512_mask_cvttspd_epu32(__m256i __W, __mmask8 __U, __m512d __A) {
66 return ((__m256i)__builtin_ia32_vcvttpd2udqs512_round_mask(
67 (__v8df)__A, (__v8si)__W, __U, _MM_FROUND_CUR_DIRECTION));
70 static __inline__ __m256i __DEFAULT_FN_ATTRS
71 _mm512_maskz_cvttspd_epu32(__mmask8 __U, __m512d __A) {
72 return ((__m256i)__builtin_ia32_vcvttpd2udqs512_round_mask(
73 (__v8df)__A, (__v8si)_mm256_setzero_si256(), __U,
74 _MM_FROUND_CUR_DIRECTION));
77 #define _mm512_cvtts_roundpd_epu32(__A, __R) \
78 ((__m256i)__builtin_ia32_vcvttpd2udqs512_round_mask( \
79 (__v8df)(__m512d)(__A), (__v8si)_mm256_undefined_si256(), \
80 (__mmask8) - 1, (const int)(__R)))
82 #define _mm512_mask_cvtts_roundpd_epu32(__W, __U, __A, __R) \
83 ((__m256i)__builtin_ia32_vcvttpd2udqs512_round_mask( \
84 (__v8df)(__m512d)(__A), (__v8si)(__m256i)(__W), (__mmask8)(__U), \
85 (const int)(__R)))
87 #define _mm512_maskz_cvtts_roundpd_epu32(__U, __A, __R) \
88 ((__m256i)__builtin_ia32_vcvttpd2udqs512_round_mask( \
89 (__v8df)(__m512d)(__A), (__v8si)_mm256_setzero_si256(), (__mmask8)(__U), \
90 (const int)(__R)))
92 // 512 bit : Double -> Long
94 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_cvttspd_epi64(__m512d __A) {
95 return ((__m512i)__builtin_ia32_vcvttpd2qqs512_round_mask(
96 (__v8df)__A, (__v8di)_mm512_undefined_epi32(), (__mmask8)-1,
97 _MM_FROUND_CUR_DIRECTION));
99 static __inline__ __m512i __DEFAULT_FN_ATTRS
100 _mm512_mask_cvttspd_epi64(__m512i __W, __mmask8 __U, __m512d __A) {
101 return ((__m512i)__builtin_ia32_vcvttpd2qqs512_round_mask(
102 (__v8df)__A, (__v8di)__W, __U, _MM_FROUND_CUR_DIRECTION));
104 static __inline__ __m512i __DEFAULT_FN_ATTRS
105 _mm512_maskz_cvttspd_epi64(__mmask8 __U, __m512d __A) {
106 return ((__m512i)__builtin_ia32_vcvttpd2qqs512_round_mask(
107 (__v8df)__A, (__v8di)_mm512_setzero_si512(), __U,
108 _MM_FROUND_CUR_DIRECTION));
111 #define _mm512_cvtts_roundpd_epi64(__A, __R) \
112 ((__m512i)__builtin_ia32_vcvttpd2qqs512_round_mask( \
113 (__v8df)(__m512d)(__A), (__v8di)_mm512_undefined_epi32(), \
114 (__mmask8) - 1, (const int)(__R)))
116 #define _mm512_mask_cvtts_roundpd_epi64(__W, __U, __A, __R) \
117 ((__m512i)__builtin_ia32_vcvttpd2qqs512_round_mask( \
118 (__v8df)(__m512d)(__A), (__v8di)(__m512i)(__W), (__mmask8)(__U), \
119 (const int)(__R)))
121 #define _mm512_maskz_cvtts_roundpd_epi64(__U, __A, __R) \
122 ((__m512i)__builtin_ia32_vcvttpd2qqs512_round_mask( \
123 (__v8df)(__m512d)(__A), (__v8di)_mm512_setzero_si512(), (__mmask8)(__U), \
124 (const int)(__R)))
126 // 512 bit : Double -> ULong
128 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_cvttspd_epu64(__m512d __A) {
129 return ((__m512i)__builtin_ia32_vcvttpd2uqqs512_round_mask(
130 (__v8df)__A, (__v8di)_mm512_undefined_epi32(), (__mmask8)-1,
131 _MM_FROUND_CUR_DIRECTION));
134 static __inline__ __m512i __DEFAULT_FN_ATTRS
135 _mm512_mask_cvttspd_epu64(__m512i __W, __mmask8 __U, __m512d __A) {
136 return ((__m512i)__builtin_ia32_vcvttpd2uqqs512_round_mask(
137 (__v8df)__A, (__v8di)__W, __U, _MM_FROUND_CUR_DIRECTION));
140 static __inline__ __m512i __DEFAULT_FN_ATTRS
141 _mm512_maskz_cvttspd_epu64(__mmask8 __U, __m512d __A) {
142 return ((__m512i)__builtin_ia32_vcvttpd2uqqs512_round_mask(
143 (__v8df)__A, (__v8di)_mm512_setzero_si512(), __U,
144 _MM_FROUND_CUR_DIRECTION));
147 #define _mm512_cvtts_roundpd_epu64(__A, __R) \
148 ((__m512i)__builtin_ia32_vcvttpd2uqqs512_round_mask( \
149 (__v8df)(__m512d)(__A), (__v8di)_mm512_undefined_epi32(), \
150 (__mmask8) - 1, (const int)(__R)))
152 #define _mm512_mask_cvtts_roundpd_epu64(__W, __U, __A, __R) \
153 ((__m512i)__builtin_ia32_vcvttpd2uqqs512_round_mask( \
154 (__v8df)(__m512d)(__A), (__v8di)(__m512i)(__W), (__mmask8)(__U), \
155 (const int)(__R)))
157 #define _mm512_maskz_cvtts_roundpd_epu64(__U, __A, __R) \
158 ((__m512i)__builtin_ia32_vcvttpd2uqqs512_round_mask( \
159 (__v8df)(__m512d)(__A), (__v8di)_mm512_setzero_si512(), (__mmask8)(__U), \
160 (const int)(__R)))
162 // 512 bit: Float -> int
163 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_cvttsps_epi32(__m512 __A) {
164 return ((__m512i)__builtin_ia32_vcvttps2dqs512_round_mask(
165 (__v16sf)(__A), (__v16si)_mm512_undefined_epi32(), (__mmask16)-1,
166 _MM_FROUND_CUR_DIRECTION));
169 static __inline__ __m512i __DEFAULT_FN_ATTRS
170 _mm512_mask_cvttsps_epi32(__m512i __W, __mmask16 __U, __m512 __A) {
171 return ((__m512i)__builtin_ia32_vcvttps2dqs512_round_mask(
172 (__v16sf)(__A), (__v16si)(__W), __U, _MM_FROUND_CUR_DIRECTION));
175 static __inline__ __m512i __DEFAULT_FN_ATTRS
176 _mm512_maskz_cvttsps_epi32(__mmask16 __U, __m512 __A) {
177 return ((__m512i)__builtin_ia32_vcvttps2dqs512_round_mask(
178 (__v16sf)(__A), (__v16si)_mm512_setzero_si512(), __U,
179 _MM_FROUND_CUR_DIRECTION));
182 #define _mm512_cvtts_roundps_epi32(__A, __R) \
183 ((__m512i)__builtin_ia32_vcvttps2dqs512_round_mask( \
184 (__v16sf)(__m512)(__A), (__v16si)_mm512_undefined_epi32(), \
185 (__mmask16) - 1, (const int)(__R)))
187 #define _mm512_mask_cvtts_roundps_epi32(__W, __U, __A, __R) \
188 ((__m512i)__builtin_ia32_vcvttps2dqs512_round_mask( \
189 (__v16sf)(__m512)(__A), (__v16si)(__m512i)(__W), (__mmask16)(__U), \
190 (const int)(__R)))
192 #define _mm512_maskz_cvtts_roundps_epi32(__U, __A, __R) \
193 ((__m512i)__builtin_ia32_vcvttps2dqs512_round_mask( \
194 (__v16sf)(__m512)(__A), (__v16si)_mm512_setzero_si512(), \
195 (__mmask16)(__U), (const int)(__R)))
197 // 512 bit: Float -> uint
198 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_cvttsps_epu32(__m512 __A) {
199 return ((__m512i)__builtin_ia32_vcvttps2udqs512_round_mask(
200 (__v16sf)(__A), (__v16si)_mm512_undefined_epi32(), (__mmask16)-1,
201 _MM_FROUND_CUR_DIRECTION));
204 static __inline__ __m512i __DEFAULT_FN_ATTRS
205 _mm512_mask_cvttsps_epu32(__m512i __W, __mmask16 __U, __m512 __A) {
206 return ((__m512i)__builtin_ia32_vcvttps2udqs512_round_mask(
207 (__v16sf)(__A), (__v16si)(__W), __U, _MM_FROUND_CUR_DIRECTION));
210 static __inline__ __m512i __DEFAULT_FN_ATTRS
211 _mm512_maskz_cvttsps_epu32(__mmask16 __U, __m512 __A) {
212 return ((__m512i)__builtin_ia32_vcvttps2udqs512_round_mask(
213 (__v16sf)(__A), (__v16si)_mm512_setzero_si512(), __U,
214 _MM_FROUND_CUR_DIRECTION));
217 #define _mm512_cvtts_roundps_epu32(__A, __R) \
218 ((__m512i)__builtin_ia32_vcvttps2udqs512_round_mask( \
219 (__v16sf)(__m512)(__A), (__v16si)_mm512_undefined_epi32(), \
220 (__mmask16) - 1, (const int)(__R)))
222 #define _mm512_mask_cvtts_roundps_epu32(__W, __U, __A, __R) \
223 ((__m512i)__builtin_ia32_vcvttps2udqs512_round_mask( \
224 (__v16sf)(__m512)(__A), (__v16si)(__m512i)(__W), (__mmask16)(__U), \
225 (const int)(__R)))
227 #define _mm512_maskz_cvtts_roundps_epu32(__U, __A, __R) \
228 ((__m512i)__builtin_ia32_vcvttps2udqs512_round_mask( \
229 (__v16sf)(__m512)(__A), (__v16si)_mm512_setzero_si512(), \
230 (__mmask16)(__U), (const int)(__R)))
232 // 512 bit : float -> long
233 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_cvttsps_epi64(__m256 __A) {
234 return ((__m512i)__builtin_ia32_vcvttps2qqs512_round_mask(
235 (__v8sf)__A, (__v8di)_mm512_undefined_epi32(), (__mmask8)-1,
236 _MM_FROUND_CUR_DIRECTION));
239 static __inline__ __m512i __DEFAULT_FN_ATTRS
240 _mm512_mask_cvttsps_epi64(__m512i __W, __mmask8 __U, __m256 __A) {
241 return ((__m512i)__builtin_ia32_vcvttps2qqs512_round_mask(
242 (__v8sf)__A, (__v8di)__W, __U, _MM_FROUND_CUR_DIRECTION));
245 static __inline__ __m512i __DEFAULT_FN_ATTRS
246 _mm512_maskz_cvttsps_epi64(__mmask8 __U, __m256 __A) {
247 return ((__m512i)__builtin_ia32_vcvttps2qqs512_round_mask(
248 (__v8sf)__A, (__v8di)_mm512_setzero_si512(), __U,
249 _MM_FROUND_CUR_DIRECTION));
252 #define _mm512_cvtts_roundps_epi64(__A, __R) \
253 ((__m512i)__builtin_ia32_vcvttps2qqs512_round_mask( \
254 (__v8sf)(__m256)(__A), (__v8di)_mm512_undefined_epi32(), (__mmask8) - 1, \
255 (const int)(__R)))
257 #define _mm512_mask_cvtts_roundps_epi64(__W, __U, __A, __R) \
258 ((__m512i)__builtin_ia32_vcvttps2qqs512_round_mask( \
259 (__v8sf)(__m256)(__A), (__v8di)(__m512i)(__W), (__mmask8)(__U), \
260 (const int)(__R)))
262 #define _mm512_maskz_cvtts_roundps_epi64(__U, __A, __R) \
263 ((__m512i)__builtin_ia32_vcvttps2qqs512_round_mask( \
264 (__v8sf)(__m256)(__A), (__v8di)_mm512_setzero_si512(), (__mmask8)(__U), \
265 (const int)(__R)))
267 // 512 bit : float -> ulong
268 static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_cvttsps_epu64(__m256 __A) {
269 return ((__m512i)__builtin_ia32_vcvttps2uqqs512_round_mask(
270 (__v8sf)__A, (__v8di)_mm512_undefined_epi32(), (__mmask8)-1,
271 _MM_FROUND_CUR_DIRECTION));
274 static __inline__ __m512i __DEFAULT_FN_ATTRS
275 _mm512_mask_cvttsps_epu64(__m512i __W, __mmask8 __U, __m256 __A) {
276 return ((__m512i)__builtin_ia32_vcvttps2uqqs512_round_mask(
277 (__v8sf)__A, (__v8di)__W, __U, _MM_FROUND_CUR_DIRECTION));
280 static __inline__ __m512i __DEFAULT_FN_ATTRS
281 _mm512_maskz_cvttsps_epu64(__mmask8 __U, __m256 __A) {
282 return ((__m512i)__builtin_ia32_vcvttps2uqqs512_round_mask(
283 (__v8sf)__A, (__v8di)_mm512_setzero_si512(), __U,
284 _MM_FROUND_CUR_DIRECTION));
287 #define _mm512_cvtts_roundps_epu64(__A, __R) \
288 ((__m512i)__builtin_ia32_vcvttps2uqqs512_round_mask( \
289 (__v8sf)(__m256)(__A), (__v8di)_mm512_undefined_epi32(), (__mmask8) - 1, \
290 (const int)(__R)))
292 #define _mm512_mask_cvtts_roundps_epu64(__W, __U, __A, __R) \
293 ((__m512i)__builtin_ia32_vcvttps2uqqs512_round_mask( \
294 (__v8sf)(__m256)(__A), (__v8di)(__m512i)(__W), (__mmask8)(__U), \
295 (const int)(__R)))
297 #define _mm512_maskz_cvtts_roundps_epu64(__U, __A, __R) \
298 ((__m512i)__builtin_ia32_vcvttps2uqqs512_round_mask( \
299 (__v8sf)(__m256)(__A), (__v8di)_mm512_setzero_si512(), (__mmask8)(__U), \
300 (const int)(__R)))
302 #undef __DEFAULT_FN_ATTRS
303 #endif // __AVX10_2_512SATCVTDSINTRIN_H