diff options
Diffstat (limited to 'src/corelib/tools/qsimd_x86_p.h')
-rw-r--r-- | src/corelib/tools/qsimd_x86_p.h | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/src/corelib/tools/qsimd_x86_p.h b/src/corelib/tools/qsimd_x86_p.h new file mode 100644 index 0000000000..2434e2b797 --- /dev/null +++ b/src/corelib/tools/qsimd_x86_p.h @@ -0,0 +1,222 @@ +// This is a generated file. DO NOT EDIT. +// Please see util/x86simdgen/generate.pl +#ifndef QSIMD_P_H +# error "Please include <private/qsimd_p.h> instead" +#endif +#ifndef QSIMD_X86_P_H +#define QSIMD_X86_P_H + +#include "qsimd_p.h" + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +QT_BEGIN_NAMESPACE + +// used only to indicate that the CPU detection was initialized +#define QSimdInitialized (Q_UINT64_C(1) << 0) + +// in CPUID Leaf 1, EDX: +#define CpuFeatureSSE2 (Q_UINT64_C(1) << 1) +#define QT_FUNCTION_TARGET_STRING_SSE2 "sse2" + +// in CPUID Leaf 1, ECX: +#define CpuFeatureSSE3 (Q_UINT64_C(1) << 2) +#define QT_FUNCTION_TARGET_STRING_SSE3 "sse3" +#define CpuFeatureSSSE3 (Q_UINT64_C(1) << 3) +#define QT_FUNCTION_TARGET_STRING_SSSE3 "ssse3" +#define CpuFeatureFMA (Q_UINT64_C(1) << 4) +#define QT_FUNCTION_TARGET_STRING_FMA "fma" +#define CpuFeatureSSE4_1 (Q_UINT64_C(1) << 5) +#define QT_FUNCTION_TARGET_STRING_SSE4_1 "sse4.1" +#define CpuFeatureSSE4_2 (Q_UINT64_C(1) << 6) +#define QT_FUNCTION_TARGET_STRING_SSE4_2 "sse4.2" +#define CpuFeatureMOVBE (Q_UINT64_C(1) << 7) +#define QT_FUNCTION_TARGET_STRING_MOVBE "movbe" +#define CpuFeaturePOPCNT (Q_UINT64_C(1) << 8) +#define QT_FUNCTION_TARGET_STRING_POPCNT "popcnt" +#define CpuFeatureAES (Q_UINT64_C(1) << 9) +#define QT_FUNCTION_TARGET_STRING_AES "aes,sse4.2" +#define CpuFeatureAVX (Q_UINT64_C(1) << 10) +#define QT_FUNCTION_TARGET_STRING_AVX "avx" +#define CpuFeatureF16C (Q_UINT64_C(1) << 11) +#define QT_FUNCTION_TARGET_STRING_F16C "f16c" +#define CpuFeatureRDRND (Q_UINT64_C(1) << 12) +#define QT_FUNCTION_TARGET_STRING_RDRND "rdrnd" + +// in CPUID Leaf 7, Sub-leaf 0, EBX: +#define CpuFeatureBMI (Q_UINT64_C(1) << 13) +#define QT_FUNCTION_TARGET_STRING_BMI "bmi" +#define CpuFeatureHLE (Q_UINT64_C(1) << 14) +#define QT_FUNCTION_TARGET_STRING_HLE "hle" +#define CpuFeatureAVX2 (Q_UINT64_C(1) << 15) +#define QT_FUNCTION_TARGET_STRING_AVX2 "avx2" +#define CpuFeatureBMI2 (Q_UINT64_C(1) << 16) +#define QT_FUNCTION_TARGET_STRING_BMI2 "bmi2" +#define CpuFeatureRTM (Q_UINT64_C(1) << 17) +#define QT_FUNCTION_TARGET_STRING_RTM "rtm" +#define CpuFeatureAVX512F (Q_UINT64_C(1) << 18) +#define QT_FUNCTION_TARGET_STRING_AVX512F "avx512f" +#define CpuFeatureAVX512DQ (Q_UINT64_C(1) << 19) +#define QT_FUNCTION_TARGET_STRING_AVX512DQ "avx512dq" +#define CpuFeatureRDSEED (Q_UINT64_C(1) << 20) +#define QT_FUNCTION_TARGET_STRING_RDSEED "rdseed" +#define CpuFeatureAVX512IFMA (Q_UINT64_C(1) << 21) +#define QT_FUNCTION_TARGET_STRING_AVX512IFMA "avx512ifma" +#define CpuFeatureAVX512PF (Q_UINT64_C(1) << 22) +#define QT_FUNCTION_TARGET_STRING_AVX512PF "avx512pf" +#define CpuFeatureAVX512ER (Q_UINT64_C(1) << 23) +#define QT_FUNCTION_TARGET_STRING_AVX512ER "avx512er" +#define CpuFeatureAVX512CD (Q_UINT64_C(1) << 24) +#define QT_FUNCTION_TARGET_STRING_AVX512CD "avx512cd" +#define CpuFeatureSHA (Q_UINT64_C(1) << 25) +#define QT_FUNCTION_TARGET_STRING_SHA "sha" +#define CpuFeatureAVX512BW (Q_UINT64_C(1) << 26) +#define QT_FUNCTION_TARGET_STRING_AVX512BW "avx512bw" +#define CpuFeatureAVX512VL (Q_UINT64_C(1) << 27) +#define QT_FUNCTION_TARGET_STRING_AVX512VL "avx512vl" + +// in CPUID Leaf 7, Sub-leaf 0, ECX: +#define CpuFeatureAVX512VBMI (Q_UINT64_C(1) << 28) +#define QT_FUNCTION_TARGET_STRING_AVX512VBMI "avx512vbmi" +#define CpuFeatureAVX512VBMI2 (Q_UINT64_C(1) << 29) +#define QT_FUNCTION_TARGET_STRING_AVX512VBMI2 "avx512vbmi2" +#define CpuFeatureGFNI (Q_UINT64_C(1) << 30) +#define QT_FUNCTION_TARGET_STRING_GFNI "gfni" +#define CpuFeatureVAES (Q_UINT64_C(1) << 31) +#define QT_FUNCTION_TARGET_STRING_VAES "vaes" +#define CpuFeatureAVX512VNNI (Q_UINT64_C(1) << 32) +#define QT_FUNCTION_TARGET_STRING_AVX512VNNI "avx512vnni" +#define CpuFeatureAVX512BITALG (Q_UINT64_C(1) << 33) +#define QT_FUNCTION_TARGET_STRING_AVX512BITALG "avx512bitalg" +#define CpuFeatureAVX512VPOPCNTDQ (Q_UINT64_C(1) << 34) +#define QT_FUNCTION_TARGET_STRING_AVX512VPOPCNTDQ "avx512vpopcntdq" + +// in CPUID Leaf 7, Sub-leaf 0, EDX: +#define CpuFeatureAVX5124NNIW (Q_UINT64_C(1) << 35) +#define QT_FUNCTION_TARGET_STRING_AVX5124NNIW "avx5124nniw" +#define CpuFeatureAVX5124FMAPS (Q_UINT64_C(1) << 36) +#define QT_FUNCTION_TARGET_STRING_AVX5124FMAPS "avx5124fmaps" + +static const quint64 qCompilerCpuFeatures = 0 +#ifdef __SSE2__ + | CpuFeatureSSE2 +#endif +#ifdef __SSE3__ + | CpuFeatureSSE3 +#endif +#ifdef __SSSE3__ + | CpuFeatureSSSE3 +#endif +#ifdef __FMA__ + | CpuFeatureFMA +#endif +#ifdef __SSE4_1__ + | CpuFeatureSSE4_1 +#endif +#ifdef __SSE4_2__ + | CpuFeatureSSE4_2 +#endif +#ifdef __MOVBE__ + | CpuFeatureMOVBE +#endif +#ifdef __POPCNT__ + | CpuFeaturePOPCNT +#endif +#ifdef __AES__ + | CpuFeatureAES +#endif +#ifdef __AVX__ + | CpuFeatureAVX +#endif +#ifdef __F16C__ + | CpuFeatureF16C +#endif +#ifdef __RDRND__ + | CpuFeatureRDRND +#endif +#ifdef __BMI__ + | CpuFeatureBMI +#endif +#ifdef __HLE__ + | CpuFeatureHLE +#endif +#ifdef __AVX2__ + | CpuFeatureAVX2 +#endif +#ifdef __BMI2__ + | CpuFeatureBMI2 +#endif +#ifdef __RTM__ + | CpuFeatureRTM +#endif +#ifdef __AVX512F__ + | CpuFeatureAVX512F +#endif +#ifdef __AVX512DQ__ + | CpuFeatureAVX512DQ +#endif +#ifdef __RDSEED__ + | CpuFeatureRDSEED +#endif +#ifdef __AVX512IFMA__ + | CpuFeatureAVX512IFMA +#endif +#ifdef __AVX512PF__ + | CpuFeatureAVX512PF +#endif +#ifdef __AVX512ER__ + | CpuFeatureAVX512ER +#endif +#ifdef __AVX512CD__ + | CpuFeatureAVX512CD +#endif +#ifdef __SHA__ + | CpuFeatureSHA +#endif +#ifdef __AVX512BW__ + | CpuFeatureAVX512BW +#endif +#ifdef __AVX512VL__ + | CpuFeatureAVX512VL +#endif +#ifdef __AVX512VBMI__ + | CpuFeatureAVX512VBMI +#endif +#ifdef __AVX512VBMI2__ + | CpuFeatureAVX512VBMI2 +#endif +#ifdef __GFNI__ + | CpuFeatureGFNI +#endif +#ifdef __VAES__ + | CpuFeatureVAES +#endif +#ifdef __AVX512VNNI__ + | CpuFeatureAVX512VNNI +#endif +#ifdef __AVX512BITALG__ + | CpuFeatureAVX512BITALG +#endif +#ifdef __AVX512VPOPCNTDQ__ + | CpuFeatureAVX512VPOPCNTDQ +#endif +#ifdef __AVX5124NNIW__ + | CpuFeatureAVX5124NNIW +#endif +#ifdef __AVX5124FMAPS__ + | CpuFeatureAVX5124FMAPS +#endif + ; + +QT_END_NAMESPACE + +#endif // QSIMD_X86_P_H |