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