master
1const std = @import("std");
2const Cases = @import("src/Cases.zig");
3
4const targets = [_]std.Target.Query{
5 .{ .cpu_arch = .aarch64, .os_tag = .driverkit, .abi = .none },
6 .{ .cpu_arch = .aarch64, .os_tag = .freebsd, .abi = .none },
7 .{ .cpu_arch = .aarch64, .os_tag = .freestanding, .abi = .none },
8 .{ .cpu_arch = .aarch64, .os_tag = .fuchsia, .abi = .none },
9 .{ .cpu_arch = .aarch64, .os_tag = .haiku, .abi = .none },
10 .{ .cpu_arch = .aarch64, .os_tag = .hermit, .abi = .none },
11 .{ .cpu_arch = .aarch64, .os_tag = .hurd, .abi = .gnu },
12 .{ .cpu_arch = .aarch64, .os_tag = .ios, .abi = .none },
13 .{ .cpu_arch = .aarch64, .os_tag = .ios, .abi = .simulator },
14 .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .android },
15 .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .gnu },
16 .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .musl },
17 .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .none },
18 .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .ohos },
19 .{ .cpu_arch = .aarch64, .os_tag = .maccatalyst, .abi = .none },
20 .{ .cpu_arch = .aarch64, .os_tag = .macos, .abi = .none },
21 .{ .cpu_arch = .aarch64, .os_tag = .netbsd, .abi = .none },
22 .{ .cpu_arch = .aarch64, .os_tag = .openbsd, .abi = .none },
23 .{ .cpu_arch = .aarch64, .os_tag = .rtems, .abi = .none },
24 .{ .cpu_arch = .aarch64, .os_tag = .serenity, .abi = .none },
25 .{ .cpu_arch = .aarch64, .os_tag = .tvos, .abi = .none },
26 .{ .cpu_arch = .aarch64, .os_tag = .tvos, .abi = .simulator },
27 .{ .cpu_arch = .aarch64, .os_tag = .uefi, .abi = .none },
28 .{ .cpu_arch = .aarch64, .os_tag = .visionos, .abi = .none },
29 .{ .cpu_arch = .aarch64, .os_tag = .visionos, .abi = .simulator },
30 .{ .cpu_arch = .aarch64, .os_tag = .watchos, .abi = .ilp32 },
31 .{ .cpu_arch = .aarch64, .os_tag = .watchos, .abi = .none },
32 .{ .cpu_arch = .aarch64, .os_tag = .watchos, .abi = .simulator },
33 .{ .cpu_arch = .aarch64, .os_tag = .windows, .abi = .gnu },
34 .{ .cpu_arch = .aarch64, .os_tag = .windows, .abi = .itanium },
35 .{ .cpu_arch = .aarch64, .os_tag = .windows, .abi = .msvc },
36
37 .{ .cpu_arch = .aarch64_be, .os_tag = .freestanding, .abi = .none },
38 .{ .cpu_arch = .aarch64_be, .os_tag = .linux, .abi = .gnu },
39 .{ .cpu_arch = .aarch64_be, .os_tag = .linux, .abi = .musl },
40 .{ .cpu_arch = .aarch64_be, .os_tag = .linux, .abi = .none },
41 .{ .cpu_arch = .aarch64_be, .os_tag = .netbsd, .abi = .none },
42
43 .{ .cpu_arch = .amdgcn, .os_tag = .amdhsa, .abi = .none },
44 // .{ .cpu_arch = .amdgcn, .os_tag = .amdpal, .abi = .none },
45 // .{ .cpu_arch = .amdgcn, .os_tag = .mesa3d, .abi = .none },
46
47 .{ .cpu_arch = .arc, .os_tag = .freestanding, .abi = .none },
48 .{ .cpu_arch = .arc, .os_tag = .linux, .abi = .gnu },
49 .{ .cpu_arch = .arc, .os_tag = .linux, .abi = .none },
50
51 .{ .cpu_arch = .arm, .os_tag = .@"3ds", .abi = .eabihf },
52 .{ .cpu_arch = .arm, .os_tag = .freebsd, .abi = .eabihf },
53 .{ .cpu_arch = .arm, .os_tag = .freestanding, .abi = .eabi },
54 .{ .cpu_arch = .arm, .os_tag = .freestanding, .abi = .eabihf },
55 .{ .cpu_arch = .arm, .os_tag = .haiku, .abi = .eabi },
56 .{ .cpu_arch = .arm, .os_tag = .haiku, .abi = .eabihf },
57 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .androideabi },
58 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .eabi },
59 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .eabihf },
60 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .gnueabi },
61 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .gnueabihf },
62 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .musleabi },
63 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .musleabihf },
64 .{ .cpu_arch = .arm, .os_tag = .linux, .abi = .ohoseabi },
65 .{ .cpu_arch = .arm, .os_tag = .netbsd, .abi = .eabi },
66 .{ .cpu_arch = .arm, .os_tag = .netbsd, .abi = .eabihf },
67 .{ .cpu_arch = .arm, .os_tag = .openbsd, .abi = .eabi },
68 .{ .cpu_arch = .arm, .os_tag = .openbsd, .abi = .eabihf },
69 .{ .cpu_arch = .arm, .os_tag = .rtems, .abi = .eabi },
70 .{ .cpu_arch = .arm, .os_tag = .rtems, .abi = .eabihf },
71 // .{ .cpu_arch = .arm, .os_tag = .uefi, .abi = .eabi },
72 // .{ .cpu_arch = .arm, .os_tag = .uefi, .abi = .eabihf },
73 .{ .cpu_arch = .arm, .os_tag = .vita, .abi = .eabihf },
74
75 .{ .cpu_arch = .armeb, .os_tag = .freestanding, .abi = .eabi },
76 .{ .cpu_arch = .armeb, .os_tag = .freestanding, .abi = .eabihf },
77 .{ .cpu_arch = .armeb, .os_tag = .linux, .abi = .eabi },
78 .{ .cpu_arch = .armeb, .os_tag = .linux, .abi = .eabihf },
79 .{ .cpu_arch = .armeb, .os_tag = .linux, .abi = .gnueabi },
80 .{ .cpu_arch = .armeb, .os_tag = .linux, .abi = .gnueabihf },
81 .{ .cpu_arch = .armeb, .os_tag = .linux, .abi = .musleabi },
82 .{ .cpu_arch = .armeb, .os_tag = .linux, .abi = .musleabihf },
83 .{ .cpu_arch = .armeb, .os_tag = .netbsd, .abi = .eabi },
84 .{ .cpu_arch = .armeb, .os_tag = .netbsd, .abi = .eabihf },
85 .{ .cpu_arch = .armeb, .os_tag = .rtems, .abi = .eabi },
86 .{ .cpu_arch = .armeb, .os_tag = .rtems, .abi = .eabihf },
87
88 .{ .cpu_arch = .avr, .os_tag = .freestanding, .abi = .none },
89 .{ .cpu_arch = .avr, .os_tag = .rtems, .abi = .none },
90
91 .{ .cpu_arch = .bpfeb, .os_tag = .freestanding, .abi = .none },
92
93 .{ .cpu_arch = .bpfel, .os_tag = .freestanding, .abi = .none },
94
95 // .{ .cpu_arch = .csky, .os_tag = .freestanding, .abi = .eabi },
96 // .{ .cpu_arch = .csky, .os_tag = .freestanding, .abi = .eabihf },
97 // .{ .cpu_arch = .csky, .os_tag = .linux, .abi = .eabi },
98 // .{ .cpu_arch = .csky, .os_tag = .linux, .abi = .eabihf },
99 // .{ .cpu_arch = .csky, .os_tag = .linux, .abi = .gnueabi },
100 // .{ .cpu_arch = .csky, .os_tag = .linux, .abi = .gnueabihf },
101
102 .{ .cpu_arch = .hexagon, .os_tag = .freestanding, .abi = .none },
103 .{ .cpu_arch = .hexagon, .os_tag = .linux, .abi = .none },
104
105 .{ .cpu_arch = .lanai, .os_tag = .freestanding, .abi = .none },
106
107 // .{ .cpu_arch = .loongarch32, .os_tag = .freestanding, .abi = .none },
108 // .{ .cpu_arch = .loongarch32, .os_tag = .linux, .abi = .none },
109 // .{ .cpu_arch = .loongarch32, .os_tag = .uefi, .abi = .none },
110
111 .{ .cpu_arch = .loongarch64, .os_tag = .freestanding, .abi = .none },
112 .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnu },
113 // .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnuf32 },
114 .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .gnusf },
115 .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .musl },
116 // .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .muslf32 },
117 .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .muslsf },
118 .{ .cpu_arch = .loongarch64, .os_tag = .linux, .abi = .none },
119 // .{ .cpu_arch = .loongarch64, .os_tag = .uefi, .abi = .none },
120
121 .{ .cpu_arch = .m68k, .os_tag = .freestanding, .abi = .none },
122 .{ .cpu_arch = .m68k, .os_tag = .haiku, .abi = .none },
123 .{ .cpu_arch = .m68k, .os_tag = .linux, .abi = .gnu },
124 .{ .cpu_arch = .m68k, .os_tag = .linux, .abi = .musl },
125 .{ .cpu_arch = .m68k, .os_tag = .linux, .abi = .none },
126 .{ .cpu_arch = .m68k, .os_tag = .netbsd, .abi = .none },
127 .{ .cpu_arch = .m68k, .os_tag = .rtems, .abi = .none },
128
129 .{ .cpu_arch = .mips, .os_tag = .freestanding, .abi = .eabi },
130 .{ .cpu_arch = .mips, .os_tag = .freestanding, .abi = .eabihf },
131 .{ .cpu_arch = .mips, .os_tag = .linux, .abi = .eabi },
132 .{ .cpu_arch = .mips, .os_tag = .linux, .abi = .eabihf },
133 .{ .cpu_arch = .mips, .os_tag = .linux, .abi = .gnueabi },
134 .{ .cpu_arch = .mips, .os_tag = .linux, .abi = .gnueabihf },
135 .{ .cpu_arch = .mips, .os_tag = .linux, .abi = .musleabi },
136 .{ .cpu_arch = .mips, .os_tag = .linux, .abi = .musleabihf },
137 .{ .cpu_arch = .mips, .os_tag = .netbsd, .abi = .eabi },
138 .{ .cpu_arch = .mips, .os_tag = .netbsd, .abi = .eabihf },
139 .{ .cpu_arch = .mips, .os_tag = .rtems, .abi = .eabi },
140 .{ .cpu_arch = .mips, .os_tag = .rtems, .abi = .eabihf },
141
142 .{ .cpu_arch = .mipsel, .os_tag = .freestanding, .abi = .eabi },
143 .{ .cpu_arch = .mipsel, .os_tag = .freestanding, .abi = .eabihf },
144 .{ .cpu_arch = .mipsel, .os_tag = .linux, .abi = .eabi },
145 .{ .cpu_arch = .mipsel, .os_tag = .linux, .abi = .eabihf },
146 .{ .cpu_arch = .mipsel, .os_tag = .linux, .abi = .gnueabi },
147 .{ .cpu_arch = .mipsel, .os_tag = .linux, .abi = .gnueabihf },
148 .{ .cpu_arch = .mipsel, .os_tag = .linux, .abi = .musleabi },
149 .{ .cpu_arch = .mipsel, .os_tag = .linux, .abi = .musleabihf },
150 .{ .cpu_arch = .mipsel, .os_tag = .netbsd, .abi = .eabi },
151 .{ .cpu_arch = .mipsel, .os_tag = .netbsd, .abi = .eabihf },
152 .{ .cpu_arch = .mipsel, .os_tag = .rtems, .abi = .eabi },
153 .{ .cpu_arch = .mipsel, .os_tag = .rtems, .abi = .eabihf },
154
155 .{ .cpu_arch = .mips64, .os_tag = .freestanding, .abi = .none },
156 .{ .cpu_arch = .mips64, .os_tag = .linux, .abi = .gnuabi64 },
157 .{ .cpu_arch = .mips64, .os_tag = .linux, .abi = .gnuabin32 },
158 .{ .cpu_arch = .mips64, .os_tag = .linux, .abi = .muslabi64 },
159 .{ .cpu_arch = .mips64, .os_tag = .linux, .abi = .muslabin32 },
160 .{ .cpu_arch = .mips64, .os_tag = .linux, .abi = .none },
161 .{ .cpu_arch = .mips64, .os_tag = .openbsd, .abi = .none },
162
163 .{ .cpu_arch = .mips64el, .os_tag = .freestanding, .abi = .none },
164 .{ .cpu_arch = .mips64el, .os_tag = .linux, .abi = .gnuabi64 },
165 .{ .cpu_arch = .mips64el, .os_tag = .linux, .abi = .gnuabin32 },
166 .{ .cpu_arch = .mips64el, .os_tag = .linux, .abi = .muslabi64 },
167 .{ .cpu_arch = .mips64el, .os_tag = .linux, .abi = .muslabin32 },
168 .{ .cpu_arch = .mips64el, .os_tag = .linux, .abi = .none },
169 .{ .cpu_arch = .mips64el, .os_tag = .openbsd, .abi = .none },
170
171 .{ .cpu_arch = .msp430, .os_tag = .freestanding, .abi = .none },
172
173 .{ .cpu_arch = .nvptx, .os_tag = .cuda, .abi = .none },
174 .{ .cpu_arch = .nvptx, .os_tag = .nvcl, .abi = .none },
175 .{ .cpu_arch = .nvptx64, .os_tag = .cuda, .abi = .none },
176 .{ .cpu_arch = .nvptx64, .os_tag = .nvcl, .abi = .none },
177
178 .{ .cpu_arch = .powerpc, .os_tag = .freestanding, .abi = .eabi },
179 .{ .cpu_arch = .powerpc, .os_tag = .freestanding, .abi = .eabihf },
180 .{ .cpu_arch = .powerpc, .os_tag = .haiku, .abi = .eabi },
181 .{ .cpu_arch = .powerpc, .os_tag = .haiku, .abi = .eabihf },
182 .{ .cpu_arch = .powerpc, .os_tag = .linux, .abi = .eabi },
183 .{ .cpu_arch = .powerpc, .os_tag = .linux, .abi = .eabihf },
184 .{ .cpu_arch = .powerpc, .os_tag = .linux, .abi = .gnueabi },
185 .{ .cpu_arch = .powerpc, .os_tag = .linux, .abi = .gnueabihf },
186 .{ .cpu_arch = .powerpc, .os_tag = .linux, .abi = .musleabi },
187 .{ .cpu_arch = .powerpc, .os_tag = .linux, .abi = .musleabihf },
188 .{ .cpu_arch = .powerpc, .os_tag = .netbsd, .abi = .eabi },
189 .{ .cpu_arch = .powerpc, .os_tag = .netbsd, .abi = .eabihf },
190 .{ .cpu_arch = .powerpc, .os_tag = .openbsd, .abi = .eabi },
191 .{ .cpu_arch = .powerpc, .os_tag = .openbsd, .abi = .eabihf },
192 .{ .cpu_arch = .powerpc, .os_tag = .rtems, .abi = .eabi },
193 .{ .cpu_arch = .powerpc, .os_tag = .rtems, .abi = .eabihf },
194
195 .{ .cpu_arch = .powerpcle, .os_tag = .freestanding, .abi = .eabi },
196 .{ .cpu_arch = .powerpcle, .os_tag = .freestanding, .abi = .eabihf },
197
198 .{ .cpu_arch = .powerpc64, .os_tag = .freebsd, .abi = .none },
199 .{ .cpu_arch = .powerpc64, .os_tag = .freestanding, .abi = .none },
200 .{ .cpu_arch = .powerpc64, .os_tag = .linux, .abi = .gnu },
201 .{ .cpu_arch = .powerpc64, .os_tag = .linux, .abi = .musl },
202 .{ .cpu_arch = .powerpc64, .os_tag = .linux, .abi = .none },
203 .{ .cpu_arch = .powerpc64, .os_tag = .openbsd, .abi = .none },
204 .{ .cpu_arch = .powerpc64, .os_tag = .rtems, .abi = .none },
205
206 .{ .cpu_arch = .powerpc64le, .os_tag = .freebsd, .abi = .none },
207 .{ .cpu_arch = .powerpc64le, .os_tag = .freestanding, .abi = .none },
208 .{ .cpu_arch = .powerpc64le, .os_tag = .linux, .abi = .gnu },
209 .{ .cpu_arch = .powerpc64le, .os_tag = .linux, .abi = .musl },
210 .{ .cpu_arch = .powerpc64le, .os_tag = .linux, .abi = .none },
211
212 .{ .cpu_arch = .riscv32, .os_tag = .freestanding, .abi = .none },
213 .{ .cpu_arch = .riscv32, .os_tag = .linux, .abi = .gnu },
214 .{ .cpu_arch = .riscv32, .os_tag = .linux, .abi = .musl },
215 .{ .cpu_arch = .riscv32, .os_tag = .linux, .abi = .none },
216 .{ .cpu_arch = .riscv32, .os_tag = .rtems, .abi = .none },
217 // .{ .cpu_arch = .riscv32, .os_tag = .uefi, .abi = .none },
218
219 // .{ .cpu_arch = .riscv32be, .os_tag = .freestanding, .abi = .none },
220
221 .{ .cpu_arch = .riscv64, .os_tag = .freebsd, .abi = .none },
222 .{ .cpu_arch = .riscv64, .os_tag = .freestanding, .abi = .none },
223 .{ .cpu_arch = .riscv64, .os_tag = .fuchsia, .abi = .none },
224 .{ .cpu_arch = .riscv64, .os_tag = .haiku, .abi = .none },
225 .{ .cpu_arch = .riscv64, .os_tag = .hermit, .abi = .none },
226 .{ .cpu_arch = .riscv64, .os_tag = .linux, .abi = .android },
227 .{ .cpu_arch = .riscv64, .os_tag = .linux, .abi = .gnu },
228 .{ .cpu_arch = .riscv64, .os_tag = .linux, .abi = .musl },
229 .{ .cpu_arch = .riscv64, .os_tag = .linux, .abi = .none },
230 .{ .cpu_arch = .riscv64, .os_tag = .openbsd, .abi = .none },
231 .{ .cpu_arch = .riscv64, .os_tag = .rtems, .abi = .none },
232 .{ .cpu_arch = .riscv64, .os_tag = .serenity, .abi = .none },
233 // .{ .cpu_arch = .riscv64, .os_tag = .uefi, .abi = .none },
234
235 // .{ .cpu_arch = .riscv64, .os_tag = .freestanding, .abi = .none },
236
237 .{ .cpu_arch = .s390x, .os_tag = .freestanding, .abi = .none },
238 .{ .cpu_arch = .s390x, .os_tag = .linux, .abi = .gnu },
239 .{ .cpu_arch = .s390x, .os_tag = .linux, .abi = .none },
240
241 .{ .cpu_arch = .sparc, .os_tag = .freestanding, .abi = .none },
242 .{ .cpu_arch = .sparc, .os_tag = .linux, .abi = .gnu },
243 .{ .cpu_arch = .sparc, .os_tag = .linux, .abi = .none },
244 .{ .cpu_arch = .sparc, .os_tag = .netbsd, .abi = .none },
245 .{ .cpu_arch = .sparc, .os_tag = .rtems, .abi = .none },
246
247 .{ .cpu_arch = .sparc64, .os_tag = .freestanding, .abi = .none },
248 .{ .cpu_arch = .sparc64, .os_tag = .haiku, .abi = .none },
249 .{ .cpu_arch = .sparc64, .os_tag = .linux, .abi = .gnu },
250 .{ .cpu_arch = .sparc64, .os_tag = .linux, .abi = .none },
251 .{ .cpu_arch = .sparc64, .os_tag = .netbsd, .abi = .none },
252 .{ .cpu_arch = .sparc64, .os_tag = .openbsd, .abi = .none },
253 .{ .cpu_arch = .sparc64, .os_tag = .rtems, .abi = .none },
254
255 .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .eabi },
256 .{ .cpu_arch = .thumb, .os_tag = .freestanding, .abi = .eabihf },
257 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .eabi },
258 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .eabihf },
259 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .musleabi },
260 .{ .cpu_arch = .thumb, .os_tag = .linux, .abi = .musleabihf },
261 .{ .cpu_arch = .thumb, .os_tag = .rtems, .abi = .eabi },
262 .{ .cpu_arch = .thumb, .os_tag = .rtems, .abi = .eabihf },
263 .{ .cpu_arch = .thumb, .os_tag = .vita, .abi = .eabihf },
264 .{ .cpu_arch = .thumb, .os_tag = .windows, .abi = .gnu },
265 .{ .cpu_arch = .thumb, .os_tag = .windows, .abi = .itanium },
266 .{ .cpu_arch = .thumb, .os_tag = .windows, .abi = .msvc },
267
268 .{ .cpu_arch = .thumbeb, .os_tag = .freestanding, .abi = .eabi },
269 .{ .cpu_arch = .thumbeb, .os_tag = .freestanding, .abi = .eabihf },
270 .{ .cpu_arch = .thumbeb, .os_tag = .linux, .abi = .eabi },
271 .{ .cpu_arch = .thumbeb, .os_tag = .linux, .abi = .eabihf },
272 .{ .cpu_arch = .thumbeb, .os_tag = .linux, .abi = .musleabi },
273 .{ .cpu_arch = .thumbeb, .os_tag = .linux, .abi = .musleabihf },
274 .{ .cpu_arch = .thumbeb, .os_tag = .rtems, .abi = .eabi },
275 .{ .cpu_arch = .thumbeb, .os_tag = .rtems, .abi = .eabihf },
276
277 .{ .cpu_arch = .ve, .os_tag = .freestanding, .abi = .none },
278 .{ .cpu_arch = .ve, .os_tag = .linux, .abi = .none },
279
280 .{ .cpu_arch = .wasm32, .os_tag = .emscripten, .abi = .none },
281 .{ .cpu_arch = .wasm32, .os_tag = .freestanding, .abi = .none },
282 .{ .cpu_arch = .wasm32, .os_tag = .wasi, .abi = .musl },
283 .{ .cpu_arch = .wasm32, .os_tag = .wasi, .abi = .none },
284
285 .{ .cpu_arch = .wasm64, .os_tag = .emscripten, .abi = .none },
286 .{ .cpu_arch = .wasm64, .os_tag = .freestanding, .abi = .none },
287 .{ .cpu_arch = .wasm64, .os_tag = .wasi, .abi = .musl },
288 .{ .cpu_arch = .wasm64, .os_tag = .wasi, .abi = .none },
289
290 .{ .cpu_arch = .x86, .os_tag = .freestanding, .abi = .none },
291 .{ .cpu_arch = .x86, .os_tag = .haiku, .abi = .none },
292 .{ .cpu_arch = .x86, .os_tag = .hurd, .abi = .gnu },
293 .{ .cpu_arch = .x86, .os_tag = .illumos, .abi = .none },
294 .{ .cpu_arch = .x86, .os_tag = .linux, .abi = .android },
295 .{ .cpu_arch = .x86, .os_tag = .linux, .abi = .gnu },
296 .{ .cpu_arch = .x86, .os_tag = .linux, .abi = .musl },
297 .{ .cpu_arch = .x86, .os_tag = .linux, .abi = .none },
298 .{ .cpu_arch = .x86, .os_tag = .netbsd, .abi = .none },
299 .{ .cpu_arch = .x86, .os_tag = .openbsd, .abi = .none },
300 .{ .cpu_arch = .x86, .os_tag = .rtems, .abi = .none },
301 .{ .cpu_arch = .x86, .os_tag = .uefi, .abi = .none },
302 .{ .cpu_arch = .x86, .os_tag = .windows, .abi = .gnu },
303 .{ .cpu_arch = .x86, .os_tag = .windows, .abi = .itanium },
304 .{ .cpu_arch = .x86, .os_tag = .windows, .abi = .msvc },
305
306 .{ .cpu_arch = .x86_64, .os_tag = .freebsd, .abi = .none },
307 .{ .cpu_arch = .x86_64, .os_tag = .freestanding, .abi = .none },
308 .{
309 .cpu_arch = .x86_64,
310 .os_tag = .freestanding,
311 .abi = .none,
312 .cpu_features_add = std.Target.x86.featureSet(&.{.soft_float}),
313 .cpu_features_sub = std.Target.x86.featureSet(&.{ .mmx, .sse, .sse2, .avx, .avx2 }),
314 },
315 .{ .cpu_arch = .x86_64, .os_tag = .fuchsia, .abi = .none },
316 .{ .cpu_arch = .x86_64, .os_tag = .dragonfly, .abi = .none },
317 .{ .cpu_arch = .x86_64, .os_tag = .driverkit, .abi = .none },
318 .{ .cpu_arch = .x86_64, .os_tag = .haiku, .abi = .none },
319 .{ .cpu_arch = .x86_64, .os_tag = .hermit, .abi = .none },
320 .{ .cpu_arch = .x86_64, .os_tag = .hurd, .abi = .gnu },
321 .{ .cpu_arch = .x86_64, .os_tag = .illumos, .abi = .none },
322 .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .android },
323 .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .gnu },
324 .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .gnux32 },
325 .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .musl },
326 .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .muslx32 },
327 .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .none },
328 .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .ohos },
329 .{ .cpu_arch = .x86_64, .os_tag = .maccatalyst, .abi = .none },
330 .{ .cpu_arch = .x86_64, .os_tag = .macos, .abi = .none },
331 .{ .cpu_arch = .x86_64, .os_tag = .netbsd, .abi = .none },
332 .{ .cpu_arch = .x86_64, .os_tag = .openbsd, .abi = .none },
333 .{ .cpu_arch = .x86_64, .os_tag = .rtems, .abi = .none },
334 .{ .cpu_arch = .x86_64, .os_tag = .serenity, .abi = .none },
335 .{ .cpu_arch = .x86_64, .os_tag = .uefi, .abi = .none },
336 .{ .cpu_arch = .x86_64, .os_tag = .windows, .abi = .gnu },
337 .{ .cpu_arch = .x86_64, .os_tag = .windows, .abi = .itanium },
338 .{ .cpu_arch = .x86_64, .os_tag = .windows, .abi = .msvc },
339
340 .{ .cpu_arch = .xcore, .os_tag = .freestanding, .abi = .none },
341
342 // .{ .cpu_arch = .xtensa, .os_tag = .freestanding, .abi = .none },
343 // .{ .cpu_arch = .xtensa, .os_tag = .linux, .abi = .none },
344};
345
346pub fn addCases(
347 ctx: *Cases,
348 build_options: @import("cases.zig").BuildOptions,
349 b: *std.Build,
350) !void {
351 if (!build_options.enable_llvm) return;
352 for (targets) |target_query| {
353 if (target_query.cpu_arch) |arch| switch (arch) {
354 .m68k => if (!build_options.llvm_has_m68k) continue,
355 .csky => if (!build_options.llvm_has_csky) continue,
356 .arc => if (!build_options.llvm_has_arc) continue,
357 .xtensa => if (!build_options.llvm_has_xtensa) continue,
358 else => {},
359 };
360 var case = ctx.addObjLlvm("llvm_targets", b.resolveTargetQuery(target_query));
361 case.addCompile("");
362 }
363}