1
+ //! This file is auto-generated by tools/update_cpu_features.zig.
2
+
1
3
const std = @import ("../std.zig" );
2
4
const CpuFeature = std .Target .Cpu .Feature ;
3
5
const CpuModel = std .Target .Cpu .Model ;
4
6
5
7
pub const Feature = enum {
8
+ addresses ,
9
+ arbitrary_precision_integers ,
10
+ float16 ,
11
+ float64 ,
12
+ generic_pointer ,
13
+ int64 ,
14
+ kernel ,
15
+ matrix ,
16
+ physical_storage_buffer ,
17
+ shader ,
18
+ storage_push_constant16 ,
6
19
v1_0 ,
7
20
v1_1 ,
8
21
v1_2 ,
9
22
v1_3 ,
10
23
v1_4 ,
11
24
v1_5 ,
12
25
v1_6 ,
13
- int64 ,
14
- float16 ,
15
- float64 ,
16
- matrix ,
17
- storage_push_constant16 ,
18
- arbitrary_precision_integers ,
19
- kernel ,
20
- addresses ,
21
- generic_pointer ,
26
+ variable_pointers ,
22
27
vector16 ,
23
- shader ,
24
- physical_storage_buffer ,
25
28
};
26
29
27
30
pub const featureSet = CpuFeature .FeatureSetFns (Feature ).featureSet ;
@@ -34,100 +37,143 @@ pub const all_features = blk: {
34
37
const len = @typeInfo (Feature ).@"enum" .fields .len ;
35
38
std .debug .assert (len <= CpuFeature .Set .needed_bit_count );
36
39
var result : [len ]CpuFeature = undefined ;
37
- result [@intFromEnum (Feature .v1_0 )] = .{
38
- .llvm_name = null ,
39
- .description = "Enable version 1.0" ,
40
- .dependencies = featureSet (&[_ ]Feature {}),
41
- };
42
- result [@intFromEnum (Feature .v1_1 )] = .{
43
- .llvm_name = null ,
44
- .description = "Enable version 1.1" ,
45
- .dependencies = featureSet (&[_ ]Feature {.v1_0 }),
46
- };
47
- result [@intFromEnum (Feature .v1_2 )] = .{
40
+ result [@intFromEnum (Feature .addresses )] = .{
48
41
.llvm_name = null ,
49
- .description = "Enable version 1.2" ,
50
- .dependencies = featureSet (&[_ ]Feature {.v1_1 }),
42
+ .description = "Enable Addresses capability" ,
43
+ .dependencies = featureSet (&[_ ]Feature {
44
+ .v1_0 ,
45
+ }),
51
46
};
52
- result [@intFromEnum (Feature .v1_3 )] = .{
47
+ result [@intFromEnum (Feature .arbitrary_precision_integers )] = .{
53
48
.llvm_name = null ,
54
- .description = "Enable version 1.3" ,
55
- .dependencies = featureSet (&[_ ]Feature {.v1_2 }),
49
+ .description = "Enable SPV_INTEL_arbitrary_precision_integers extension and the ArbitraryPrecisionIntegersINTEL capability" ,
50
+ .dependencies = featureSet (&[_ ]Feature {
51
+ .v1_5 ,
52
+ }),
56
53
};
57
- result [@intFromEnum (Feature .v1_4 )] = .{
54
+ result [@intFromEnum (Feature .float16 )] = .{
58
55
.llvm_name = null ,
59
- .description = "Enable version 1.4" ,
60
- .dependencies = featureSet (&[_ ]Feature {.v1_3 }),
56
+ .description = "Enable Float16 capability" ,
57
+ .dependencies = featureSet (&[_ ]Feature {
58
+ .v1_0 ,
59
+ }),
61
60
};
62
- result [@intFromEnum (Feature .v1_5 )] = .{
61
+ result [@intFromEnum (Feature .float64 )] = .{
63
62
.llvm_name = null ,
64
- .description = "Enable version 1.5" ,
65
- .dependencies = featureSet (&[_ ]Feature {.v1_4 }),
63
+ .description = "Enable Float64 capability" ,
64
+ .dependencies = featureSet (&[_ ]Feature {
65
+ .v1_0 ,
66
+ }),
66
67
};
67
- result [@intFromEnum (Feature .v1_6 )] = .{
68
+ result [@intFromEnum (Feature .generic_pointer )] = .{
68
69
.llvm_name = null ,
69
- .description = "Enable version 1.6" ,
70
- .dependencies = featureSet (&[_ ]Feature {.v1_5 }),
70
+ .description = "Enable GenericPointer capability" ,
71
+ .dependencies = featureSet (&[_ ]Feature {
72
+ .addresses ,
73
+ }),
71
74
};
72
75
result [@intFromEnum (Feature .int64 )] = .{
73
76
.llvm_name = null ,
74
77
.description = "Enable Int64 capability" ,
75
- .dependencies = featureSet (&[_ ]Feature {.v1_0 }),
76
- };
77
- result [@intFromEnum (Feature .float16 )] = .{
78
- .llvm_name = null ,
79
- .description = "Enable Float16 capability" ,
80
- .dependencies = featureSet (&[_ ]Feature {.v1_0 }),
78
+ .dependencies = featureSet (&[_ ]Feature {
79
+ .v1_0 ,
80
+ }),
81
81
};
82
- result [@intFromEnum (Feature .float64 )] = .{
82
+ result [@intFromEnum (Feature .kernel )] = .{
83
83
.llvm_name = null ,
84
- .description = "Enable Float64 capability" ,
85
- .dependencies = featureSet (&[_ ]Feature {.v1_0 }),
84
+ .description = "Enable Kernel capability" ,
85
+ .dependencies = featureSet (&[_ ]Feature {
86
+ .v1_0 ,
87
+ }),
86
88
};
87
89
result [@intFromEnum (Feature .matrix )] = .{
88
90
.llvm_name = null ,
89
91
.description = "Enable Matrix capability" ,
90
- .dependencies = featureSet (&[_ ]Feature {.v1_0 }),
92
+ .dependencies = featureSet (&[_ ]Feature {
93
+ .v1_0 ,
94
+ }),
95
+ };
96
+ result [@intFromEnum (Feature .physical_storage_buffer )] = .{
97
+ .llvm_name = null ,
98
+ .description = "Enable SPV_KHR_variable_pointers extension and the (VariablePointers, VariablePointersStorageBuffer) capabilities" ,
99
+ .dependencies = featureSet (&[_ ]Feature {
100
+ .v1_0 ,
101
+ }),
102
+ };
103
+ result [@intFromEnum (Feature .shader )] = .{
104
+ .llvm_name = null ,
105
+ .description = "Enable Shader capability" ,
106
+ .dependencies = featureSet (&[_ ]Feature {
107
+ .matrix ,
108
+ }),
91
109
};
92
110
result [@intFromEnum (Feature .storage_push_constant16 )] = .{
93
111
.llvm_name = null ,
94
112
.description = "Enable SPV_KHR_16bit_storage extension and the StoragePushConstant16 capability" ,
95
- .dependencies = featureSet (&[_ ]Feature {.v1_3 }),
113
+ .dependencies = featureSet (&[_ ]Feature {
114
+ .v1_3 ,
115
+ }),
96
116
};
97
- result [@intFromEnum (Feature .arbitrary_precision_integers )] = .{
117
+ result [@intFromEnum (Feature .v1_0 )] = .{
98
118
.llvm_name = null ,
99
- .description = "Enable SPV_INTEL_arbitrary_precision_integers extension and the ArbitraryPrecisionIntegersINTEL capability " ,
100
- .dependencies = featureSet (&[_ ]Feature {.v1_5 }),
119
+ .description = "Enable version 1.0 " ,
120
+ .dependencies = featureSet (&[_ ]Feature {}),
101
121
};
102
- result [@intFromEnum (Feature .kernel )] = .{
122
+ result [@intFromEnum (Feature .v1_1 )] = .{
103
123
.llvm_name = null ,
104
- .description = "Enable Kernel capability" ,
105
- .dependencies = featureSet (&[_ ]Feature {.v1_0 }),
124
+ .description = "Enable version 1.1" ,
125
+ .dependencies = featureSet (&[_ ]Feature {
126
+ .v1_0 ,
127
+ }),
106
128
};
107
- result [@intFromEnum (Feature .addresses )] = .{
129
+ result [@intFromEnum (Feature .v1_2 )] = .{
108
130
.llvm_name = null ,
109
- .description = "Enable Addresses capability" ,
110
- .dependencies = featureSet (&[_ ]Feature {.v1_0 }),
131
+ .description = "Enable version 1.2" ,
132
+ .dependencies = featureSet (&[_ ]Feature {
133
+ .v1_1 ,
134
+ }),
111
135
};
112
- result [@intFromEnum (Feature .generic_pointer )] = .{
136
+ result [@intFromEnum (Feature .v1_3 )] = .{
113
137
.llvm_name = null ,
114
- .description = "Enable GenericPointer capability" ,
115
- .dependencies = featureSet (&[_ ]Feature { .v1_0 , .addresses }),
138
+ .description = "Enable version 1.3" ,
139
+ .dependencies = featureSet (&[_ ]Feature {
140
+ .v1_2 ,
141
+ }),
116
142
};
117
- result [@intFromEnum (Feature .vector16 )] = .{
143
+ result [@intFromEnum (Feature .v1_4 )] = .{
118
144
.llvm_name = null ,
119
- .description = "Enable Vector16 capability" ,
120
- .dependencies = featureSet (&[_ ]Feature { .v1_0 , .kernel }),
145
+ .description = "Enable version 1.4" ,
146
+ .dependencies = featureSet (&[_ ]Feature {
147
+ .v1_3 ,
148
+ }),
121
149
};
122
- result [@intFromEnum (Feature .shader )] = .{
150
+ result [@intFromEnum (Feature .v1_5 )] = .{
123
151
.llvm_name = null ,
124
- .description = "Enable Shader capability" ,
125
- .dependencies = featureSet (&[_ ]Feature { .v1_0 , .matrix }),
152
+ .description = "Enable version 1.5" ,
153
+ .dependencies = featureSet (&[_ ]Feature {
154
+ .v1_4 ,
155
+ }),
126
156
};
127
- result [@intFromEnum (Feature .physical_storage_buffer )] = .{
157
+ result [@intFromEnum (Feature .v1_6 )] = .{
158
+ .llvm_name = null ,
159
+ .description = "Enable version 1.6" ,
160
+ .dependencies = featureSet (&[_ ]Feature {
161
+ .v1_5 ,
162
+ }),
163
+ };
164
+ result [@intFromEnum (Feature .variable_pointers )] = .{
128
165
.llvm_name = null ,
129
166
.description = "Enable SPV_KHR_physical_storage_buffer extension and the PhysicalStorageBufferAddresses capability" ,
130
- .dependencies = featureSet (&[_ ]Feature {.v1_0 }),
167
+ .dependencies = featureSet (&[_ ]Feature {
168
+ .v1_0 ,
169
+ }),
170
+ };
171
+ result [@intFromEnum (Feature .vector16 )] = .{
172
+ .llvm_name = null ,
173
+ .description = "Enable Vector16 capability" ,
174
+ .dependencies = featureSet (&[_ ]Feature {
175
+ .kernel ,
176
+ }),
131
177
};
132
178
const ti = @typeInfo (Feature );
133
179
for (& result , 0.. ) | * elem , i | {
@@ -141,18 +187,23 @@ pub const cpu = struct {
141
187
pub const generic : CpuModel = .{
142
188
.name = "generic" ,
143
189
.llvm_name = "generic" ,
144
- .features = featureSet (&[_ ]Feature {.v1_0 }),
190
+ .features = featureSet (&[_ ]Feature {}),
145
191
};
146
-
147
- pub const vulkan_v1_2 : CpuModel = .{
148
- .name = "vulkan_v1_2" ,
149
- .llvm_name = null ,
150
- .features = featureSet (&[_ ]Feature { .v1_5 , .shader , .physical_storage_buffer }),
151
- };
152
-
153
192
pub const opencl_v2 : CpuModel = .{
154
193
.name = "opencl_v2" ,
155
194
.llvm_name = null ,
156
- .features = featureSet (&[_ ]Feature { .v1_2 , .kernel , .addresses , .generic_pointer }),
195
+ .features = featureSet (&[_ ]Feature {
196
+ .generic_pointer ,
197
+ .kernel ,
198
+ .v1_2 ,
199
+ }),
200
+ };
201
+ pub const vulkan_v1_2 : CpuModel = .{
202
+ .name = "vulkan_v1_2" ,
203
+ .llvm_name = null ,
204
+ .features = featureSet (&[_ ]Feature {
205
+ .shader ,
206
+ .v1_5 ,
207
+ }),
157
208
};
158
209
};
0 commit comments