43 # error "Please include <private/qsimd_p.h> instead"
64 #define QSimdInitialized (Q_UINT64_C(1) << 0)
67 #define CpuFeatureSSE2 (Q_UINT64_C(1) << 1)
68 #define QT_FUNCTION_TARGET_STRING_SSE2 "sse2"
71 #define CpuFeatureSSE3 (Q_UINT64_C(1) << 2)
72 #define QT_FUNCTION_TARGET_STRING_SSE3 "sse3"
73 #define CpuFeatureSSSE3 (Q_UINT64_C(1) << 3)
74 #define QT_FUNCTION_TARGET_STRING_SSSE3 "ssse3"
75 #define CpuFeatureFMA (Q_UINT64_C(1) << 4)
76 #define QT_FUNCTION_TARGET_STRING_FMA "fma"
77 #define CpuFeatureSSE4_1 (Q_UINT64_C(1) << 5)
78 #define QT_FUNCTION_TARGET_STRING_SSE4_1 "sse4.1"
79 #define CpuFeatureSSE4_2 (Q_UINT64_C(1) << 6)
80 #define QT_FUNCTION_TARGET_STRING_SSE4_2 "sse4.2"
81 #define CpuFeatureMOVBE (Q_UINT64_C(1) << 7)
82 #define QT_FUNCTION_TARGET_STRING_MOVBE "movbe"
83 #define CpuFeaturePOPCNT (Q_UINT64_C(1) << 8)
84 #define QT_FUNCTION_TARGET_STRING_POPCNT "popcnt"
85 #define CpuFeatureAES (Q_UINT64_C(1) << 9)
86 #define QT_FUNCTION_TARGET_STRING_AES "aes,sse4.2"
87 #define CpuFeatureAVX (Q_UINT64_C(1) << 10)
88 #define QT_FUNCTION_TARGET_STRING_AVX "avx"
89 #define CpuFeatureF16C (Q_UINT64_C(1) << 11)
90 #define QT_FUNCTION_TARGET_STRING_F16C "f16c"
91 #define CpuFeatureRDRND (Q_UINT64_C(1) << 12)
92 #define QT_FUNCTION_TARGET_STRING_RDRND "rdrnd"
95 #define CpuFeatureBMI (Q_UINT64_C(1) << 13)
96 #define QT_FUNCTION_TARGET_STRING_BMI "bmi"
97 #define CpuFeatureHLE (Q_UINT64_C(1) << 14)
98 #define QT_FUNCTION_TARGET_STRING_HLE "hle"
99 #define CpuFeatureAVX2 (Q_UINT64_C(1) << 15)
100 #define QT_FUNCTION_TARGET_STRING_AVX2 "avx2"
101 #define CpuFeatureBMI2 (Q_UINT64_C(1) << 16)
102 #define QT_FUNCTION_TARGET_STRING_BMI2 "bmi2"
103 #define CpuFeatureRTM (Q_UINT64_C(1) << 17)
104 #define QT_FUNCTION_TARGET_STRING_RTM "rtm"
105 #define CpuFeatureAVX512F (Q_UINT64_C(1) << 18)
106 #define QT_FUNCTION_TARGET_STRING_AVX512F "avx512f"
107 #define CpuFeatureAVX512DQ (Q_UINT64_C(1) << 19)
108 #define QT_FUNCTION_TARGET_STRING_AVX512DQ "avx512dq"
109 #define CpuFeatureRDSEED (Q_UINT64_C(1) << 20)
110 #define QT_FUNCTION_TARGET_STRING_RDSEED "rdseed"
111 #define CpuFeatureAVX512IFMA (Q_UINT64_C(1) << 21)
112 #define QT_FUNCTION_TARGET_STRING_AVX512IFMA "avx512ifma"
113 #define CpuFeatureAVX512PF (Q_UINT64_C(1) << 22)
114 #define QT_FUNCTION_TARGET_STRING_AVX512PF "avx512pf"
115 #define CpuFeatureAVX512ER (Q_UINT64_C(1) << 23)
116 #define QT_FUNCTION_TARGET_STRING_AVX512ER "avx512er"
117 #define CpuFeatureAVX512CD (Q_UINT64_C(1) << 24)
118 #define QT_FUNCTION_TARGET_STRING_AVX512CD "avx512cd"
119 #define CpuFeatureSHA (Q_UINT64_C(1) << 25)
120 #define QT_FUNCTION_TARGET_STRING_SHA "sha"
121 #define CpuFeatureAVX512BW (Q_UINT64_C(1) << 26)
122 #define QT_FUNCTION_TARGET_STRING_AVX512BW "avx512bw"
123 #define CpuFeatureAVX512VL (Q_UINT64_C(1) << 27)
124 #define QT_FUNCTION_TARGET_STRING_AVX512VL "avx512vl"
127 #define CpuFeatureAVX512VBMI (Q_UINT64_C(1) << 28)
128 #define QT_FUNCTION_TARGET_STRING_AVX512VBMI "avx512vbmi"
129 #define CpuFeatureAVX512VBMI2 (Q_UINT64_C(1) << 29)
130 #define QT_FUNCTION_TARGET_STRING_AVX512VBMI2 "avx512vbmi2"
131 #define CpuFeatureGFNI (Q_UINT64_C(1) << 30)
132 #define QT_FUNCTION_TARGET_STRING_GFNI "gfni"
133 #define CpuFeatureVAES (Q_UINT64_C(1) << 31)
134 #define QT_FUNCTION_TARGET_STRING_VAES "vaes"
135 #define CpuFeatureAVX512VNNI (Q_UINT64_C(1) << 32)
136 #define QT_FUNCTION_TARGET_STRING_AVX512VNNI "avx512vnni"
137 #define CpuFeatureAVX512BITALG (Q_UINT64_C(1) << 33)
138 #define QT_FUNCTION_TARGET_STRING_AVX512BITALG "avx512bitalg"
139 #define CpuFeatureAVX512VPOPCNTDQ (Q_UINT64_C(1) << 34)
140 #define QT_FUNCTION_TARGET_STRING_AVX512VPOPCNTDQ "avx512vpopcntdq"
143 #define CpuFeatureAVX5124NNIW (Q_UINT64_C(1) << 35)
144 #define QT_FUNCTION_TARGET_STRING_AVX5124NNIW "avx5124nniw"
145 #define CpuFeatureAVX5124FMAPS (Q_UINT64_C(1) << 36)
146 #define QT_FUNCTION_TARGET_STRING_AVX5124FMAPS "avx5124fmaps"
148 static const quint64 qCompilerCpuFeatures = 0
209 #ifdef __AVX512IFMA__
230 #ifdef __AVX512VBMI__
233 #ifdef __AVX512VBMI2__
242 #ifdef __AVX512VNNI__
245 #ifdef __AVX512BITALG__
248 #ifdef __AVX512VPOPCNTDQ__
251 #ifdef __AVX5124NNIW__
254 #ifdef __AVX5124FMAPS__
unsigned long long quint64
#define CpuFeatureAVX512IFMA
#define CpuFeatureAVX512F
#define CpuFeatureAVX512VL
#define CpuFeatureAVX5124FMAPS
#define CpuFeatureAVX512VBMI
#define CpuFeatureAVX512VBMI2
#define CpuFeatureAVX512BW
#define CpuFeatureAVX512VPOPCNTDQ
#define CpuFeatureAVX512DQ
#define CpuFeatureAVX5124NNIW
#define CpuFeatureAVX512ER
#define CpuFeatureAVX512CD
#define CpuFeatureAVX512PF
#define CpuFeatureAVX512VNNI
#define CpuFeatureAVX512BITALG