diff options
Diffstat (limited to 'clang/lib/Headers/immintrin.h')
-rw-r--r-- | clang/lib/Headers/immintrin.h | 207 |
1 files changed, 137 insertions, 70 deletions
diff --git a/clang/lib/Headers/immintrin.h b/clang/lib/Headers/immintrin.h index edf8c42ec491..e9dff2310fdf 100644 --- a/clang/lib/Headers/immintrin.h +++ b/clang/lib/Headers/immintrin.h @@ -10,198 +10,231 @@ #ifndef __IMMINTRIN_H #define __IMMINTRIN_H -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__MMX__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__MMX__) #include <mmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__SSE__) #include <xmmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE2__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__SSE2__) #include <emmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE3__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__SSE3__) #include <pmmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSSE3__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__SSSE3__) #include <tmmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__SSE4_2__) || defined(__SSE4_1__)) #include <smmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AES__) || defined(__PCLMUL__)) #include <wmmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLFLUSHOPT__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__CLFLUSHOPT__) #include <clflushoptintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLWB__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__CLWB__) #include <clwbintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX__) #include <avxintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX2__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX2__) #include <avx2intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__F16C__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__F16C__) #include <f16cintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__VPCLMULQDQ__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__VPCLMULQDQ__) #include <vpclmulqdqintrin.h> #endif /* No feature check desired due to internal checks */ #include <bmiintrin.h> -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI2__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__BMI2__) #include <bmi2intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__LZCNT__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__LZCNT__) #include <lzcntintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__POPCNT__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__POPCNT__) #include <popcntintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FMA__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__FMA__) #include <fmaintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512F__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512F__) #include <avx512fintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VL__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512VL__) #include <avx512vlintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BW__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512BW__) #include <avx512bwintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BITALG__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512BITALG__) #include <avx512bitalgintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512CD__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512CD__) #include <avx512cdintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VPOPCNTDQ__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512VPOPCNTDQ__) #include <avx512vpopcntdqintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512VPOPCNTDQ__)) #include <avx512vpopcntdqvlintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VNNI__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512VNNI__) #include <avx512vnniintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512VNNI__)) #include <avx512vlvnniintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512DQ__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512DQ__) #include <avx512dqintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BITALG__)) #include <avx512vlbitalgintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BW__)) #include <avx512vlbwintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512CD__)) #include <avx512vlcdintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512DQ__)) #include <avx512vldqintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512ER__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512ER__) #include <avx512erintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512IFMA__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512IFMA__) #include <avx512ifmaintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512IFMA__) && defined(__AVX512VL__)) #include <avx512ifmavlintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VBMI__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512VBMI__) #include <avx512vbmiintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VBMI__) && defined(__AVX512VL__)) #include <avx512vbmivlintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VBMI2__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512VBMI2__) #include <avx512vbmi2intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VBMI2__) && defined(__AVX512VL__)) #include <avx512vlvbmi2intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512PF__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512PF__) #include <avx512pfintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BF16__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512BF16__) #include <avx512bf16intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BF16__)) #include <avx512vlbf16intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PKU__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__PKU__) #include <pkuintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__VAES__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__VAES__) #include <vaesintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__GFNI__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__GFNI__) #include <gfniintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDPID__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__RDPID__) /// Returns the value of the IA32_TSC_AUX MSR (0xc0000103). /// /// \headerfile <immintrin.h> @@ -213,7 +246,8 @@ _rdpid_u32(void) { } #endif // __RDPID__ -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDRND__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__RDRND__) static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd"))) _rdrand16_step(unsigned short *__p) { @@ -235,7 +269,8 @@ _rdrand64_step(unsigned long long *__p) #endif #endif /* __RDRND__ */ -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FSGSBASE__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__FSGSBASE__) #ifdef __x86_64__ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _readfsbase_u32(void) @@ -288,7 +323,8 @@ _writegsbase_u64(unsigned long long __V) #endif #endif /* __FSGSBASE__ */ -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__MOVBE__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__MOVBE__) /* The structs used below are to force the load/store to be unaligned. This * is accomplished with the __packed__ attribute. The __may_alias__ prevents @@ -347,35 +383,42 @@ _storebe_i64(void * __P, long long __D) { #endif #endif /* __MOVBE */ -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RTM__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__RTM__) #include <rtmintrin.h> #include <xtestintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SHA__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__SHA__) #include <shaintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FXSR__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__FXSR__) #include <fxsrintrin.h> #endif /* No feature check desired due to internal MSC_VER checks */ #include <xsaveintrin.h> -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVEOPT__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__XSAVEOPT__) #include <xsaveoptintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVEC__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__XSAVEC__) #include <xsavecintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVES__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__XSAVES__) #include <xsavesintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SHSTK__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__SHSTK__) #include <cetintrin.h> #endif @@ -383,57 +426,81 @@ _storebe_i64(void * __P, long long __D) { * whereas others are also available at all times. */ #include <adxintrin.h> -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDSEED__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__RDSEED__) #include <rdseedintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WBNOINVD__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__WBNOINVD__) #include <wbnoinvdintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLDEMOTE__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__CLDEMOTE__) #include <cldemoteintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WAITPKG__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__WAITPKG__) #include <waitpkgintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ - defined(__MOVDIRI__) || defined(__MOVDIR64B__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__MOVDIRI__) || defined(__MOVDIR64B__) #include <movdirintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PCONFIG__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__PCONFIG__) #include <pconfigintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SGX__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__SGX__) #include <sgxintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PTWRITE__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__PTWRITE__) #include <ptwriteintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__INVPCID__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__INVPCID__) #include <invpcidintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ - defined(__AVX512VP2INTERSECT__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AMXTILE__) || defined(__AMXINT8__) || defined(__AMXBF16__) +#include <amxintrin.h> +#endif + +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__AVX512VP2INTERSECT__) #include <avx512vp2intersectintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512VP2INTERSECT__)) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + (defined(__AVX512VL__) && defined(__AVX512VP2INTERSECT__)) #include <avx512vlvp2intersectintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__ENQCMD__) +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__ENQCMD__) #include <enqcmdintrin.h> #endif +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__SERIALIZE__) +#include <serializeintrin.h> +#endif + +#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ + defined(__TSXLDTRK__) +#include <tsxldtrkintrin.h> +#endif + #if defined(_MSC_VER) && __has_extension(gnu_asm) /* Define the default attributes for these intrinsics */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) |