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