xref: /aosp_15_r20/external/clang/lib/Headers/x86intrin.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li /*===---- x86intrin.h - X86 intrinsics -------------------------------------===
2*67e74705SXin Li  *
3*67e74705SXin Li  * Permission is hereby granted, free of charge, to any person obtaining a copy
4*67e74705SXin Li  * of this software and associated documentation files (the "Software"), to deal
5*67e74705SXin Li  * in the Software without restriction, including without limitation the rights
6*67e74705SXin Li  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7*67e74705SXin Li  * copies of the Software, and to permit persons to whom the Software is
8*67e74705SXin Li  * furnished to do so, subject to the following conditions:
9*67e74705SXin Li  *
10*67e74705SXin Li  * The above copyright notice and this permission notice shall be included in
11*67e74705SXin Li  * all copies or substantial portions of the Software.
12*67e74705SXin Li  *
13*67e74705SXin Li  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14*67e74705SXin Li  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15*67e74705SXin Li  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16*67e74705SXin Li  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17*67e74705SXin Li  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18*67e74705SXin Li  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19*67e74705SXin Li  * THE SOFTWARE.
20*67e74705SXin Li  *
21*67e74705SXin Li  *===-----------------------------------------------------------------------===
22*67e74705SXin Li  */
23*67e74705SXin Li 
24*67e74705SXin Li #ifndef __X86INTRIN_H
25*67e74705SXin Li #define __X86INTRIN_H
26*67e74705SXin Li 
27*67e74705SXin Li #include <ia32intrin.h>
28*67e74705SXin Li 
29*67e74705SXin Li #include <immintrin.h>
30*67e74705SXin Li 
31*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__3dNOW__)
32*67e74705SXin Li #include <mm3dnow.h>
33*67e74705SXin Li #endif
34*67e74705SXin Li 
35*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI__)
36*67e74705SXin Li #include <bmiintrin.h>
37*67e74705SXin Li #endif
38*67e74705SXin Li 
39*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI2__)
40*67e74705SXin Li #include <bmi2intrin.h>
41*67e74705SXin Li #endif
42*67e74705SXin Li 
43*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__LZCNT__)
44*67e74705SXin Li #include <lzcntintrin.h>
45*67e74705SXin Li #endif
46*67e74705SXin Li 
47*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__POPCNT__)
48*67e74705SXin Li #include <popcntintrin.h>
49*67e74705SXin Li #endif
50*67e74705SXin Li 
51*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDSEED__)
52*67e74705SXin Li #include <rdseedintrin.h>
53*67e74705SXin Li #endif
54*67e74705SXin Li 
55*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__PRFCHW__)
56*67e74705SXin Li #include <prfchwintrin.h>
57*67e74705SXin Li #endif
58*67e74705SXin Li 
59*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE4A__)
60*67e74705SXin Li #include <ammintrin.h>
61*67e74705SXin Li #endif
62*67e74705SXin Li 
63*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__FMA4__)
64*67e74705SXin Li #include <fma4intrin.h>
65*67e74705SXin Li #endif
66*67e74705SXin Li 
67*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__XOP__)
68*67e74705SXin Li #include <xopintrin.h>
69*67e74705SXin Li #endif
70*67e74705SXin Li 
71*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__TBM__)
72*67e74705SXin Li #include <tbmintrin.h>
73*67e74705SXin Li #endif
74*67e74705SXin Li 
75*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__F16C__)
76*67e74705SXin Li #include <f16cintrin.h>
77*67e74705SXin Li #endif
78*67e74705SXin Li 
79*67e74705SXin Li #if !defined(_MSC_VER) || __has_feature(modules) || defined(__MWAITX__)
80*67e74705SXin Li #include <mwaitxintrin.h>
81*67e74705SXin Li #endif
82*67e74705SXin Li 
83*67e74705SXin Li /* FIXME: LWP */
84*67e74705SXin Li 
85*67e74705SXin Li #endif /* __X86INTRIN_H */
86