xref: /aosp_15_r20/prebuilts/sdk/renderscript/clang-include/immintrin.h (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker /*===---- immintrin.h - Intel intrinsics -----------------------------------===
2*344a7f5eSAndroid Build Coastguard Worker  *
3*344a7f5eSAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a copy
4*344a7f5eSAndroid Build Coastguard Worker  * of this software and associated documentation files (the "Software"), to deal
5*344a7f5eSAndroid Build Coastguard Worker  * in the Software without restriction, including without limitation the rights
6*344a7f5eSAndroid Build Coastguard Worker  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7*344a7f5eSAndroid Build Coastguard Worker  * copies of the Software, and to permit persons to whom the Software is
8*344a7f5eSAndroid Build Coastguard Worker  * furnished to do so, subject to the following conditions:
9*344a7f5eSAndroid Build Coastguard Worker  *
10*344a7f5eSAndroid Build Coastguard Worker  * The above copyright notice and this permission notice shall be included in
11*344a7f5eSAndroid Build Coastguard Worker  * all copies or substantial portions of the Software.
12*344a7f5eSAndroid Build Coastguard Worker  *
13*344a7f5eSAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14*344a7f5eSAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15*344a7f5eSAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16*344a7f5eSAndroid Build Coastguard Worker  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17*344a7f5eSAndroid Build Coastguard Worker  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18*344a7f5eSAndroid Build Coastguard Worker  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19*344a7f5eSAndroid Build Coastguard Worker  * THE SOFTWARE.
20*344a7f5eSAndroid Build Coastguard Worker  *
21*344a7f5eSAndroid Build Coastguard Worker  *===-----------------------------------------------------------------------===
22*344a7f5eSAndroid Build Coastguard Worker  */
23*344a7f5eSAndroid Build Coastguard Worker 
24*344a7f5eSAndroid Build Coastguard Worker #ifndef __IMMINTRIN_H
25*344a7f5eSAndroid Build Coastguard Worker #define __IMMINTRIN_H
26*344a7f5eSAndroid Build Coastguard Worker 
27*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__MMX__)
28*344a7f5eSAndroid Build Coastguard Worker #include <mmintrin.h>
29*344a7f5eSAndroid Build Coastguard Worker #endif
30*344a7f5eSAndroid Build Coastguard Worker 
31*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE__)
32*344a7f5eSAndroid Build Coastguard Worker #include <xmmintrin.h>
33*344a7f5eSAndroid Build Coastguard Worker #endif
34*344a7f5eSAndroid Build Coastguard Worker 
35*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE2__)
36*344a7f5eSAndroid Build Coastguard Worker #include <emmintrin.h>
37*344a7f5eSAndroid Build Coastguard Worker #endif
38*344a7f5eSAndroid Build Coastguard Worker 
39*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE3__)
40*344a7f5eSAndroid Build Coastguard Worker #include <pmmintrin.h>
41*344a7f5eSAndroid Build Coastguard Worker #endif
42*344a7f5eSAndroid Build Coastguard Worker 
43*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSSE3__)
44*344a7f5eSAndroid Build Coastguard Worker #include <tmmintrin.h>
45*344a7f5eSAndroid Build Coastguard Worker #endif
46*344a7f5eSAndroid Build Coastguard Worker 
47*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || \
48*344a7f5eSAndroid Build Coastguard Worker     (defined(__SSE4_2__) || defined(__SSE4_1__))
49*344a7f5eSAndroid Build Coastguard Worker #include <smmintrin.h>
50*344a7f5eSAndroid Build Coastguard Worker #endif
51*344a7f5eSAndroid Build Coastguard Worker 
52*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || \
53*344a7f5eSAndroid Build Coastguard Worker     (defined(__AES__) || defined(__PCLMUL__))
54*344a7f5eSAndroid Build Coastguard Worker #include <wmmintrin.h>
55*344a7f5eSAndroid Build Coastguard Worker #endif
56*344a7f5eSAndroid Build Coastguard Worker 
57*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLFLUSHOPT__)
58*344a7f5eSAndroid Build Coastguard Worker #include <clflushoptintrin.h>
59*344a7f5eSAndroid Build Coastguard Worker #endif
60*344a7f5eSAndroid Build Coastguard Worker 
61*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX__)
62*344a7f5eSAndroid Build Coastguard Worker #include <avxintrin.h>
63*344a7f5eSAndroid Build Coastguard Worker #endif
64*344a7f5eSAndroid Build Coastguard Worker 
65*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX2__)
66*344a7f5eSAndroid Build Coastguard Worker #include <avx2intrin.h>
67*344a7f5eSAndroid Build Coastguard Worker 
68*344a7f5eSAndroid Build Coastguard Worker /* The 256-bit versions of functions in f16cintrin.h.
69*344a7f5eSAndroid Build Coastguard Worker    Intel documents these as being in immintrin.h, and
70*344a7f5eSAndroid Build Coastguard Worker    they depend on typedefs from avxintrin.h. */
71*344a7f5eSAndroid Build Coastguard Worker 
72*344a7f5eSAndroid Build Coastguard Worker #define _mm256_cvtps_ph(a, imm) __extension__ ({ \
73*344a7f5eSAndroid Build Coastguard Worker  (__m128i)__builtin_ia32_vcvtps2ph256((__v8sf)(__m256)(a), (imm)); })
74*344a7f5eSAndroid Build Coastguard Worker 
75*344a7f5eSAndroid Build Coastguard Worker static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("f16c")))
_mm256_cvtph_ps(__m128i __a)76*344a7f5eSAndroid Build Coastguard Worker _mm256_cvtph_ps(__m128i __a)
77*344a7f5eSAndroid Build Coastguard Worker {
78*344a7f5eSAndroid Build Coastguard Worker   return (__m256)__builtin_ia32_vcvtph2ps256((__v8hi)__a);
79*344a7f5eSAndroid Build Coastguard Worker }
80*344a7f5eSAndroid Build Coastguard Worker #endif /* __AVX2__ */
81*344a7f5eSAndroid Build Coastguard Worker 
82*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI__)
83*344a7f5eSAndroid Build Coastguard Worker #include <bmiintrin.h>
84*344a7f5eSAndroid Build Coastguard Worker #endif
85*344a7f5eSAndroid Build Coastguard Worker 
86*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI2__)
87*344a7f5eSAndroid Build Coastguard Worker #include <bmi2intrin.h>
88*344a7f5eSAndroid Build Coastguard Worker #endif
89*344a7f5eSAndroid Build Coastguard Worker 
90*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__LZCNT__)
91*344a7f5eSAndroid Build Coastguard Worker #include <lzcntintrin.h>
92*344a7f5eSAndroid Build Coastguard Worker #endif
93*344a7f5eSAndroid Build Coastguard Worker 
94*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__FMA__)
95*344a7f5eSAndroid Build Coastguard Worker #include <fmaintrin.h>
96*344a7f5eSAndroid Build Coastguard Worker #endif
97*344a7f5eSAndroid Build Coastguard Worker 
98*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512F__)
99*344a7f5eSAndroid Build Coastguard Worker #include <avx512fintrin.h>
100*344a7f5eSAndroid Build Coastguard Worker #endif
101*344a7f5eSAndroid Build Coastguard Worker 
102*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VL__)
103*344a7f5eSAndroid Build Coastguard Worker #include <avx512vlintrin.h>
104*344a7f5eSAndroid Build Coastguard Worker #endif
105*344a7f5eSAndroid Build Coastguard Worker 
106*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BW__)
107*344a7f5eSAndroid Build Coastguard Worker #include <avx512bwintrin.h>
108*344a7f5eSAndroid Build Coastguard Worker #endif
109*344a7f5eSAndroid Build Coastguard Worker 
110*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512CD__)
111*344a7f5eSAndroid Build Coastguard Worker #include <avx512cdintrin.h>
112*344a7f5eSAndroid Build Coastguard Worker #endif
113*344a7f5eSAndroid Build Coastguard Worker 
114*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512DQ__)
115*344a7f5eSAndroid Build Coastguard Worker #include <avx512dqintrin.h>
116*344a7f5eSAndroid Build Coastguard Worker #endif
117*344a7f5eSAndroid Build Coastguard Worker 
118*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || \
119*344a7f5eSAndroid Build Coastguard Worker     (defined(__AVX512VL__) && defined(__AVX512BW__))
120*344a7f5eSAndroid Build Coastguard Worker #include <avx512vlbwintrin.h>
121*344a7f5eSAndroid Build Coastguard Worker #endif
122*344a7f5eSAndroid Build Coastguard Worker 
123*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || \
124*344a7f5eSAndroid Build Coastguard Worker     (defined(__AVX512VL__) && defined(__AVX512CD__))
125*344a7f5eSAndroid Build Coastguard Worker #include <avx512vlcdintrin.h>
126*344a7f5eSAndroid Build Coastguard Worker #endif
127*344a7f5eSAndroid Build Coastguard Worker 
128*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || \
129*344a7f5eSAndroid Build Coastguard Worker     (defined(__AVX512VL__) && defined(__AVX512DQ__))
130*344a7f5eSAndroid Build Coastguard Worker #include <avx512vldqintrin.h>
131*344a7f5eSAndroid Build Coastguard Worker #endif
132*344a7f5eSAndroid Build Coastguard Worker 
133*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512ER__)
134*344a7f5eSAndroid Build Coastguard Worker #include <avx512erintrin.h>
135*344a7f5eSAndroid Build Coastguard Worker #endif
136*344a7f5eSAndroid Build Coastguard Worker 
137*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512IFMA__)
138*344a7f5eSAndroid Build Coastguard Worker #include <avx512ifmaintrin.h>
139*344a7f5eSAndroid Build Coastguard Worker #endif
140*344a7f5eSAndroid Build Coastguard Worker 
141*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || \
142*344a7f5eSAndroid Build Coastguard Worker     (defined(__AVX512IFMA__) && defined(__AVX512VL__))
143*344a7f5eSAndroid Build Coastguard Worker #include <avx512ifmavlintrin.h>
144*344a7f5eSAndroid Build Coastguard Worker #endif
145*344a7f5eSAndroid Build Coastguard Worker 
146*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VBMI__)
147*344a7f5eSAndroid Build Coastguard Worker #include <avx512vbmiintrin.h>
148*344a7f5eSAndroid Build Coastguard Worker #endif
149*344a7f5eSAndroid Build Coastguard Worker 
150*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || \
151*344a7f5eSAndroid Build Coastguard Worker     (defined(__AVX512VBMI__) && defined(__AVX512VL__))
152*344a7f5eSAndroid Build Coastguard Worker #include <avx512vbmivlintrin.h>
153*344a7f5eSAndroid Build Coastguard Worker #endif
154*344a7f5eSAndroid Build Coastguard Worker 
155*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512PF__)
156*344a7f5eSAndroid Build Coastguard Worker #include <avx512pfintrin.h>
157*344a7f5eSAndroid Build Coastguard Worker #endif
158*344a7f5eSAndroid Build Coastguard Worker 
159*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__PKU__)
160*344a7f5eSAndroid Build Coastguard Worker #include <pkuintrin.h>
161*344a7f5eSAndroid Build Coastguard Worker #endif
162*344a7f5eSAndroid Build Coastguard Worker 
163*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDRND__)
164*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
_rdrand16_step(unsigned short * __p)165*344a7f5eSAndroid Build Coastguard Worker _rdrand16_step(unsigned short *__p)
166*344a7f5eSAndroid Build Coastguard Worker {
167*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_rdrand16_step(__p);
168*344a7f5eSAndroid Build Coastguard Worker }
169*344a7f5eSAndroid Build Coastguard Worker 
170*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
_rdrand32_step(unsigned int * __p)171*344a7f5eSAndroid Build Coastguard Worker _rdrand32_step(unsigned int *__p)
172*344a7f5eSAndroid Build Coastguard Worker {
173*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_rdrand32_step(__p);
174*344a7f5eSAndroid Build Coastguard Worker }
175*344a7f5eSAndroid Build Coastguard Worker 
176*344a7f5eSAndroid Build Coastguard Worker /* __bit_scan_forward */
177*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __attribute__((__always_inline__, __nodebug__))
_bit_scan_forward(int __A)178*344a7f5eSAndroid Build Coastguard Worker _bit_scan_forward(int __A) {
179*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ctz(__A);
180*344a7f5eSAndroid Build Coastguard Worker }
181*344a7f5eSAndroid Build Coastguard Worker 
182*344a7f5eSAndroid Build Coastguard Worker /* __bit_scan_reverse */
183*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __attribute__((__always_inline__, __nodebug__))
_bit_scan_reverse(int __A)184*344a7f5eSAndroid Build Coastguard Worker _bit_scan_reverse(int __A) {
185*344a7f5eSAndroid Build Coastguard Worker   return 31 - __builtin_clz(__A);
186*344a7f5eSAndroid Build Coastguard Worker }
187*344a7f5eSAndroid Build Coastguard Worker 
188*344a7f5eSAndroid Build Coastguard Worker #ifdef __x86_64__
189*344a7f5eSAndroid Build Coastguard Worker static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
_rdrand64_step(unsigned long long * __p)190*344a7f5eSAndroid Build Coastguard Worker _rdrand64_step(unsigned long long *__p)
191*344a7f5eSAndroid Build Coastguard Worker {
192*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_rdrand64_step(__p);
193*344a7f5eSAndroid Build Coastguard Worker }
194*344a7f5eSAndroid Build Coastguard Worker #endif
195*344a7f5eSAndroid Build Coastguard Worker #endif /* __RDRND__ */
196*344a7f5eSAndroid Build Coastguard Worker 
197*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__FSGSBASE__)
198*344a7f5eSAndroid Build Coastguard Worker #ifdef __x86_64__
199*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
_readfsbase_u32(void)200*344a7f5eSAndroid Build Coastguard Worker _readfsbase_u32(void)
201*344a7f5eSAndroid Build Coastguard Worker {
202*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_rdfsbase32();
203*344a7f5eSAndroid Build Coastguard Worker }
204*344a7f5eSAndroid Build Coastguard Worker 
205*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
_readfsbase_u64(void)206*344a7f5eSAndroid Build Coastguard Worker _readfsbase_u64(void)
207*344a7f5eSAndroid Build Coastguard Worker {
208*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_rdfsbase64();
209*344a7f5eSAndroid Build Coastguard Worker }
210*344a7f5eSAndroid Build Coastguard Worker 
211*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
_readgsbase_u32(void)212*344a7f5eSAndroid Build Coastguard Worker _readgsbase_u32(void)
213*344a7f5eSAndroid Build Coastguard Worker {
214*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_rdgsbase32();
215*344a7f5eSAndroid Build Coastguard Worker }
216*344a7f5eSAndroid Build Coastguard Worker 
217*344a7f5eSAndroid Build Coastguard Worker static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
_readgsbase_u64(void)218*344a7f5eSAndroid Build Coastguard Worker _readgsbase_u64(void)
219*344a7f5eSAndroid Build Coastguard Worker {
220*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_rdgsbase64();
221*344a7f5eSAndroid Build Coastguard Worker }
222*344a7f5eSAndroid Build Coastguard Worker 
223*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
_writefsbase_u32(unsigned int __V)224*344a7f5eSAndroid Build Coastguard Worker _writefsbase_u32(unsigned int __V)
225*344a7f5eSAndroid Build Coastguard Worker {
226*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_wrfsbase32(__V);
227*344a7f5eSAndroid Build Coastguard Worker }
228*344a7f5eSAndroid Build Coastguard Worker 
229*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
_writefsbase_u64(unsigned long long __V)230*344a7f5eSAndroid Build Coastguard Worker _writefsbase_u64(unsigned long long __V)
231*344a7f5eSAndroid Build Coastguard Worker {
232*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_wrfsbase64(__V);
233*344a7f5eSAndroid Build Coastguard Worker }
234*344a7f5eSAndroid Build Coastguard Worker 
235*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
_writegsbase_u32(unsigned int __V)236*344a7f5eSAndroid Build Coastguard Worker _writegsbase_u32(unsigned int __V)
237*344a7f5eSAndroid Build Coastguard Worker {
238*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_wrgsbase32(__V);
239*344a7f5eSAndroid Build Coastguard Worker }
240*344a7f5eSAndroid Build Coastguard Worker 
241*344a7f5eSAndroid Build Coastguard Worker static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
_writegsbase_u64(unsigned long long __V)242*344a7f5eSAndroid Build Coastguard Worker _writegsbase_u64(unsigned long long __V)
243*344a7f5eSAndroid Build Coastguard Worker {
244*344a7f5eSAndroid Build Coastguard Worker   return __builtin_ia32_wrgsbase64(__V);
245*344a7f5eSAndroid Build Coastguard Worker }
246*344a7f5eSAndroid Build Coastguard Worker 
247*344a7f5eSAndroid Build Coastguard Worker #endif
248*344a7f5eSAndroid Build Coastguard Worker #endif /* __FSGSBASE__ */
249*344a7f5eSAndroid Build Coastguard Worker 
250*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__RTM__)
251*344a7f5eSAndroid Build Coastguard Worker #include <rtmintrin.h>
252*344a7f5eSAndroid Build Coastguard Worker #include <xtestintrin.h>
253*344a7f5eSAndroid Build Coastguard Worker #endif
254*344a7f5eSAndroid Build Coastguard Worker 
255*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__SHA__)
256*344a7f5eSAndroid Build Coastguard Worker #include <shaintrin.h>
257*344a7f5eSAndroid Build Coastguard Worker #endif
258*344a7f5eSAndroid Build Coastguard Worker 
259*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__FXSR__)
260*344a7f5eSAndroid Build Coastguard Worker #include <fxsrintrin.h>
261*344a7f5eSAndroid Build Coastguard Worker #endif
262*344a7f5eSAndroid Build Coastguard Worker 
263*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVE__)
264*344a7f5eSAndroid Build Coastguard Worker #include <xsaveintrin.h>
265*344a7f5eSAndroid Build Coastguard Worker #endif
266*344a7f5eSAndroid Build Coastguard Worker 
267*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVEOPT__)
268*344a7f5eSAndroid Build Coastguard Worker #include <xsaveoptintrin.h>
269*344a7f5eSAndroid Build Coastguard Worker #endif
270*344a7f5eSAndroid Build Coastguard Worker 
271*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVEC__)
272*344a7f5eSAndroid Build Coastguard Worker #include <xsavecintrin.h>
273*344a7f5eSAndroid Build Coastguard Worker #endif
274*344a7f5eSAndroid Build Coastguard Worker 
275*344a7f5eSAndroid Build Coastguard Worker #if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVES__)
276*344a7f5eSAndroid Build Coastguard Worker #include <xsavesintrin.h>
277*344a7f5eSAndroid Build Coastguard Worker #endif
278*344a7f5eSAndroid Build Coastguard Worker 
279*344a7f5eSAndroid Build Coastguard Worker /* Some intrinsics inside adxintrin.h are available only on processors with ADX,
280*344a7f5eSAndroid Build Coastguard Worker  * whereas others are also available at all times. */
281*344a7f5eSAndroid Build Coastguard Worker #include <adxintrin.h>
282*344a7f5eSAndroid Build Coastguard Worker 
283*344a7f5eSAndroid Build Coastguard Worker #endif /* __IMMINTRIN_H */
284