1 // This is a generated file. DO NOT EDIT.
2 // Please see util/x86simdgen/generate.pl
3 #include "qsimd_p.h"
4 
5 static const char features_string[] =
6     " sse2\0"
7     " sse3\0"
8     " ssse3\0"
9     " fma\0"
10     " sse4.1\0"
11     " sse4.2\0"
12     " movbe\0"
13     " popcnt\0"
14     " aes\0"
15     " avx\0"
16     " f16c\0"
17     " rdrnd\0"
18     " bmi\0"
19     " hle\0"
20     " avx2\0"
21     " bmi2\0"
22     " rtm\0"
23     " avx512f\0"
24     " avx512dq\0"
25     " rdseed\0"
26     " avx512ifma\0"
27     " avx512pf\0"
28     " avx512er\0"
29     " avx512cd\0"
30     " sha\0"
31     " avx512bw\0"
32     " avx512vl\0"
33     " avx512vbmi\0"
34     " avx512vbmi2\0"
35     " gfni\0"
36     " vaes\0"
37     " avx512vnni\0"
38     " avx512bitalg\0"
39     " avx512vpopcntdq\0"
40     " avx5124nniw\0"
41     " avx5124fmaps\0"
42     "\0";
43 
44 static const quint16 features_indices[] = {
45     306,   0,   6,  12,  19,  24,  32,  40,
46      47,  55,  60,  65,  71,  78,  83,  88,
47      94, 100, 105, 114, 124, 132, 144, 154,
48     164, 174, 179, 189, 199, 211, 224, 230,
49     236, 248, 262, 279, 292
50 };
51 
52 enum X86CpuidLeaves {
53     Leaf1ECX,
54     Leaf1EDX,
55     Leaf7_0EBX,
56     Leaf7_0ECX,
57     Leaf7_0EDX,
58     X86CpuidMaxLeaf
59 };
60 
61 static const quint8 x86_locators[] = {
62     Leaf1EDX*32 + 26, // sse2
63     Leaf1ECX*32 +  0, // sse3
64     Leaf1ECX*32 +  9, // ssse3
65     Leaf1ECX*32 + 12, // fma
66     Leaf1ECX*32 + 19, // sse4.1
67     Leaf1ECX*32 + 20, // sse4.2
68     Leaf1ECX*32 + 22, // movbe
69     Leaf1ECX*32 + 23, // popcnt
70     Leaf1ECX*32 + 25, // aes
71     Leaf1ECX*32 + 28, // avx
72     Leaf1ECX*32 + 29, // f16c
73     Leaf1ECX*32 + 30, // rdrnd
74     Leaf7_0EBX*32 +  3, // bmi
75     Leaf7_0EBX*32 +  4, // hle
76     Leaf7_0EBX*32 +  5, // avx2
77     Leaf7_0EBX*32 +  8, // bmi2
78     Leaf7_0EBX*32 + 11, // rtm
79     Leaf7_0EBX*32 + 16, // avx512f
80     Leaf7_0EBX*32 + 17, // avx512dq
81     Leaf7_0EBX*32 + 18, // rdseed
82     Leaf7_0EBX*32 + 21, // avx512ifma
83     Leaf7_0EBX*32 + 26, // avx512pf
84     Leaf7_0EBX*32 + 27, // avx512er
85     Leaf7_0EBX*32 + 28, // avx512cd
86     Leaf7_0EBX*32 + 29, // sha
87     Leaf7_0EBX*32 + 30, // avx512bw
88     Leaf7_0EBX*32 + 31, // avx512vl
89     Leaf7_0ECX*32 +  1, // avx512vbmi
90     Leaf7_0ECX*32 +  6, // avx512vbmi2
91     Leaf7_0ECX*32 +  8, // gfni
92     Leaf7_0ECX*32 +  9, // vaes
93     Leaf7_0ECX*32 + 11, // avx512vnni
94     Leaf7_0ECX*32 + 12, // avx512bitalg
95     Leaf7_0ECX*32 + 14, // avx512vpopcntdq
96     Leaf7_0EDX*32 +  2, // avx5124nniw
97     Leaf7_0EDX*32 +  3  // avx5124fmaps
98 };
99 
100 // List of AVX512 features (see detectProcessorFeatures())
101 static const quint64 AllAVX512 = 0
102         | CpuFeatureAVX512F
103         | CpuFeatureAVX512DQ
104         | CpuFeatureAVX512IFMA
105         | CpuFeatureAVX512PF
106         | CpuFeatureAVX512ER
107         | CpuFeatureAVX512CD
108         | CpuFeatureAVX512BW
109         | CpuFeatureAVX512VL
110         | CpuFeatureAVX512VBMI
111         | CpuFeatureAVX512VBMI2
112         | CpuFeatureAVX512VNNI
113         | CpuFeatureAVX512BITALG
114         | CpuFeatureAVX512VPOPCNTDQ
115         | CpuFeatureAVX5124NNIW
116         | CpuFeatureAVX5124FMAPS;
117