Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qsimd_x86.cpp
Go to the documentation of this file.
1
// Copyright (C) 2022 Intel Corporation.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// This is a generated file. DO NOT EDIT.
4
// Please see util/x86simdgen/README.md
5
6
#
include
"qsimd_x86_p.h"
7
8
static
const
char
features_string
[] =
9
" sse2\0"
10
" sse3\0"
11
" ssse3\0"
12
" fma\0"
13
" sse4.1\0"
14
" sse4.2\0"
15
" movbe\0"
16
" popcnt\0"
17
" aes\0"
18
" avx\0"
19
" f16c\0"
20
" bmi\0"
21
" avx2\0"
22
" bmi2\0"
23
" avx512f\0"
24
" avx512dq\0"
25
" avx512ifma\0"
26
" avx512cd\0"
27
" sha\0"
28
" avx512bw\0"
29
" avx512vl\0"
30
" avx512vbmi\0"
31
" waitpkg\0"
32
" avx512vbmi2\0"
33
" shstk\0"
34
" gfni\0"
35
" vaes\0"
36
" avx512bitalg\0"
37
" avx512vpopcntdq\0"
38
" hybrid\0"
39
" ibt\0"
40
" avx512fp16\0"
41
" raoint\0"
42
" cmpccxadd\0"
43
" avxifma\0"
44
" lam\0"
45
"\0"
;
46
47
static
const
uint16_t
features_indices
[] = {
48
0, 6, 12, 19, 24, 32, 40, 47,
49
55, 60, 65, 71, 76, 82, 88, 97,
50
107, 119, 129, 134, 144, 154, 166, 175,
51
188, 195, 201, 207, 221, 238, 246, 251,
52
263, 271, 282, 291,
53
};
54
55
enum
X86CpuidLeaves
{
56
Leaf01EDX
,
57
Leaf01ECX
,
58
Leaf07_00EBX
,
59
Leaf07_00ECX
,
60
Leaf07_00EDX
,
61
Leaf07_01EAX
,
62
Leaf07_01EDX
,
63
Leaf13_01EAX
,
64
Leaf80000001hECX
,
65
Leaf80000008hEBX
,
66
X86CpuidMaxLeaf
67
};
68
69
static
const
uint16_t
x86_locators
[] = {
70
Leaf01EDX
*32 + 26,
// sse2
71
Leaf01ECX
*32 + 0,
// sse3
72
Leaf01ECX
*32 + 9,
// ssse3
73
Leaf01ECX
*32 + 12,
// fma
74
Leaf01ECX
*32 + 19,
// sse4.1
75
Leaf01ECX
*32 + 20,
// sse4.2
76
Leaf01ECX
*32 + 22,
// movbe
77
Leaf01ECX
*32 + 23,
// popcnt
78
Leaf01ECX
*32 + 25,
// aes
79
Leaf01ECX
*32 + 28,
// avx
80
Leaf01ECX
*32 + 29,
// f16c
81
Leaf07_00EBX
*32 + 3,
// bmi
82
Leaf07_00EBX
*32 + 5,
// avx2
83
Leaf07_00EBX
*32 + 8,
// bmi2
84
Leaf07_00EBX
*32 + 16,
// avx512f
85
Leaf07_00EBX
*32 + 17,
// avx512dq
86
Leaf07_00EBX
*32 + 21,
// avx512ifma
87
Leaf07_00EBX
*32 + 28,
// avx512cd
88
Leaf07_00EBX
*32 + 29,
// sha
89
Leaf07_00EBX
*32 + 30,
// avx512bw
90
Leaf07_00EBX
*32 + 31,
// avx512vl
91
Leaf07_00ECX
*32 + 1,
// avx512vbmi
92
Leaf07_00ECX
*32 + 5,
// waitpkg
93
Leaf07_00ECX
*32 + 6,
// avx512vbmi2
94
Leaf07_00ECX
*32 + 7,
// shstk
95
Leaf07_00ECX
*32 + 8,
// gfni
96
Leaf07_00ECX
*32 + 9,
// vaes
97
Leaf07_00ECX
*32 + 12,
// avx512bitalg
98
Leaf07_00ECX
*32 + 14,
// avx512vpopcntdq
99
Leaf07_00EDX
*32 + 15,
// hybrid
100
Leaf07_00EDX
*32 + 20,
// ibt
101
Leaf07_00EDX
*32 + 23,
// avx512fp16
102
Leaf07_01EAX
*32 + 3,
// raoint
103
Leaf07_01EAX
*32 + 6,
// cmpccxadd
104
Leaf07_01EAX
*32 + 23,
// avxifma
105
Leaf07_01EAX
*32 + 26,
// lam
106
};
107
108
struct
X86Architecture
109
{
110
uint64_t
features
;
111
char
name
[17 + 1];
112
};
113
114
static
const
struct
X86Architecture
x86_architectures
[] = {
115
{
cpu_core2
,
"Core2"
},
116
{
cpu_westmere
,
"Westmere"
},
117
{
cpu_sandybridge
,
"Sandy Bridge"
},
118
{
cpu_silvermont
,
"Silvermont"
},
119
{
cpu_ivybridge
,
"Ivy Bridge"
},
120
{
cpu_goldmont
,
"Goldmont"
},
121
{
cpu_haswell
,
"Haswell"
},
122
{
cpu_broadwell
,
"Broadwell"
},
123
{
cpu_tremont
,
"Tremont"
},
124
{
cpu_skylake
,
"Skylake"
},
125
{
cpu_skylake_avx512
,
"Skylake (Avx512)"
},
126
{
cpu_cascadelake
,
"Cascade Lake"
},
127
{
cpu_cooperlake
,
"Cooper Lake"
},
128
{
cpu_cannonlake
,
"Cannon Lake"
},
129
{
cpu_gracemont
,
"Gracemont"
},
130
{
cpu_icelake_client
,
"Ice Lake (Client)"
},
131
{
cpu_icelake_server
,
"Ice Lake (Server)"
},
132
{
cpu_crestmont
,
"Crestmont"
},
133
{
cpu_tigerlake
,
"Tiger Lake"
},
134
{
cpu_clearwaterforest
,
"Clearwater Forest"
},
135
{
cpu_grandridge
,
"Grand Ridge"
},
136
{
cpu_raptorcove
,
"Raptor Cove"
},
137
{
cpu_redwoodcove
,
"Redwood Cove"
},
138
{
cpu_emeraldrapids
,
"Emerald Rapids"
},
139
{
cpu_graniterapids
,
"Granite Rapids"
},
140
};
141
142
enum
XSaveBits
{
143
XSave_X87
= 0x0001,
// X87 and MMX state
144
XSave_SseState
= 0x0002,
// SSE: 128 bits of XMM registers
145
XSave_Ymm_Hi128
= 0x0004,
// AVX: high 128 bits in YMM registers
146
XSave_Bndregs
= 0x0008,
// Memory Protection Extensions
147
XSave_Bndcsr
= 0x0010,
// Memory Protection Extensions
148
XSave_OpMask
= 0x0020,
// AVX512: k0 through k7
149
XSave_Zmm_Hi256
= 0x0040,
// AVX512: high 256 bits of ZMM0-15
150
XSave_Hi16_Zmm
= 0x0080,
// AVX512: all 512 bits of ZMM16-31
151
XSave_PTState
= 0x0100,
// Processor Trace
152
XSave_PKRUState
= 0x0200,
// Protection Key
153
XSave_CetUState
= 0x0800,
// CET: user mode
154
XSave_CetSState
= 0x1000,
// CET: supervisor mode
155
XSave_HdcState
= 0x2000,
// Hardware Duty Cycle
156
XSave_UintrState
= 0x4000,
// User Interrupts
157
XSave_HwpState
= 0x10000,
// Hardware P-State
158
XSave_Xtilecfg
= 0x20000,
// AMX: XTILECFG register
159
XSave_Xtiledata
= 0x40000,
// AMX: data in the tiles
160
XSave_AvxState
=
XSave_SseState
|
XSave_Ymm_Hi128
,
161
XSave_MPXState
=
XSave_Bndregs
|
XSave_Bndcsr
,
162
XSave_Avx512State
=
XSave_AvxState
|
XSave_OpMask
|
XSave_Zmm_Hi256
|
XSave_Hi16_Zmm
,
163
XSave_CetState
=
XSave_CetUState
|
XSave_CetSState
,
164
XSave_AmxState
=
XSave_Xtilecfg
|
XSave_Xtiledata
,
165
};
166
167
// List of features requiring XSave_AvxState
168
static
const
uint64_t
XSaveReq_AvxState
= 0
169
|
cpu_feature_fma
170
|
cpu_feature_avx
171
|
cpu_feature_f16c
172
|
cpu_feature_avx2
173
|
cpu_feature_avx512f
174
|
cpu_feature_avx512dq
175
|
cpu_feature_avx512ifma
176
|
cpu_feature_avx512cd
177
|
cpu_feature_avx512bw
178
|
cpu_feature_avx512vl
179
|
cpu_feature_avx512vbmi
180
|
cpu_feature_avx512vbmi2
181
|
cpu_feature_vaes
182
|
cpu_feature_avx512bitalg
183
|
cpu_feature_avx512vpopcntdq
184
|
cpu_feature_avx512fp16
185
|
cpu_feature_avxifma
;
186
187
// List of features requiring XSave_Avx512State
188
static
const
uint64_t
XSaveReq_Avx512State
= 0
189
|
cpu_feature_avx512f
190
|
cpu_feature_avx512dq
191
|
cpu_feature_avx512ifma
192
|
cpu_feature_avx512cd
193
|
cpu_feature_avx512bw
194
|
cpu_feature_avx512vl
195
|
cpu_feature_avx512vbmi
196
|
cpu_feature_avx512vbmi2
197
|
cpu_feature_avx512bitalg
198
|
cpu_feature_avx512vpopcntdq
199
|
cpu_feature_avx512fp16
;
200
201
// List of features requiring XSave_CetState
202
static
const
uint64_t
XSaveReq_CetState
= 0
203
|
cpu_feature_shstk
;
204
205
struct
XSaveRequirementMapping
206
{
207
uint64_t
cpu_features
;
208
uint64_t
xsave_state
;
209
};
210
211
static
const
struct
XSaveRequirementMapping
xsave_requirements
[] = {
212
{
XSaveReq_AvxState
,
XSave_AvxState
},
213
{
XSaveReq_Avx512State
,
XSave_Avx512State
},
214
{
XSaveReq_CetState
,
XSave_CetState
},
215
};
XSaveBits
XSaveBits
Definition
qsimd_x86.cpp:142
XSave_Bndcsr
@ XSave_Bndcsr
Definition
qsimd_x86.cpp:147
XSave_X87
@ XSave_X87
Definition
qsimd_x86.cpp:143
XSave_HwpState
@ XSave_HwpState
Definition
qsimd_x86.cpp:157
XSave_AvxState
@ XSave_AvxState
Definition
qsimd_x86.cpp:160
XSave_Xtilecfg
@ XSave_Xtilecfg
Definition
qsimd_x86.cpp:158
XSave_Xtiledata
@ XSave_Xtiledata
Definition
qsimd_x86.cpp:159
XSave_Avx512State
@ XSave_Avx512State
Definition
qsimd_x86.cpp:162
XSave_AmxState
@ XSave_AmxState
Definition
qsimd_x86.cpp:164
XSave_SseState
@ XSave_SseState
Definition
qsimd_x86.cpp:144
XSave_HdcState
@ XSave_HdcState
Definition
qsimd_x86.cpp:155
XSave_PKRUState
@ XSave_PKRUState
Definition
qsimd_x86.cpp:152
XSave_OpMask
@ XSave_OpMask
Definition
qsimd_x86.cpp:148
XSave_CetUState
@ XSave_CetUState
Definition
qsimd_x86.cpp:153
XSave_Zmm_Hi256
@ XSave_Zmm_Hi256
Definition
qsimd_x86.cpp:149
XSave_CetState
@ XSave_CetState
Definition
qsimd_x86.cpp:163
XSave_Bndregs
@ XSave_Bndregs
Definition
qsimd_x86.cpp:146
XSave_UintrState
@ XSave_UintrState
Definition
qsimd_x86.cpp:156
XSave_PTState
@ XSave_PTState
Definition
qsimd_x86.cpp:151
XSave_Ymm_Hi128
@ XSave_Ymm_Hi128
Definition
qsimd_x86.cpp:145
XSave_CetSState
@ XSave_CetSState
Definition
qsimd_x86.cpp:154
XSave_Hi16_Zmm
@ XSave_Hi16_Zmm
Definition
qsimd_x86.cpp:150
XSave_MPXState
@ XSave_MPXState
Definition
qsimd_x86.cpp:161
x86_architectures
static const struct X86Architecture x86_architectures[]
Definition
qsimd_x86.cpp:114
X86CpuidLeaves
X86CpuidLeaves
Definition
qsimd_x86.cpp:55
Leaf01EDX
@ Leaf01EDX
Definition
qsimd_x86.cpp:56
Leaf07_01EAX
@ Leaf07_01EAX
Definition
qsimd_x86.cpp:61
Leaf07_00ECX
@ Leaf07_00ECX
Definition
qsimd_x86.cpp:59
Leaf80000008hEBX
@ Leaf80000008hEBX
Definition
qsimd_x86.cpp:65
Leaf07_00EBX
@ Leaf07_00EBX
Definition
qsimd_x86.cpp:58
Leaf07_00EDX
@ Leaf07_00EDX
Definition
qsimd_x86.cpp:60
Leaf13_01EAX
@ Leaf13_01EAX
Definition
qsimd_x86.cpp:63
X86CpuidMaxLeaf
@ X86CpuidMaxLeaf
Definition
qsimd_x86.cpp:66
Leaf07_01EDX
@ Leaf07_01EDX
Definition
qsimd_x86.cpp:62
Leaf01ECX
@ Leaf01ECX
Definition
qsimd_x86.cpp:57
Leaf80000001hECX
@ Leaf80000001hECX
Definition
qsimd_x86.cpp:64
x86_locators
static const uint16_t x86_locators[]
Definition
qsimd_x86.cpp:69
XSaveReq_AvxState
static const uint64_t XSaveReq_AvxState
Definition
qsimd_x86.cpp:168
features_indices
static const uint16_t features_indices[]
Definition
qsimd_x86.cpp:47
features_string
static const char features_string[]
Definition
qsimd_x86.cpp:8
XSaveReq_CetState
static const uint64_t XSaveReq_CetState
Definition
qsimd_x86.cpp:202
xsave_requirements
static const struct XSaveRequirementMapping xsave_requirements[]
Definition
qsimd_x86.cpp:211
XSaveReq_Avx512State
static const uint64_t XSaveReq_Avx512State
Definition
qsimd_x86.cpp:188
cpu_haswell
#define cpu_haswell
Definition
qsimd_x86_p.h:157
cpu_feature_avx
#define cpu_feature_avx
Definition
qsimd_x86_p.h:36
cpu_westmere
#define cpu_westmere
Definition
qsimd_x86_p.h:154
cpu_redwoodcove
#define cpu_redwoodcove
Definition
qsimd_x86_p.h:174
cpu_feature_fma
#define cpu_feature_fma
Definition
qsimd_x86_p.h:30
cpu_skylake
#define cpu_skylake
Definition
qsimd_x86_p.h:159
cpu_feature_shstk
#define cpu_feature_shstk
Definition
qsimd_x86_p.h:55
cpu_icelake_server
#define cpu_icelake_server
Definition
qsimd_x86_p.h:167
cpu_feature_avx512ifma
#define cpu_feature_avx512ifma
Definition
qsimd_x86_p.h:45
cpu_gracemont
#define cpu_gracemont
Definition
qsimd_x86_p.h:184
cpu_feature_avx512vpopcntdq
#define cpu_feature_avx512vpopcntdq
Definition
qsimd_x86_p.h:59
cpu_graniterapids
#define cpu_graniterapids
Definition
qsimd_x86_p.h:180
cpu_feature_avx512f
#define cpu_feature_avx512f
Definition
qsimd_x86_p.h:43
cpu_clearwaterforest
#define cpu_clearwaterforest
Definition
qsimd_x86_p.h:188
cpu_icelake_client
#define cpu_icelake_client
Definition
qsimd_x86_p.h:166
cpu_cannonlake
#define cpu_cannonlake
Definition
qsimd_x86_p.h:164
cpu_feature_avx2
#define cpu_feature_avx2
Definition
qsimd_x86_p.h:41
cpu_feature_vaes
#define cpu_feature_vaes
Definition
qsimd_x86_p.h:57
cpu_core2
#define cpu_core2
Definition
qsimd_x86_p.h:75
cpu_feature_avx512vl
#define cpu_feature_avx512vl
Definition
qsimd_x86_p.h:49
cpu_cooperlake
#define cpu_cooperlake
Definition
qsimd_x86_p.h:162
cpu_feature_avx512bitalg
#define cpu_feature_avx512bitalg
Definition
qsimd_x86_p.h:58
cpu_ivybridge
#define cpu_ivybridge
Definition
qsimd_x86_p.h:156
cpu_feature_avx512dq
#define cpu_feature_avx512dq
Definition
qsimd_x86_p.h:44
cpu_grandridge
#define cpu_grandridge
Definition
qsimd_x86_p.h:186
cpu_emeraldrapids
#define cpu_emeraldrapids
Definition
qsimd_x86_p.h:179
cpu_tigerlake
#define cpu_tigerlake
Definition
qsimd_x86_p.h:169
cpu_cascadelake
#define cpu_cascadelake
Definition
qsimd_x86_p.h:161
cpu_tremont
#define cpu_tremont
Definition
qsimd_x86_p.h:183
cpu_feature_f16c
#define cpu_feature_f16c
Definition
qsimd_x86_p.h:37
cpu_feature_avx512vbmi2
#define cpu_feature_avx512vbmi2
Definition
qsimd_x86_p.h:54
cpu_skylake_avx512
#define cpu_skylake_avx512
Definition
qsimd_x86_p.h:160
cpu_feature_avx512fp16
#define cpu_feature_avx512fp16
Definition
qsimd_x86_p.h:64
cpu_feature_avxifma
#define cpu_feature_avxifma
Definition
qsimd_x86_p.h:69
cpu_feature_avx512bw
#define cpu_feature_avx512bw
Definition
qsimd_x86_p.h:48
cpu_sandybridge
#define cpu_sandybridge
Definition
qsimd_x86_p.h:155
cpu_crestmont
#define cpu_crestmont
Definition
qsimd_x86_p.h:185
cpu_goldmont
#define cpu_goldmont
Definition
qsimd_x86_p.h:182
cpu_silvermont
#define cpu_silvermont
Definition
qsimd_x86_p.h:181
cpu_broadwell
#define cpu_broadwell
Definition
qsimd_x86_p.h:158
cpu_raptorcove
#define cpu_raptorcove
Definition
qsimd_x86_p.h:172
cpu_feature_avx512vbmi
#define cpu_feature_avx512vbmi
Definition
qsimd_x86_p.h:52
cpu_feature_avx512cd
#define cpu_feature_avx512cd
Definition
qsimd_x86_p.h:46
X86Architecture
Definition
qsimd_x86.cpp:109
X86Architecture::features
uint64_t features
Definition
qsimd_x86.cpp:110
X86Architecture::name
char name[17+1]
Definition
qsimd_x86.cpp:111
XSaveRequirementMapping
Definition
qsimd_x86.cpp:206
XSaveRequirementMapping::xsave_state
uint64_t xsave_state
Definition
qsimd_x86.cpp:208
XSaveRequirementMapping::cpu_features
uint64_t cpu_features
Definition
qsimd_x86.cpp:207
qtbase
src
corelib
global
qsimd_x86.cpp
Generated on
for Qt by
1.16.1