]> git.proxmox.com Git - rustc.git/blob - src/stdarch/crates/core_arch/src/macros.rs
New upstream version 1.44.1+dfsg1
[rustc.git] / src / stdarch / crates / core_arch / src / macros.rs
1 //! Utility macros.
2
3 #[allow(unused)]
4 macro_rules! constify_imm8 {
5 ($imm8:expr, $expand:ident) => {
6 #[allow(overflowing_literals)]
7 match ($imm8) & 0b1111_1111 {
8 0 => $expand!(0),
9 1 => $expand!(1),
10 2 => $expand!(2),
11 3 => $expand!(3),
12 4 => $expand!(4),
13 5 => $expand!(5),
14 6 => $expand!(6),
15 7 => $expand!(7),
16 8 => $expand!(8),
17 9 => $expand!(9),
18 10 => $expand!(10),
19 11 => $expand!(11),
20 12 => $expand!(12),
21 13 => $expand!(13),
22 14 => $expand!(14),
23 15 => $expand!(15),
24 16 => $expand!(16),
25 17 => $expand!(17),
26 18 => $expand!(18),
27 19 => $expand!(19),
28 20 => $expand!(20),
29 21 => $expand!(21),
30 22 => $expand!(22),
31 23 => $expand!(23),
32 24 => $expand!(24),
33 25 => $expand!(25),
34 26 => $expand!(26),
35 27 => $expand!(27),
36 28 => $expand!(28),
37 29 => $expand!(29),
38 30 => $expand!(30),
39 31 => $expand!(31),
40 32 => $expand!(32),
41 33 => $expand!(33),
42 34 => $expand!(34),
43 35 => $expand!(35),
44 36 => $expand!(36),
45 37 => $expand!(37),
46 38 => $expand!(38),
47 39 => $expand!(39),
48 40 => $expand!(40),
49 41 => $expand!(41),
50 42 => $expand!(42),
51 43 => $expand!(43),
52 44 => $expand!(44),
53 45 => $expand!(45),
54 46 => $expand!(46),
55 47 => $expand!(47),
56 48 => $expand!(48),
57 49 => $expand!(49),
58 50 => $expand!(50),
59 51 => $expand!(51),
60 52 => $expand!(52),
61 53 => $expand!(53),
62 54 => $expand!(54),
63 55 => $expand!(55),
64 56 => $expand!(56),
65 57 => $expand!(57),
66 58 => $expand!(58),
67 59 => $expand!(59),
68 60 => $expand!(60),
69 61 => $expand!(61),
70 62 => $expand!(62),
71 63 => $expand!(63),
72 64 => $expand!(64),
73 65 => $expand!(65),
74 66 => $expand!(66),
75 67 => $expand!(67),
76 68 => $expand!(68),
77 69 => $expand!(69),
78 70 => $expand!(70),
79 71 => $expand!(71),
80 72 => $expand!(72),
81 73 => $expand!(73),
82 74 => $expand!(74),
83 75 => $expand!(75),
84 76 => $expand!(76),
85 77 => $expand!(77),
86 78 => $expand!(78),
87 79 => $expand!(79),
88 80 => $expand!(80),
89 81 => $expand!(81),
90 82 => $expand!(82),
91 83 => $expand!(83),
92 84 => $expand!(84),
93 85 => $expand!(85),
94 86 => $expand!(86),
95 87 => $expand!(87),
96 88 => $expand!(88),
97 89 => $expand!(89),
98 90 => $expand!(90),
99 91 => $expand!(91),
100 92 => $expand!(92),
101 93 => $expand!(93),
102 94 => $expand!(94),
103 95 => $expand!(95),
104 96 => $expand!(96),
105 97 => $expand!(97),
106 98 => $expand!(98),
107 99 => $expand!(99),
108 100 => $expand!(100),
109 101 => $expand!(101),
110 102 => $expand!(102),
111 103 => $expand!(103),
112 104 => $expand!(104),
113 105 => $expand!(105),
114 106 => $expand!(106),
115 107 => $expand!(107),
116 108 => $expand!(108),
117 109 => $expand!(109),
118 110 => $expand!(110),
119 111 => $expand!(111),
120 112 => $expand!(112),
121 113 => $expand!(113),
122 114 => $expand!(114),
123 115 => $expand!(115),
124 116 => $expand!(116),
125 117 => $expand!(117),
126 118 => $expand!(118),
127 119 => $expand!(119),
128 120 => $expand!(120),
129 121 => $expand!(121),
130 122 => $expand!(122),
131 123 => $expand!(123),
132 124 => $expand!(124),
133 125 => $expand!(125),
134 126 => $expand!(126),
135 127 => $expand!(127),
136 128 => $expand!(128),
137 129 => $expand!(129),
138 130 => $expand!(130),
139 131 => $expand!(131),
140 132 => $expand!(132),
141 133 => $expand!(133),
142 134 => $expand!(134),
143 135 => $expand!(135),
144 136 => $expand!(136),
145 137 => $expand!(137),
146 138 => $expand!(138),
147 139 => $expand!(139),
148 140 => $expand!(140),
149 141 => $expand!(141),
150 142 => $expand!(142),
151 143 => $expand!(143),
152 144 => $expand!(144),
153 145 => $expand!(145),
154 146 => $expand!(146),
155 147 => $expand!(147),
156 148 => $expand!(148),
157 149 => $expand!(149),
158 150 => $expand!(150),
159 151 => $expand!(151),
160 152 => $expand!(152),
161 153 => $expand!(153),
162 154 => $expand!(154),
163 155 => $expand!(155),
164 156 => $expand!(156),
165 157 => $expand!(157),
166 158 => $expand!(158),
167 159 => $expand!(159),
168 160 => $expand!(160),
169 161 => $expand!(161),
170 162 => $expand!(162),
171 163 => $expand!(163),
172 164 => $expand!(164),
173 165 => $expand!(165),
174 166 => $expand!(166),
175 167 => $expand!(167),
176 168 => $expand!(168),
177 169 => $expand!(169),
178 170 => $expand!(170),
179 171 => $expand!(171),
180 172 => $expand!(172),
181 173 => $expand!(173),
182 174 => $expand!(174),
183 175 => $expand!(175),
184 176 => $expand!(176),
185 177 => $expand!(177),
186 178 => $expand!(178),
187 179 => $expand!(179),
188 180 => $expand!(180),
189 181 => $expand!(181),
190 182 => $expand!(182),
191 183 => $expand!(183),
192 184 => $expand!(184),
193 185 => $expand!(185),
194 186 => $expand!(186),
195 187 => $expand!(187),
196 188 => $expand!(188),
197 189 => $expand!(189),
198 190 => $expand!(190),
199 191 => $expand!(191),
200 192 => $expand!(192),
201 193 => $expand!(193),
202 194 => $expand!(194),
203 195 => $expand!(195),
204 196 => $expand!(196),
205 197 => $expand!(197),
206 198 => $expand!(198),
207 199 => $expand!(199),
208 200 => $expand!(200),
209 201 => $expand!(201),
210 202 => $expand!(202),
211 203 => $expand!(203),
212 204 => $expand!(204),
213 205 => $expand!(205),
214 206 => $expand!(206),
215 207 => $expand!(207),
216 208 => $expand!(208),
217 209 => $expand!(209),
218 210 => $expand!(210),
219 211 => $expand!(211),
220 212 => $expand!(212),
221 213 => $expand!(213),
222 214 => $expand!(214),
223 215 => $expand!(215),
224 216 => $expand!(216),
225 217 => $expand!(217),
226 218 => $expand!(218),
227 219 => $expand!(219),
228 220 => $expand!(220),
229 221 => $expand!(221),
230 222 => $expand!(222),
231 223 => $expand!(223),
232 224 => $expand!(224),
233 225 => $expand!(225),
234 226 => $expand!(226),
235 227 => $expand!(227),
236 228 => $expand!(228),
237 229 => $expand!(229),
238 230 => $expand!(230),
239 231 => $expand!(231),
240 232 => $expand!(232),
241 233 => $expand!(233),
242 234 => $expand!(234),
243 235 => $expand!(235),
244 236 => $expand!(236),
245 237 => $expand!(237),
246 238 => $expand!(238),
247 239 => $expand!(239),
248 240 => $expand!(240),
249 241 => $expand!(241),
250 242 => $expand!(242),
251 243 => $expand!(243),
252 244 => $expand!(244),
253 245 => $expand!(245),
254 246 => $expand!(246),
255 247 => $expand!(247),
256 248 => $expand!(248),
257 249 => $expand!(249),
258 250 => $expand!(250),
259 251 => $expand!(251),
260 252 => $expand!(252),
261 253 => $expand!(253),
262 254 => $expand!(254),
263 _ => $expand!(255),
264 }
265 };
266 }
267
268 //immediate value: 0:31
269 #[allow(unused)]
270 macro_rules! constify_imm5 {
271 ($imm8:expr, $expand:ident) => {
272 #[allow(overflowing_literals)]
273 match ($imm8) & 0b1_1111 {
274 0 => $expand!(0),
275 1 => $expand!(1),
276 2 => $expand!(2),
277 3 => $expand!(3),
278 4 => $expand!(4),
279 5 => $expand!(5),
280 6 => $expand!(6),
281 7 => $expand!(7),
282 8 => $expand!(8),
283 9 => $expand!(9),
284 10 => $expand!(10),
285 11 => $expand!(11),
286 12 => $expand!(12),
287 13 => $expand!(13),
288 14 => $expand!(14),
289 15 => $expand!(15),
290 16 => $expand!(16),
291 17 => $expand!(17),
292 18 => $expand!(18),
293 19 => $expand!(19),
294 20 => $expand!(20),
295 21 => $expand!(21),
296 22 => $expand!(22),
297 23 => $expand!(23),
298 24 => $expand!(24),
299 25 => $expand!(25),
300 26 => $expand!(26),
301 27 => $expand!(27),
302 28 => $expand!(28),
303 29 => $expand!(29),
304 30 => $expand!(30),
305 _ => $expand!(31),
306 }
307 };
308 }
309
310 //immediate value: -16:15
311 #[allow(unused)]
312 macro_rules! constify_imm5 {
313 ($imm8:expr, $expand:ident) => {
314 #[allow(overflowing_literals)]
315 match ($imm8) & 0b1_1111 {
316 0 => $expand!(0),
317 1 => $expand!(1),
318 2 => $expand!(2),
319 3 => $expand!(3),
320 4 => $expand!(4),
321 5 => $expand!(5),
322 6 => $expand!(6),
323 7 => $expand!(7),
324 8 => $expand!(8),
325 9 => $expand!(9),
326 10 => $expand!(10),
327 11 => $expand!(11),
328 12 => $expand!(12),
329 13 => $expand!(13),
330 14 => $expand!(14),
331 15 => $expand!(15),
332 16 => $expand!(16),
333 17 => $expand!(17),
334 18 => $expand!(18),
335 19 => $expand!(19),
336 20 => $expand!(20),
337 21 => $expand!(21),
338 22 => $expand!(22),
339 23 => $expand!(23),
340 24 => $expand!(24),
341 25 => $expand!(25),
342 26 => $expand!(26),
343 27 => $expand!(27),
344 28 => $expand!(28),
345 29 => $expand!(29),
346 30 => $expand!(30),
347 _ => $expand!(31),
348 }
349 };
350 }
351
352 //immediate value: 0:16
353 #[allow(unused)]
354 macro_rules! constify_imm4 {
355 ($imm8:expr, $expand:ident) => {
356 #[allow(overflowing_literals)]
357 match ($imm8) & 0b1111 {
358 0 => $expand!(0),
359 1 => $expand!(1),
360 2 => $expand!(2),
361 3 => $expand!(3),
362 4 => $expand!(4),
363 5 => $expand!(5),
364 6 => $expand!(6),
365 7 => $expand!(7),
366 8 => $expand!(8),
367 9 => $expand!(9),
368 10 => $expand!(10),
369 11 => $expand!(11),
370 12 => $expand!(12),
371 13 => $expand!(13),
372 14 => $expand!(14),
373 _ => $expand!(15),
374 }
375 };
376 }
377
378 //immediate value: 0:7
379 #[allow(unused)]
380 macro_rules! constify_imm3 {
381 ($imm8:expr, $expand:ident) => {
382 #[allow(overflowing_literals)]
383 match ($imm8) & 0b111 {
384 0 => $expand!(0),
385 1 => $expand!(1),
386 2 => $expand!(2),
387 3 => $expand!(3),
388 4 => $expand!(4),
389 5 => $expand!(5),
390 6 => $expand!(6),
391 _ => $expand!(7),
392 }
393 };
394 }
395
396 #[allow(unused)]
397 macro_rules! types {
398 ($(
399 $(#[$doc:meta])*
400 pub struct $name:ident($($fields:tt)*);
401 )*) => ($(
402 $(#[$doc])*
403 #[derive(Copy, Clone, Debug)]
404 #[allow(non_camel_case_types)]
405 #[repr(simd)]
406 #[allow(clippy::missing_inline_in_public_items)]
407 pub struct $name($($fields)*);
408 )*)
409 }