@@ -39,55 +39,59 @@ extern "C" {
3939import os, sys
4040sys.path.insert(0, os.path.realpath(os.path.join(os.getcwd(), "Tools")))
4141from cpuinfo.cpuid_features_gen import generate_cpuid_features_enum
42- print(generate_cpuid_features_enum("_Py_cpuid_feature_mask" ))
42+ print(generate_cpuid_features_enum())
4343[python start generated code]*/
44- // fmt: off
45- /** Enumeration for CPUID features */
46- enum _Py_cpuid_feature_mask_e {
47- /* CPUID (LEAF=1, SUBLEAF=0) [ECX] */
48- _Py_CPUID_MASK_ECX_L1_SSE3 = 0x00000001 , // bit = 0
49- _Py_CPUID_MASK_ECX_L1_PCLMULQDQ = 0x00000002 , // bit = 1
50- _Py_CPUID_MASK_ECX_L1_SSSE3 = 0x00000200 , // bit = 9
51- _Py_CPUID_MASK_ECX_L1_FMA = 0x00001000 , // bit = 12
52- _Py_CPUID_MASK_ECX_L1_SSE4_1 = 0x00080000 , // bit = 19
53- _Py_CPUID_MASK_ECX_L1_SSE4_2 = 0x00100000 , // bit = 20
54- _Py_CPUID_MASK_ECX_L1_POPCNT = 0x00800000 , // bit = 23
55- _Py_CPUID_MASK_ECX_L1_XSAVE = 0x04000000 , // bit = 26
56- _Py_CPUID_MASK_ECX_L1_OSXSAVE = 0x08000000 , // bit = 27
57- _Py_CPUID_MASK_ECX_L1_AVX = 0x10000000 , // bit = 28
58- /* CPUID (LEAF=1, SUBLEAF=0) [EDX] */
59- _Py_CPUID_MASK_EDX_L1_CMOV = 0x00008000 , // bit = 15
60- _Py_CPUID_MASK_EDX_L1_SSE = 0x02000000 , // bit = 25
61- _Py_CPUID_MASK_EDX_L1_SSE2 = 0x04000000 , // bit = 26
62- /* CPUID (LEAF=7, SUBLEAF=0) [EBX] */
63- _Py_CPUID_MASK_EBX_L7_AVX2 = 0x00000020 , // bit = 5
64- _Py_CPUID_MASK_EBX_L7_AVX512_F = 0x00010000 , // bit = 16
65- _Py_CPUID_MASK_EBX_L7_AVX512_DQ = 0x00020000 , // bit = 17
66- _Py_CPUID_MASK_EBX_L7_AVX512_IFMA = 0x00200000 , // bit = 21
67- _Py_CPUID_MASK_EBX_L7_AVX512_PF = 0x04000000 , // bit = 26
68- _Py_CPUID_MASK_EBX_L7_AVX512_ER = 0x08000000 , // bit = 27
69- _Py_CPUID_MASK_EBX_L7_AVX512_CD = 0x10000000 , // bit = 28
70- _Py_CPUID_MASK_EBX_L7_AVX512_BW = 0x40000000 , // bit = 30
71- _Py_CPUID_MASK_EBX_L7_AVX512_VL = 0x80000000 , // bit = 31
72- /* CPUID (LEAF=7, SUBLEAF=0) [ECX] */
73- _Py_CPUID_MASK_ECX_L7_AVX512_VBMI = 0x00000002 , // bit = 1
74- _Py_CPUID_MASK_ECX_L7_AVX512_VBMI2 = 0x00000040 , // bit = 6
75- _Py_CPUID_MASK_ECX_L7_AVX512_VNNI = 0x00000800 , // bit = 11
76- _Py_CPUID_MASK_ECX_L7_AVX512_BITALG = 0x00001000 , // bit = 12
77- _Py_CPUID_MASK_ECX_L7_AVX512_VPOPCNTDQ = 0x00004000 , // bit = 14
78- /* CPUID (LEAF=7, SUBLEAF=0) [EDX] */
79- _Py_CPUID_MASK_EDX_L7_AVX512_4VNNIW = 0x00000004 , // bit = 2
80- _Py_CPUID_MASK_EDX_L7_AVX512_4FMAPS = 0x00000008 , // bit = 3
81- _Py_CPUID_MASK_EDX_L7_AVX512_VP2INTERSECT = 0x00000100 , // bit = 8
82- /* CPUID (LEAF=7, SUBLEAF=1) [EAX] */
83- _Py_CPUID_MASK_EAX_L7S1_AVX_VNNI = 0x00000010 , // bit = 4
84- _Py_CPUID_MASK_EAX_L7S1_AVX_IFMA = 0x00800000 , // bit = 23
85- /* CPUID (LEAF=7, SUBLEAF=1) [EDX] */
86- _Py_CPUID_MASK_EDX_L7S1_AVX_VNNI_INT8 = 0x00000010 , // bit = 4
87- _Py_CPUID_MASK_EDX_L7S1_AVX_NE_CONVERT = 0x00000020 , // bit = 5
88- _Py_CPUID_MASK_EDX_L7S1_AVX_VNNI_INT16 = 0x00000400 , // bit = 10
89- };
90- // fmt: on
91- /*[python end generated code: output=8e58b0997d69bbf8 input=fce00935f64021f9]*/
44+ // clang-format off
45+ /** Constants for CPUID features */
46+ /* CPUID (LEAF=1, SUBLEAF=0) [ECX] */
47+ #define _Py_CPUID_MASK_ECX_L1_SSE3 0x00000001 // bit = 0
48+ #define _Py_CPUID_MASK_ECX_L1_PCLMULQDQ 0x00000002 // bit = 1
49+ #define _Py_CPUID_MASK_ECX_L1_SSSE3 0x00000200 // bit = 9
50+ #define _Py_CPUID_MASK_ECX_L1_FMA 0x00001000 // bit = 12
51+ #define _Py_CPUID_MASK_ECX_L1_SSE4_1 0x00080000 // bit = 19
52+ #define _Py_CPUID_MASK_ECX_L1_SSE4_2 0x00100000 // bit = 20
53+ #define _Py_CPUID_MASK_ECX_L1_POPCNT 0x00800000 // bit = 23
54+ #define _Py_CPUID_MASK_ECX_L1_XSAVE 0x04000000 // bit = 26
55+ #define _Py_CPUID_MASK_ECX_L1_OSXSAVE 0x08000000 // bit = 27
56+ #define _Py_CPUID_MASK_ECX_L1_AVX 0x10000000 // bit = 28
57+
58+ /* CPUID (LEAF=1, SUBLEAF=0) [EDX] */
59+ #define _Py_CPUID_MASK_EDX_L1_CMOV 0x00008000 // bit = 15
60+ #define _Py_CPUID_MASK_EDX_L1_SSE 0x02000000 // bit = 25
61+ #define _Py_CPUID_MASK_EDX_L1_SSE2 0x04000000 // bit = 26
62+
63+ /* CPUID (LEAF=7, SUBLEAF=0) [EBX] */
64+ #define _Py_CPUID_MASK_EBX_L7_AVX2 0x00000020 // bit = 5
65+ #define _Py_CPUID_MASK_EBX_L7_AVX512_F 0x00010000 // bit = 16
66+ #define _Py_CPUID_MASK_EBX_L7_AVX512_DQ 0x00020000 // bit = 17
67+ #define _Py_CPUID_MASK_EBX_L7_AVX512_IFMA 0x00200000 // bit = 21
68+ #define _Py_CPUID_MASK_EBX_L7_AVX512_PF 0x04000000 // bit = 26
69+ #define _Py_CPUID_MASK_EBX_L7_AVX512_ER 0x08000000 // bit = 27
70+ #define _Py_CPUID_MASK_EBX_L7_AVX512_CD 0x10000000 // bit = 28
71+ #define _Py_CPUID_MASK_EBX_L7_AVX512_BW 0x40000000 // bit = 30
72+ #define _Py_CPUID_MASK_EBX_L7_AVX512_VL 0x80000000 // bit = 31
73+
74+ /* CPUID (LEAF=7, SUBLEAF=0) [ECX] */
75+ #define _Py_CPUID_MASK_ECX_L7_AVX512_VBMI 0x00000002 // bit = 1
76+ #define _Py_CPUID_MASK_ECX_L7_AVX512_VBMI2 0x00000040 // bit = 6
77+ #define _Py_CPUID_MASK_ECX_L7_AVX512_VNNI 0x00000800 // bit = 11
78+ #define _Py_CPUID_MASK_ECX_L7_AVX512_BITALG 0x00001000 // bit = 12
79+ #define _Py_CPUID_MASK_ECX_L7_AVX512_VPOPCNTDQ 0x00004000 // bit = 14
80+
81+ /* CPUID (LEAF=7, SUBLEAF=0) [EDX] */
82+ #define _Py_CPUID_MASK_EDX_L7_AVX512_4VNNIW 0x00000004 // bit = 2
83+ #define _Py_CPUID_MASK_EDX_L7_AVX512_4FMAPS 0x00000008 // bit = 3
84+ #define _Py_CPUID_MASK_EDX_L7_AVX512_VP2INTERSECT 0x00000100 // bit = 8
85+
86+ /* CPUID (LEAF=7, SUBLEAF=1) [EAX] */
87+ #define _Py_CPUID_MASK_EAX_L7S1_AVX_VNNI 0x00000010 // bit = 4
88+ #define _Py_CPUID_MASK_EAX_L7S1_AVX_IFMA 0x00800000 // bit = 23
89+
90+ /* CPUID (LEAF=7, SUBLEAF=1) [EDX] */
91+ #define _Py_CPUID_MASK_EDX_L7S1_AVX_VNNI_INT8 0x00000010 // bit = 4
92+ #define _Py_CPUID_MASK_EDX_L7S1_AVX_NE_CONVERT 0x00000020 // bit = 5
93+ #define _Py_CPUID_MASK_EDX_L7S1_AVX_VNNI_INT16 0x00000400 // bit = 10
94+ // clang-format on
95+ /*[python end generated code: output=e9112f064e2effec input=d7df15fec9f3daa2]*/
9296
9397#endif // !Py_INTERNAL_CPUINFO_CPUID_FEATURES_H
0 commit comments