Branch data Line data Source code
1 : : /* Generated automatically from machmode.def and config/i386/i386-modes.def
2 : : by genmodes. */
3 : :
4 : : #include "config.h"
5 : : #include "system.h"
6 : : #include "coretypes.h"
7 : : #include "tm.h"
8 : : #include "real.h"
9 : :
10 : : const char *const mode_name[NUM_MACHINE_MODES] =
11 : : {
12 : : "VOID",
13 : : "BLK",
14 : : "CC",
15 : : "CCGC",
16 : : "CCGOC",
17 : : "CCNO",
18 : : "CCGZ",
19 : : "CCA",
20 : : "CCC",
21 : : "CCO",
22 : : "CCP",
23 : : "CCS",
24 : : "CCZ",
25 : : "CCFP",
26 : : "BI",
27 : : "QI",
28 : : "HI",
29 : : "SI",
30 : : "DI",
31 : : "TI",
32 : : "OI",
33 : : "XI",
34 : : "P2QI",
35 : : "P2HI",
36 : : "POI",
37 : : "QQ",
38 : : "HQ",
39 : : "SQ",
40 : : "DQ",
41 : : "TQ",
42 : : "UQQ",
43 : : "UHQ",
44 : : "USQ",
45 : : "UDQ",
46 : : "UTQ",
47 : : "HA",
48 : : "SA",
49 : : "DA",
50 : : "TA",
51 : : "UHA",
52 : : "USA",
53 : : "UDA",
54 : : "UTA",
55 : : "HF",
56 : : "BF",
57 : : "SF",
58 : : "DF",
59 : : "XF",
60 : : "TF",
61 : : "SD",
62 : : "DD",
63 : : "TD",
64 : : "CQI",
65 : : "CP2QI",
66 : : "CHI",
67 : : "CP2HI",
68 : : "CSI",
69 : : "CDI",
70 : : "CTI",
71 : : "CPOI",
72 : : "COI",
73 : : "CXI",
74 : : "BC",
75 : : "HC",
76 : : "SC",
77 : : "DC",
78 : : "XC",
79 : : "TC",
80 : : "V2QI",
81 : : "V4QI",
82 : : "V2HI",
83 : : "V1SI",
84 : : "V8QI",
85 : : "V4HI",
86 : : "V2SI",
87 : : "V1DI",
88 : : "V12QI",
89 : : "V6HI",
90 : : "V14QI",
91 : : "V16QI",
92 : : "V8HI",
93 : : "V4SI",
94 : : "V2DI",
95 : : "V1TI",
96 : : "V32QI",
97 : : "V16HI",
98 : : "V8SI",
99 : : "V4DI",
100 : : "V2TI",
101 : : "V64QI",
102 : : "V32HI",
103 : : "V16SI",
104 : : "V8DI",
105 : : "V4TI",
106 : : "V128QI",
107 : : "V64HI",
108 : : "V32SI",
109 : : "V16DI",
110 : : "V8TI",
111 : : "V64SI",
112 : : "V2HF",
113 : : "V2BF",
114 : : "V4BF",
115 : : "V4HF",
116 : : "V2SF",
117 : : "V6HF",
118 : : "V8BF",
119 : : "V8HF",
120 : : "V4SF",
121 : : "V2DF",
122 : : "V16BF",
123 : : "V16HF",
124 : : "V8SF",
125 : : "V4DF",
126 : : "V2TF",
127 : : "V32BF",
128 : : "V32HF",
129 : : "V16SF",
130 : : "V8DF",
131 : : "V4TF",
132 : : "V64BF",
133 : : "V64HF",
134 : : "V32SF",
135 : : "V16DF",
136 : : "V8TF",
137 : : "V128BF",
138 : : "V128HF",
139 : : "V64SF",
140 : : "V32DF",
141 : : "V16TF",
142 : : };
143 : :
144 : : const unsigned char mode_class[NUM_MACHINE_MODES] =
145 : : {
146 : : MODE_RANDOM, /* VOID */
147 : : MODE_RANDOM, /* BLK */
148 : : MODE_CC, /* CC */
149 : : MODE_CC, /* CCGC */
150 : : MODE_CC, /* CCGOC */
151 : : MODE_CC, /* CCNO */
152 : : MODE_CC, /* CCGZ */
153 : : MODE_CC, /* CCA */
154 : : MODE_CC, /* CCC */
155 : : MODE_CC, /* CCO */
156 : : MODE_CC, /* CCP */
157 : : MODE_CC, /* CCS */
158 : : MODE_CC, /* CCZ */
159 : : MODE_CC, /* CCFP */
160 : : MODE_INT, /* BI */
161 : : MODE_INT, /* QI */
162 : : MODE_INT, /* HI */
163 : : MODE_INT, /* SI */
164 : : MODE_INT, /* DI */
165 : : MODE_INT, /* TI */
166 : : MODE_INT, /* OI */
167 : : MODE_INT, /* XI */
168 : : MODE_PARTIAL_INT, /* P2QI */
169 : : MODE_PARTIAL_INT, /* P2HI */
170 : : MODE_PARTIAL_INT, /* POI */
171 : : MODE_FRACT, /* QQ */
172 : : MODE_FRACT, /* HQ */
173 : : MODE_FRACT, /* SQ */
174 : : MODE_FRACT, /* DQ */
175 : : MODE_FRACT, /* TQ */
176 : : MODE_UFRACT, /* UQQ */
177 : : MODE_UFRACT, /* UHQ */
178 : : MODE_UFRACT, /* USQ */
179 : : MODE_UFRACT, /* UDQ */
180 : : MODE_UFRACT, /* UTQ */
181 : : MODE_ACCUM, /* HA */
182 : : MODE_ACCUM, /* SA */
183 : : MODE_ACCUM, /* DA */
184 : : MODE_ACCUM, /* TA */
185 : : MODE_UACCUM, /* UHA */
186 : : MODE_UACCUM, /* USA */
187 : : MODE_UACCUM, /* UDA */
188 : : MODE_UACCUM, /* UTA */
189 : : MODE_FLOAT, /* HF */
190 : : MODE_FLOAT, /* BF */
191 : : MODE_FLOAT, /* SF */
192 : : MODE_FLOAT, /* DF */
193 : : MODE_FLOAT, /* XF */
194 : : MODE_FLOAT, /* TF */
195 : : MODE_DECIMAL_FLOAT, /* SD */
196 : : MODE_DECIMAL_FLOAT, /* DD */
197 : : MODE_DECIMAL_FLOAT, /* TD */
198 : : MODE_COMPLEX_INT, /* CQI */
199 : : MODE_COMPLEX_INT, /* CP2QI */
200 : : MODE_COMPLEX_INT, /* CHI */
201 : : MODE_COMPLEX_INT, /* CP2HI */
202 : : MODE_COMPLEX_INT, /* CSI */
203 : : MODE_COMPLEX_INT, /* CDI */
204 : : MODE_COMPLEX_INT, /* CTI */
205 : : MODE_COMPLEX_INT, /* CPOI */
206 : : MODE_COMPLEX_INT, /* COI */
207 : : MODE_COMPLEX_INT, /* CXI */
208 : : MODE_COMPLEX_FLOAT, /* BC */
209 : : MODE_COMPLEX_FLOAT, /* HC */
210 : : MODE_COMPLEX_FLOAT, /* SC */
211 : : MODE_COMPLEX_FLOAT, /* DC */
212 : : MODE_COMPLEX_FLOAT, /* XC */
213 : : MODE_COMPLEX_FLOAT, /* TC */
214 : : MODE_VECTOR_INT, /* V2QI */
215 : : MODE_VECTOR_INT, /* V4QI */
216 : : MODE_VECTOR_INT, /* V2HI */
217 : : MODE_VECTOR_INT, /* V1SI */
218 : : MODE_VECTOR_INT, /* V8QI */
219 : : MODE_VECTOR_INT, /* V4HI */
220 : : MODE_VECTOR_INT, /* V2SI */
221 : : MODE_VECTOR_INT, /* V1DI */
222 : : MODE_VECTOR_INT, /* V12QI */
223 : : MODE_VECTOR_INT, /* V6HI */
224 : : MODE_VECTOR_INT, /* V14QI */
225 : : MODE_VECTOR_INT, /* V16QI */
226 : : MODE_VECTOR_INT, /* V8HI */
227 : : MODE_VECTOR_INT, /* V4SI */
228 : : MODE_VECTOR_INT, /* V2DI */
229 : : MODE_VECTOR_INT, /* V1TI */
230 : : MODE_VECTOR_INT, /* V32QI */
231 : : MODE_VECTOR_INT, /* V16HI */
232 : : MODE_VECTOR_INT, /* V8SI */
233 : : MODE_VECTOR_INT, /* V4DI */
234 : : MODE_VECTOR_INT, /* V2TI */
235 : : MODE_VECTOR_INT, /* V64QI */
236 : : MODE_VECTOR_INT, /* V32HI */
237 : : MODE_VECTOR_INT, /* V16SI */
238 : : MODE_VECTOR_INT, /* V8DI */
239 : : MODE_VECTOR_INT, /* V4TI */
240 : : MODE_VECTOR_INT, /* V128QI */
241 : : MODE_VECTOR_INT, /* V64HI */
242 : : MODE_VECTOR_INT, /* V32SI */
243 : : MODE_VECTOR_INT, /* V16DI */
244 : : MODE_VECTOR_INT, /* V8TI */
245 : : MODE_VECTOR_INT, /* V64SI */
246 : : MODE_VECTOR_FLOAT, /* V2HF */
247 : : MODE_VECTOR_FLOAT, /* V2BF */
248 : : MODE_VECTOR_FLOAT, /* V4BF */
249 : : MODE_VECTOR_FLOAT, /* V4HF */
250 : : MODE_VECTOR_FLOAT, /* V2SF */
251 : : MODE_VECTOR_FLOAT, /* V6HF */
252 : : MODE_VECTOR_FLOAT, /* V8BF */
253 : : MODE_VECTOR_FLOAT, /* V8HF */
254 : : MODE_VECTOR_FLOAT, /* V4SF */
255 : : MODE_VECTOR_FLOAT, /* V2DF */
256 : : MODE_VECTOR_FLOAT, /* V16BF */
257 : : MODE_VECTOR_FLOAT, /* V16HF */
258 : : MODE_VECTOR_FLOAT, /* V8SF */
259 : : MODE_VECTOR_FLOAT, /* V4DF */
260 : : MODE_VECTOR_FLOAT, /* V2TF */
261 : : MODE_VECTOR_FLOAT, /* V32BF */
262 : : MODE_VECTOR_FLOAT, /* V32HF */
263 : : MODE_VECTOR_FLOAT, /* V16SF */
264 : : MODE_VECTOR_FLOAT, /* V8DF */
265 : : MODE_VECTOR_FLOAT, /* V4TF */
266 : : MODE_VECTOR_FLOAT, /* V64BF */
267 : : MODE_VECTOR_FLOAT, /* V64HF */
268 : : MODE_VECTOR_FLOAT, /* V32SF */
269 : : MODE_VECTOR_FLOAT, /* V16DF */
270 : : MODE_VECTOR_FLOAT, /* V8TF */
271 : : MODE_VECTOR_FLOAT, /* V128BF */
272 : : MODE_VECTOR_FLOAT, /* V128HF */
273 : : MODE_VECTOR_FLOAT, /* V64SF */
274 : : MODE_VECTOR_FLOAT, /* V32DF */
275 : : MODE_VECTOR_FLOAT, /* V16TF */
276 : : };
277 : :
278 : : const poly_uint16 mode_precision[NUM_MACHINE_MODES] =
279 : : {
280 : : { 0 }, /* VOID */
281 : : { 0 }, /* BLK */
282 : : { 4 * BITS_PER_UNIT }, /* CC */
283 : : { 4 * BITS_PER_UNIT }, /* CCGC */
284 : : { 4 * BITS_PER_UNIT }, /* CCGOC */
285 : : { 4 * BITS_PER_UNIT }, /* CCNO */
286 : : { 4 * BITS_PER_UNIT }, /* CCGZ */
287 : : { 4 * BITS_PER_UNIT }, /* CCA */
288 : : { 4 * BITS_PER_UNIT }, /* CCC */
289 : : { 4 * BITS_PER_UNIT }, /* CCO */
290 : : { 4 * BITS_PER_UNIT }, /* CCP */
291 : : { 4 * BITS_PER_UNIT }, /* CCS */
292 : : { 4 * BITS_PER_UNIT }, /* CCZ */
293 : : { 4 * BITS_PER_UNIT }, /* CCFP */
294 : : { 1 }, /* BI */
295 : : { 1 * BITS_PER_UNIT }, /* QI */
296 : : { 2 * BITS_PER_UNIT }, /* HI */
297 : : { 4 * BITS_PER_UNIT }, /* SI */
298 : : { 8 * BITS_PER_UNIT }, /* DI */
299 : : { 16 * BITS_PER_UNIT }, /* TI */
300 : : { 32 * BITS_PER_UNIT }, /* OI */
301 : : { 64 * BITS_PER_UNIT }, /* XI */
302 : : { 16 }, /* P2QI */
303 : : { 32 }, /* P2HI */
304 : : { 160 }, /* POI */
305 : : { 1 * BITS_PER_UNIT }, /* QQ */
306 : : { 2 * BITS_PER_UNIT }, /* HQ */
307 : : { 4 * BITS_PER_UNIT }, /* SQ */
308 : : { 8 * BITS_PER_UNIT }, /* DQ */
309 : : { 16 * BITS_PER_UNIT }, /* TQ */
310 : : { 1 * BITS_PER_UNIT }, /* UQQ */
311 : : { 2 * BITS_PER_UNIT }, /* UHQ */
312 : : { 4 * BITS_PER_UNIT }, /* USQ */
313 : : { 8 * BITS_PER_UNIT }, /* UDQ */
314 : : { 16 * BITS_PER_UNIT }, /* UTQ */
315 : : { 2 * BITS_PER_UNIT }, /* HA */
316 : : { 4 * BITS_PER_UNIT }, /* SA */
317 : : { 8 * BITS_PER_UNIT }, /* DA */
318 : : { 16 * BITS_PER_UNIT }, /* TA */
319 : : { 2 * BITS_PER_UNIT }, /* UHA */
320 : : { 4 * BITS_PER_UNIT }, /* USA */
321 : : { 8 * BITS_PER_UNIT }, /* UDA */
322 : : { 16 * BITS_PER_UNIT }, /* UTA */
323 : : { 2 * BITS_PER_UNIT }, /* HF */
324 : : { 2 * BITS_PER_UNIT }, /* BF */
325 : : { 4 * BITS_PER_UNIT }, /* SF */
326 : : { 8 * BITS_PER_UNIT }, /* DF */
327 : : { 80 }, /* XF */
328 : : { 16 * BITS_PER_UNIT }, /* TF */
329 : : { 4 * BITS_PER_UNIT }, /* SD */
330 : : { 8 * BITS_PER_UNIT }, /* DD */
331 : : { 16 * BITS_PER_UNIT }, /* TD */
332 : : { 2 * BITS_PER_UNIT }, /* CQI */
333 : : { 32 }, /* CP2QI */
334 : : { 4 * BITS_PER_UNIT }, /* CHI */
335 : : { 64 }, /* CP2HI */
336 : : { 8 * BITS_PER_UNIT }, /* CSI */
337 : : { 16 * BITS_PER_UNIT }, /* CDI */
338 : : { 32 * BITS_PER_UNIT }, /* CTI */
339 : : { 320 }, /* CPOI */
340 : : { 64 * BITS_PER_UNIT }, /* COI */
341 : : { 128 * BITS_PER_UNIT }, /* CXI */
342 : : { 4 * BITS_PER_UNIT }, /* BC */
343 : : { 4 * BITS_PER_UNIT }, /* HC */
344 : : { 8 * BITS_PER_UNIT }, /* SC */
345 : : { 16 * BITS_PER_UNIT }, /* DC */
346 : : { 160 }, /* XC */
347 : : { 32 * BITS_PER_UNIT }, /* TC */
348 : : { 2 * BITS_PER_UNIT }, /* V2QI */
349 : : { 4 * BITS_PER_UNIT }, /* V4QI */
350 : : { 4 * BITS_PER_UNIT }, /* V2HI */
351 : : { 4 * BITS_PER_UNIT }, /* V1SI */
352 : : { 8 * BITS_PER_UNIT }, /* V8QI */
353 : : { 8 * BITS_PER_UNIT }, /* V4HI */
354 : : { 8 * BITS_PER_UNIT }, /* V2SI */
355 : : { 8 * BITS_PER_UNIT }, /* V1DI */
356 : : { 12 * BITS_PER_UNIT }, /* V12QI */
357 : : { 12 * BITS_PER_UNIT }, /* V6HI */
358 : : { 14 * BITS_PER_UNIT }, /* V14QI */
359 : : { 16 * BITS_PER_UNIT }, /* V16QI */
360 : : { 16 * BITS_PER_UNIT }, /* V8HI */
361 : : { 16 * BITS_PER_UNIT }, /* V4SI */
362 : : { 16 * BITS_PER_UNIT }, /* V2DI */
363 : : { 16 * BITS_PER_UNIT }, /* V1TI */
364 : : { 32 * BITS_PER_UNIT }, /* V32QI */
365 : : { 32 * BITS_PER_UNIT }, /* V16HI */
366 : : { 32 * BITS_PER_UNIT }, /* V8SI */
367 : : { 32 * BITS_PER_UNIT }, /* V4DI */
368 : : { 32 * BITS_PER_UNIT }, /* V2TI */
369 : : { 64 * BITS_PER_UNIT }, /* V64QI */
370 : : { 64 * BITS_PER_UNIT }, /* V32HI */
371 : : { 64 * BITS_PER_UNIT }, /* V16SI */
372 : : { 64 * BITS_PER_UNIT }, /* V8DI */
373 : : { 64 * BITS_PER_UNIT }, /* V4TI */
374 : : { 128 * BITS_PER_UNIT }, /* V128QI */
375 : : { 128 * BITS_PER_UNIT }, /* V64HI */
376 : : { 128 * BITS_PER_UNIT }, /* V32SI */
377 : : { 128 * BITS_PER_UNIT }, /* V16DI */
378 : : { 128 * BITS_PER_UNIT }, /* V8TI */
379 : : { 256 * BITS_PER_UNIT }, /* V64SI */
380 : : { 4 * BITS_PER_UNIT }, /* V2HF */
381 : : { 4 * BITS_PER_UNIT }, /* V2BF */
382 : : { 8 * BITS_PER_UNIT }, /* V4BF */
383 : : { 8 * BITS_PER_UNIT }, /* V4HF */
384 : : { 8 * BITS_PER_UNIT }, /* V2SF */
385 : : { 12 * BITS_PER_UNIT }, /* V6HF */
386 : : { 16 * BITS_PER_UNIT }, /* V8BF */
387 : : { 16 * BITS_PER_UNIT }, /* V8HF */
388 : : { 16 * BITS_PER_UNIT }, /* V4SF */
389 : : { 16 * BITS_PER_UNIT }, /* V2DF */
390 : : { 32 * BITS_PER_UNIT }, /* V16BF */
391 : : { 32 * BITS_PER_UNIT }, /* V16HF */
392 : : { 32 * BITS_PER_UNIT }, /* V8SF */
393 : : { 32 * BITS_PER_UNIT }, /* V4DF */
394 : : { 32 * BITS_PER_UNIT }, /* V2TF */
395 : : { 64 * BITS_PER_UNIT }, /* V32BF */
396 : : { 64 * BITS_PER_UNIT }, /* V32HF */
397 : : { 64 * BITS_PER_UNIT }, /* V16SF */
398 : : { 64 * BITS_PER_UNIT }, /* V8DF */
399 : : { 64 * BITS_PER_UNIT }, /* V4TF */
400 : : { 128 * BITS_PER_UNIT }, /* V64BF */
401 : : { 128 * BITS_PER_UNIT }, /* V64HF */
402 : : { 128 * BITS_PER_UNIT }, /* V32SF */
403 : : { 128 * BITS_PER_UNIT }, /* V16DF */
404 : : { 128 * BITS_PER_UNIT }, /* V8TF */
405 : : { 256 * BITS_PER_UNIT }, /* V128BF */
406 : : { 256 * BITS_PER_UNIT }, /* V128HF */
407 : : { 256 * BITS_PER_UNIT }, /* V64SF */
408 : : { 256 * BITS_PER_UNIT }, /* V32DF */
409 : : { 256 * BITS_PER_UNIT }, /* V16TF */
410 : : };
411 : :
412 : : poly_uint16 mode_size[NUM_MACHINE_MODES] =
413 : : {
414 : : { 0 }, /* VOID */
415 : : { 0 }, /* BLK */
416 : : { 4 }, /* CC */
417 : : { 4 }, /* CCGC */
418 : : { 4 }, /* CCGOC */
419 : : { 4 }, /* CCNO */
420 : : { 4 }, /* CCGZ */
421 : : { 4 }, /* CCA */
422 : : { 4 }, /* CCC */
423 : : { 4 }, /* CCO */
424 : : { 4 }, /* CCP */
425 : : { 4 }, /* CCS */
426 : : { 4 }, /* CCZ */
427 : : { 4 }, /* CCFP */
428 : : { 1 }, /* BI */
429 : : { 1 }, /* QI */
430 : : { 2 }, /* HI */
431 : : { 4 }, /* SI */
432 : : { 8 }, /* DI */
433 : : { 16 }, /* TI */
434 : : { 32 }, /* OI */
435 : : { 64 }, /* XI */
436 : : { 2 }, /* P2QI */
437 : : { 4 }, /* P2HI */
438 : : { 32 }, /* POI */
439 : : { 1 }, /* QQ */
440 : : { 2 }, /* HQ */
441 : : { 4 }, /* SQ */
442 : : { 8 }, /* DQ */
443 : : { 16 }, /* TQ */
444 : : { 1 }, /* UQQ */
445 : : { 2 }, /* UHQ */
446 : : { 4 }, /* USQ */
447 : : { 8 }, /* UDQ */
448 : : { 16 }, /* UTQ */
449 : : { 2 }, /* HA */
450 : : { 4 }, /* SA */
451 : : { 8 }, /* DA */
452 : : { 16 }, /* TA */
453 : : { 2 }, /* UHA */
454 : : { 4 }, /* USA */
455 : : { 8 }, /* UDA */
456 : : { 16 }, /* UTA */
457 : : { 2 }, /* HF */
458 : : { 2 }, /* BF */
459 : : { 4 }, /* SF */
460 : : { 8 }, /* DF */
461 : : { 12 }, /* XF */
462 : : { 16 }, /* TF */
463 : : { 4 }, /* SD */
464 : : { 8 }, /* DD */
465 : : { 16 }, /* TD */
466 : : { 2 }, /* CQI */
467 : : { 4 }, /* CP2QI */
468 : : { 4 }, /* CHI */
469 : : { 8 }, /* CP2HI */
470 : : { 8 }, /* CSI */
471 : : { 16 }, /* CDI */
472 : : { 32 }, /* CTI */
473 : : { 64 }, /* CPOI */
474 : : { 64 }, /* COI */
475 : : { 128 }, /* CXI */
476 : : { 4 }, /* BC */
477 : : { 4 }, /* HC */
478 : : { 8 }, /* SC */
479 : : { 16 }, /* DC */
480 : : { 24 }, /* XC */
481 : : { 32 }, /* TC */
482 : : { 2 }, /* V2QI */
483 : : { 4 }, /* V4QI */
484 : : { 4 }, /* V2HI */
485 : : { 4 }, /* V1SI */
486 : : { 8 }, /* V8QI */
487 : : { 8 }, /* V4HI */
488 : : { 8 }, /* V2SI */
489 : : { 8 }, /* V1DI */
490 : : { 12 }, /* V12QI */
491 : : { 12 }, /* V6HI */
492 : : { 14 }, /* V14QI */
493 : : { 16 }, /* V16QI */
494 : : { 16 }, /* V8HI */
495 : : { 16 }, /* V4SI */
496 : : { 16 }, /* V2DI */
497 : : { 16 }, /* V1TI */
498 : : { 32 }, /* V32QI */
499 : : { 32 }, /* V16HI */
500 : : { 32 }, /* V8SI */
501 : : { 32 }, /* V4DI */
502 : : { 32 }, /* V2TI */
503 : : { 64 }, /* V64QI */
504 : : { 64 }, /* V32HI */
505 : : { 64 }, /* V16SI */
506 : : { 64 }, /* V8DI */
507 : : { 64 }, /* V4TI */
508 : : { 128 }, /* V128QI */
509 : : { 128 }, /* V64HI */
510 : : { 128 }, /* V32SI */
511 : : { 128 }, /* V16DI */
512 : : { 128 }, /* V8TI */
513 : : { 256 }, /* V64SI */
514 : : { 4 }, /* V2HF */
515 : : { 4 }, /* V2BF */
516 : : { 8 }, /* V4BF */
517 : : { 8 }, /* V4HF */
518 : : { 8 }, /* V2SF */
519 : : { 12 }, /* V6HF */
520 : : { 16 }, /* V8BF */
521 : : { 16 }, /* V8HF */
522 : : { 16 }, /* V4SF */
523 : : { 16 }, /* V2DF */
524 : : { 32 }, /* V16BF */
525 : : { 32 }, /* V16HF */
526 : : { 32 }, /* V8SF */
527 : : { 32 }, /* V4DF */
528 : : { 32 }, /* V2TF */
529 : : { 64 }, /* V32BF */
530 : : { 64 }, /* V32HF */
531 : : { 64 }, /* V16SF */
532 : : { 64 }, /* V8DF */
533 : : { 64 }, /* V4TF */
534 : : { 128 }, /* V64BF */
535 : : { 128 }, /* V64HF */
536 : : { 128 }, /* V32SF */
537 : : { 128 }, /* V16DF */
538 : : { 128 }, /* V8TF */
539 : : { 256 }, /* V128BF */
540 : : { 256 }, /* V128HF */
541 : : { 256 }, /* V64SF */
542 : : { 256 }, /* V32DF */
543 : : { 256 }, /* V16TF */
544 : : };
545 : :
546 : : const poly_uint16 mode_nunits[NUM_MACHINE_MODES] =
547 : : {
548 : : { 0 }, /* VOID */
549 : : { 0 }, /* BLK */
550 : : { 1 }, /* CC */
551 : : { 1 }, /* CCGC */
552 : : { 1 }, /* CCGOC */
553 : : { 1 }, /* CCNO */
554 : : { 1 }, /* CCGZ */
555 : : { 1 }, /* CCA */
556 : : { 1 }, /* CCC */
557 : : { 1 }, /* CCO */
558 : : { 1 }, /* CCP */
559 : : { 1 }, /* CCS */
560 : : { 1 }, /* CCZ */
561 : : { 1 }, /* CCFP */
562 : : { 1 }, /* BI */
563 : : { 1 }, /* QI */
564 : : { 1 }, /* HI */
565 : : { 1 }, /* SI */
566 : : { 1 }, /* DI */
567 : : { 1 }, /* TI */
568 : : { 1 }, /* OI */
569 : : { 1 }, /* XI */
570 : : { 1 }, /* P2QI */
571 : : { 1 }, /* P2HI */
572 : : { 1 }, /* POI */
573 : : { 1 }, /* QQ */
574 : : { 1 }, /* HQ */
575 : : { 1 }, /* SQ */
576 : : { 1 }, /* DQ */
577 : : { 1 }, /* TQ */
578 : : { 1 }, /* UQQ */
579 : : { 1 }, /* UHQ */
580 : : { 1 }, /* USQ */
581 : : { 1 }, /* UDQ */
582 : : { 1 }, /* UTQ */
583 : : { 1 }, /* HA */
584 : : { 1 }, /* SA */
585 : : { 1 }, /* DA */
586 : : { 1 }, /* TA */
587 : : { 1 }, /* UHA */
588 : : { 1 }, /* USA */
589 : : { 1 }, /* UDA */
590 : : { 1 }, /* UTA */
591 : : { 1 }, /* HF */
592 : : { 1 }, /* BF */
593 : : { 1 }, /* SF */
594 : : { 1 }, /* DF */
595 : : { 1 }, /* XF */
596 : : { 1 }, /* TF */
597 : : { 1 }, /* SD */
598 : : { 1 }, /* DD */
599 : : { 1 }, /* TD */
600 : : { 2 }, /* CQI */
601 : : { 2 }, /* CP2QI */
602 : : { 2 }, /* CHI */
603 : : { 2 }, /* CP2HI */
604 : : { 2 }, /* CSI */
605 : : { 2 }, /* CDI */
606 : : { 2 }, /* CTI */
607 : : { 2 }, /* CPOI */
608 : : { 2 }, /* COI */
609 : : { 2 }, /* CXI */
610 : : { 2 }, /* BC */
611 : : { 2 }, /* HC */
612 : : { 2 }, /* SC */
613 : : { 2 }, /* DC */
614 : : { 2 }, /* XC */
615 : : { 2 }, /* TC */
616 : : { 2 }, /* V2QI */
617 : : { 4 }, /* V4QI */
618 : : { 2 }, /* V2HI */
619 : : { 1 }, /* V1SI */
620 : : { 8 }, /* V8QI */
621 : : { 4 }, /* V4HI */
622 : : { 2 }, /* V2SI */
623 : : { 1 }, /* V1DI */
624 : : { 12 }, /* V12QI */
625 : : { 6 }, /* V6HI */
626 : : { 14 }, /* V14QI */
627 : : { 16 }, /* V16QI */
628 : : { 8 }, /* V8HI */
629 : : { 4 }, /* V4SI */
630 : : { 2 }, /* V2DI */
631 : : { 1 }, /* V1TI */
632 : : { 32 }, /* V32QI */
633 : : { 16 }, /* V16HI */
634 : : { 8 }, /* V8SI */
635 : : { 4 }, /* V4DI */
636 : : { 2 }, /* V2TI */
637 : : { 64 }, /* V64QI */
638 : : { 32 }, /* V32HI */
639 : : { 16 }, /* V16SI */
640 : : { 8 }, /* V8DI */
641 : : { 4 }, /* V4TI */
642 : : { 128 }, /* V128QI */
643 : : { 64 }, /* V64HI */
644 : : { 32 }, /* V32SI */
645 : : { 16 }, /* V16DI */
646 : : { 8 }, /* V8TI */
647 : : { 64 }, /* V64SI */
648 : : { 2 }, /* V2HF */
649 : : { 2 }, /* V2BF */
650 : : { 4 }, /* V4BF */
651 : : { 4 }, /* V4HF */
652 : : { 2 }, /* V2SF */
653 : : { 6 }, /* V6HF */
654 : : { 8 }, /* V8BF */
655 : : { 8 }, /* V8HF */
656 : : { 4 }, /* V4SF */
657 : : { 2 }, /* V2DF */
658 : : { 16 }, /* V16BF */
659 : : { 16 }, /* V16HF */
660 : : { 8 }, /* V8SF */
661 : : { 4 }, /* V4DF */
662 : : { 2 }, /* V2TF */
663 : : { 32 }, /* V32BF */
664 : : { 32 }, /* V32HF */
665 : : { 16 }, /* V16SF */
666 : : { 8 }, /* V8DF */
667 : : { 4 }, /* V4TF */
668 : : { 64 }, /* V64BF */
669 : : { 64 }, /* V64HF */
670 : : { 32 }, /* V32SF */
671 : : { 16 }, /* V16DF */
672 : : { 8 }, /* V8TF */
673 : : { 128 }, /* V128BF */
674 : : { 128 }, /* V128HF */
675 : : { 64 }, /* V64SF */
676 : : { 32 }, /* V32DF */
677 : : { 16 }, /* V16TF */
678 : : };
679 : :
680 : : const unsigned short mode_next[NUM_MACHINE_MODES] =
681 : : {
682 : : E_VOIDmode, /* VOID */
683 : : E_VOIDmode, /* BLK */
684 : : E_VOIDmode, /* CC */
685 : : E_VOIDmode, /* CCGC */
686 : : E_VOIDmode, /* CCGOC */
687 : : E_VOIDmode, /* CCNO */
688 : : E_VOIDmode, /* CCGZ */
689 : : E_VOIDmode, /* CCA */
690 : : E_VOIDmode, /* CCC */
691 : : E_VOIDmode, /* CCO */
692 : : E_VOIDmode, /* CCP */
693 : : E_VOIDmode, /* CCS */
694 : : E_VOIDmode, /* CCZ */
695 : : E_VOIDmode, /* CCFP */
696 : : E_QImode, /* BI */
697 : : E_HImode, /* QI */
698 : : E_SImode, /* HI */
699 : : E_DImode, /* SI */
700 : : E_TImode, /* DI */
701 : : E_OImode, /* TI */
702 : : E_XImode, /* OI */
703 : : E_VOIDmode, /* XI */
704 : : E_HImode, /* P2QI */
705 : : E_SImode, /* P2HI */
706 : : E_OImode, /* POI */
707 : : E_HQmode, /* QQ */
708 : : E_SQmode, /* HQ */
709 : : E_DQmode, /* SQ */
710 : : E_TQmode, /* DQ */
711 : : E_VOIDmode, /* TQ */
712 : : E_UHQmode, /* UQQ */
713 : : E_USQmode, /* UHQ */
714 : : E_UDQmode, /* USQ */
715 : : E_UTQmode, /* UDQ */
716 : : E_VOIDmode, /* UTQ */
717 : : E_SAmode, /* HA */
718 : : E_DAmode, /* SA */
719 : : E_TAmode, /* DA */
720 : : E_VOIDmode, /* TA */
721 : : E_USAmode, /* UHA */
722 : : E_UDAmode, /* USA */
723 : : E_UTAmode, /* UDA */
724 : : E_VOIDmode, /* UTA */
725 : : E_BFmode, /* HF */
726 : : E_SFmode, /* BF */
727 : : E_DFmode, /* SF */
728 : : E_XFmode, /* DF */
729 : : E_TFmode, /* XF */
730 : : E_VOIDmode, /* TF */
731 : : E_DDmode, /* SD */
732 : : E_TDmode, /* DD */
733 : : E_VOIDmode, /* TD */
734 : : E_CP2QImode, /* CQI */
735 : : E_CHImode, /* CP2QI */
736 : : E_CP2HImode, /* CHI */
737 : : E_CSImode, /* CP2HI */
738 : : E_CDImode, /* CSI */
739 : : E_CTImode, /* CDI */
740 : : E_CPOImode, /* CTI */
741 : : E_COImode, /* CPOI */
742 : : E_CXImode, /* COI */
743 : : E_VOIDmode, /* CXI */
744 : : E_HCmode, /* BC */
745 : : E_SCmode, /* HC */
746 : : E_DCmode, /* SC */
747 : : E_XCmode, /* DC */
748 : : E_TCmode, /* XC */
749 : : E_VOIDmode, /* TC */
750 : : E_V4QImode, /* V2QI */
751 : : E_V2HImode, /* V4QI */
752 : : E_V1SImode, /* V2HI */
753 : : E_V8QImode, /* V1SI */
754 : : E_V4HImode, /* V8QI */
755 : : E_V2SImode, /* V4HI */
756 : : E_V1DImode, /* V2SI */
757 : : E_V12QImode, /* V1DI */
758 : : E_V6HImode, /* V12QI */
759 : : E_V14QImode, /* V6HI */
760 : : E_V16QImode, /* V14QI */
761 : : E_V8HImode, /* V16QI */
762 : : E_V4SImode, /* V8HI */
763 : : E_V2DImode, /* V4SI */
764 : : E_V1TImode, /* V2DI */
765 : : E_V32QImode, /* V1TI */
766 : : E_V16HImode, /* V32QI */
767 : : E_V8SImode, /* V16HI */
768 : : E_V4DImode, /* V8SI */
769 : : E_V2TImode, /* V4DI */
770 : : E_V64QImode, /* V2TI */
771 : : E_V32HImode, /* V64QI */
772 : : E_V16SImode, /* V32HI */
773 : : E_V8DImode, /* V16SI */
774 : : E_V4TImode, /* V8DI */
775 : : E_V128QImode, /* V4TI */
776 : : E_V64HImode, /* V128QI */
777 : : E_V32SImode, /* V64HI */
778 : : E_V16DImode, /* V32SI */
779 : : E_V8TImode, /* V16DI */
780 : : E_V64SImode, /* V8TI */
781 : : E_VOIDmode, /* V64SI */
782 : : E_V2BFmode, /* V2HF */
783 : : E_V4BFmode, /* V2BF */
784 : : E_V4HFmode, /* V4BF */
785 : : E_V2SFmode, /* V4HF */
786 : : E_V6HFmode, /* V2SF */
787 : : E_V8BFmode, /* V6HF */
788 : : E_V8HFmode, /* V8BF */
789 : : E_V4SFmode, /* V8HF */
790 : : E_V2DFmode, /* V4SF */
791 : : E_V16BFmode, /* V2DF */
792 : : E_V16HFmode, /* V16BF */
793 : : E_V8SFmode, /* V16HF */
794 : : E_V4DFmode, /* V8SF */
795 : : E_V2TFmode, /* V4DF */
796 : : E_V32BFmode, /* V2TF */
797 : : E_V32HFmode, /* V32BF */
798 : : E_V16SFmode, /* V32HF */
799 : : E_V8DFmode, /* V16SF */
800 : : E_V4TFmode, /* V8DF */
801 : : E_V64BFmode, /* V4TF */
802 : : E_V64HFmode, /* V64BF */
803 : : E_V32SFmode, /* V64HF */
804 : : E_V16DFmode, /* V32SF */
805 : : E_V8TFmode, /* V16DF */
806 : : E_V128BFmode, /* V8TF */
807 : : E_V128HFmode, /* V128BF */
808 : : E_V64SFmode, /* V128HF */
809 : : E_V32DFmode, /* V64SF */
810 : : E_V16TFmode, /* V32DF */
811 : : E_VOIDmode, /* V16TF */
812 : : };
813 : :
814 : : const unsigned short mode_wider[NUM_MACHINE_MODES] =
815 : : {
816 : : E_VOIDmode, /* VOID */
817 : : E_VOIDmode, /* BLK */
818 : : E_VOIDmode, /* CC */
819 : : E_VOIDmode, /* CCGC */
820 : : E_VOIDmode, /* CCGOC */
821 : : E_VOIDmode, /* CCNO */
822 : : E_VOIDmode, /* CCGZ */
823 : : E_VOIDmode, /* CCA */
824 : : E_VOIDmode, /* CCC */
825 : : E_VOIDmode, /* CCO */
826 : : E_VOIDmode, /* CCP */
827 : : E_VOIDmode, /* CCS */
828 : : E_VOIDmode, /* CCZ */
829 : : E_VOIDmode, /* CCFP */
830 : : E_QImode, /* BI */
831 : : E_HImode, /* QI */
832 : : E_SImode, /* HI */
833 : : E_DImode, /* SI */
834 : : E_TImode, /* DI */
835 : : E_OImode, /* TI */
836 : : E_XImode, /* OI */
837 : : E_VOIDmode, /* XI */
838 : : E_HImode, /* P2QI */
839 : : E_SImode, /* P2HI */
840 : : E_OImode, /* POI */
841 : : E_HQmode, /* QQ */
842 : : E_SQmode, /* HQ */
843 : : E_DQmode, /* SQ */
844 : : E_TQmode, /* DQ */
845 : : E_VOIDmode, /* TQ */
846 : : E_UHQmode, /* UQQ */
847 : : E_USQmode, /* UHQ */
848 : : E_UDQmode, /* USQ */
849 : : E_UTQmode, /* UDQ */
850 : : E_VOIDmode, /* UTQ */
851 : : E_SAmode, /* HA */
852 : : E_DAmode, /* SA */
853 : : E_TAmode, /* DA */
854 : : E_VOIDmode, /* TA */
855 : : E_USAmode, /* UHA */
856 : : E_UDAmode, /* USA */
857 : : E_UTAmode, /* UDA */
858 : : E_VOIDmode, /* UTA */
859 : : E_SFmode, /* HF */
860 : : E_SFmode, /* BF */
861 : : E_DFmode, /* SF */
862 : : E_XFmode, /* DF */
863 : : E_TFmode, /* XF */
864 : : E_VOIDmode, /* TF */
865 : : E_DDmode, /* SD */
866 : : E_TDmode, /* DD */
867 : : E_VOIDmode, /* TD */
868 : : E_VOIDmode, /* CQI */
869 : : E_VOIDmode, /* CP2QI */
870 : : E_VOIDmode, /* CHI */
871 : : E_VOIDmode, /* CP2HI */
872 : : E_VOIDmode, /* CSI */
873 : : E_VOIDmode, /* CDI */
874 : : E_VOIDmode, /* CTI */
875 : : E_VOIDmode, /* CPOI */
876 : : E_VOIDmode, /* COI */
877 : : E_VOIDmode, /* CXI */
878 : : E_SCmode, /* BC */
879 : : E_SCmode, /* HC */
880 : : E_DCmode, /* SC */
881 : : E_XCmode, /* DC */
882 : : E_TCmode, /* XC */
883 : : E_VOIDmode, /* TC */
884 : : E_VOIDmode, /* V2QI */
885 : : E_VOIDmode, /* V4QI */
886 : : E_VOIDmode, /* V2HI */
887 : : E_VOIDmode, /* V1SI */
888 : : E_VOIDmode, /* V8QI */
889 : : E_VOIDmode, /* V4HI */
890 : : E_VOIDmode, /* V2SI */
891 : : E_VOIDmode, /* V1DI */
892 : : E_VOIDmode, /* V12QI */
893 : : E_VOIDmode, /* V6HI */
894 : : E_VOIDmode, /* V14QI */
895 : : E_VOIDmode, /* V16QI */
896 : : E_VOIDmode, /* V8HI */
897 : : E_VOIDmode, /* V4SI */
898 : : E_VOIDmode, /* V2DI */
899 : : E_VOIDmode, /* V1TI */
900 : : E_VOIDmode, /* V32QI */
901 : : E_VOIDmode, /* V16HI */
902 : : E_VOIDmode, /* V8SI */
903 : : E_VOIDmode, /* V4DI */
904 : : E_VOIDmode, /* V2TI */
905 : : E_VOIDmode, /* V64QI */
906 : : E_VOIDmode, /* V32HI */
907 : : E_VOIDmode, /* V16SI */
908 : : E_VOIDmode, /* V8DI */
909 : : E_VOIDmode, /* V4TI */
910 : : E_VOIDmode, /* V128QI */
911 : : E_VOIDmode, /* V64HI */
912 : : E_VOIDmode, /* V32SI */
913 : : E_VOIDmode, /* V16DI */
914 : : E_VOIDmode, /* V8TI */
915 : : E_VOIDmode, /* V64SI */
916 : : E_VOIDmode, /* V2HF */
917 : : E_VOIDmode, /* V2BF */
918 : : E_VOIDmode, /* V4BF */
919 : : E_VOIDmode, /* V4HF */
920 : : E_VOIDmode, /* V2SF */
921 : : E_VOIDmode, /* V6HF */
922 : : E_VOIDmode, /* V8BF */
923 : : E_VOIDmode, /* V8HF */
924 : : E_VOIDmode, /* V4SF */
925 : : E_VOIDmode, /* V2DF */
926 : : E_VOIDmode, /* V16BF */
927 : : E_VOIDmode, /* V16HF */
928 : : E_VOIDmode, /* V8SF */
929 : : E_VOIDmode, /* V4DF */
930 : : E_VOIDmode, /* V2TF */
931 : : E_VOIDmode, /* V32BF */
932 : : E_VOIDmode, /* V32HF */
933 : : E_VOIDmode, /* V16SF */
934 : : E_VOIDmode, /* V8DF */
935 : : E_VOIDmode, /* V4TF */
936 : : E_VOIDmode, /* V64BF */
937 : : E_VOIDmode, /* V64HF */
938 : : E_VOIDmode, /* V32SF */
939 : : E_VOIDmode, /* V16DF */
940 : : E_VOIDmode, /* V8TF */
941 : : E_VOIDmode, /* V128BF */
942 : : E_VOIDmode, /* V128HF */
943 : : E_VOIDmode, /* V64SF */
944 : : E_VOIDmode, /* V32DF */
945 : : E_VOIDmode, /* V16TF */
946 : : };
947 : :
948 : : const unsigned short mode_2xwider[NUM_MACHINE_MODES] =
949 : : {
950 : : E_VOIDmode, /* VOID */
951 : : E_BLKmode, /* BLK */
952 : : E_VOIDmode, /* CC */
953 : : E_VOIDmode, /* CCGC */
954 : : E_VOIDmode, /* CCGOC */
955 : : E_VOIDmode, /* CCNO */
956 : : E_VOIDmode, /* CCGZ */
957 : : E_VOIDmode, /* CCA */
958 : : E_VOIDmode, /* CCC */
959 : : E_VOIDmode, /* CCO */
960 : : E_VOIDmode, /* CCP */
961 : : E_VOIDmode, /* CCS */
962 : : E_VOIDmode, /* CCZ */
963 : : E_VOIDmode, /* CCFP */
964 : : E_VOIDmode, /* BI */
965 : : E_HImode, /* QI */
966 : : E_SImode, /* HI */
967 : : E_DImode, /* SI */
968 : : E_TImode, /* DI */
969 : : E_OImode, /* TI */
970 : : E_XImode, /* OI */
971 : : E_VOIDmode, /* XI */
972 : : E_VOIDmode, /* P2QI */
973 : : E_VOIDmode, /* P2HI */
974 : : E_VOIDmode, /* POI */
975 : : E_HQmode, /* QQ */
976 : : E_SQmode, /* HQ */
977 : : E_DQmode, /* SQ */
978 : : E_TQmode, /* DQ */
979 : : E_VOIDmode, /* TQ */
980 : : E_UHQmode, /* UQQ */
981 : : E_USQmode, /* UHQ */
982 : : E_UDQmode, /* USQ */
983 : : E_UTQmode, /* UDQ */
984 : : E_VOIDmode, /* UTQ */
985 : : E_SAmode, /* HA */
986 : : E_DAmode, /* SA */
987 : : E_TAmode, /* DA */
988 : : E_VOIDmode, /* TA */
989 : : E_USAmode, /* UHA */
990 : : E_UDAmode, /* USA */
991 : : E_UTAmode, /* UDA */
992 : : E_VOIDmode, /* UTA */
993 : : E_SFmode, /* HF */
994 : : E_SFmode, /* BF */
995 : : E_DFmode, /* SF */
996 : : E_TFmode, /* DF */
997 : : E_VOIDmode, /* XF */
998 : : E_VOIDmode, /* TF */
999 : : E_DDmode, /* SD */
1000 : : E_TDmode, /* DD */
1001 : : E_VOIDmode, /* TD */
1002 : : E_CHImode, /* CQI */
1003 : : E_CP2HImode, /* CP2QI */
1004 : : E_CSImode, /* CHI */
1005 : : E_VOIDmode, /* CP2HI */
1006 : : E_CDImode, /* CSI */
1007 : : E_CTImode, /* CDI */
1008 : : E_COImode, /* CTI */
1009 : : E_VOIDmode, /* CPOI */
1010 : : E_CXImode, /* COI */
1011 : : E_VOIDmode, /* CXI */
1012 : : E_SCmode, /* BC */
1013 : : E_SCmode, /* HC */
1014 : : E_DCmode, /* SC */
1015 : : E_TCmode, /* DC */
1016 : : E_VOIDmode, /* XC */
1017 : : E_VOIDmode, /* TC */
1018 : : E_V4QImode, /* V2QI */
1019 : : E_V8QImode, /* V4QI */
1020 : : E_V4HImode, /* V2HI */
1021 : : E_V2SImode, /* V1SI */
1022 : : E_V16QImode, /* V8QI */
1023 : : E_V8HImode, /* V4HI */
1024 : : E_V4SImode, /* V2SI */
1025 : : E_V2DImode, /* V1DI */
1026 : : E_VOIDmode, /* V12QI */
1027 : : E_VOIDmode, /* V6HI */
1028 : : E_VOIDmode, /* V14QI */
1029 : : E_V32QImode, /* V16QI */
1030 : : E_V16HImode, /* V8HI */
1031 : : E_V8SImode, /* V4SI */
1032 : : E_V4DImode, /* V2DI */
1033 : : E_V2TImode, /* V1TI */
1034 : : E_V64QImode, /* V32QI */
1035 : : E_V32HImode, /* V16HI */
1036 : : E_V16SImode, /* V8SI */
1037 : : E_V8DImode, /* V4DI */
1038 : : E_V4TImode, /* V2TI */
1039 : : E_V128QImode, /* V64QI */
1040 : : E_V64HImode, /* V32HI */
1041 : : E_V32SImode, /* V16SI */
1042 : : E_V16DImode, /* V8DI */
1043 : : E_V8TImode, /* V4TI */
1044 : : E_VOIDmode, /* V128QI */
1045 : : E_VOIDmode, /* V64HI */
1046 : : E_V64SImode, /* V32SI */
1047 : : E_VOIDmode, /* V16DI */
1048 : : E_VOIDmode, /* V8TI */
1049 : : E_VOIDmode, /* V64SI */
1050 : : E_V4HFmode, /* V2HF */
1051 : : E_V4BFmode, /* V2BF */
1052 : : E_V8BFmode, /* V4BF */
1053 : : E_V8HFmode, /* V4HF */
1054 : : E_V4SFmode, /* V2SF */
1055 : : E_VOIDmode, /* V6HF */
1056 : : E_V16BFmode, /* V8BF */
1057 : : E_V16HFmode, /* V8HF */
1058 : : E_V8SFmode, /* V4SF */
1059 : : E_V4DFmode, /* V2DF */
1060 : : E_V32BFmode, /* V16BF */
1061 : : E_V32HFmode, /* V16HF */
1062 : : E_V16SFmode, /* V8SF */
1063 : : E_V8DFmode, /* V4DF */
1064 : : E_V4TFmode, /* V2TF */
1065 : : E_V64BFmode, /* V32BF */
1066 : : E_V64HFmode, /* V32HF */
1067 : : E_V32SFmode, /* V16SF */
1068 : : E_V16DFmode, /* V8DF */
1069 : : E_V8TFmode, /* V4TF */
1070 : : E_V128BFmode, /* V64BF */
1071 : : E_V128HFmode, /* V64HF */
1072 : : E_V64SFmode, /* V32SF */
1073 : : E_V32DFmode, /* V16DF */
1074 : : E_V16TFmode, /* V8TF */
1075 : : E_VOIDmode, /* V128BF */
1076 : : E_VOIDmode, /* V128HF */
1077 : : E_VOIDmode, /* V64SF */
1078 : : E_VOIDmode, /* V32DF */
1079 : : E_VOIDmode, /* V16TF */
1080 : : };
1081 : :
1082 : : const unsigned short mode_complex[NUM_MACHINE_MODES] =
1083 : : {
1084 : : E_VOIDmode, /* VOID */
1085 : : E_VOIDmode, /* BLK */
1086 : : E_VOIDmode, /* CC */
1087 : : E_VOIDmode, /* CCGC */
1088 : : E_VOIDmode, /* CCGOC */
1089 : : E_VOIDmode, /* CCNO */
1090 : : E_VOIDmode, /* CCGZ */
1091 : : E_VOIDmode, /* CCA */
1092 : : E_VOIDmode, /* CCC */
1093 : : E_VOIDmode, /* CCO */
1094 : : E_VOIDmode, /* CCP */
1095 : : E_VOIDmode, /* CCS */
1096 : : E_VOIDmode, /* CCZ */
1097 : : E_VOIDmode, /* CCFP */
1098 : : E_VOIDmode, /* BI */
1099 : : E_CQImode, /* QI */
1100 : : E_CHImode, /* HI */
1101 : : E_CSImode, /* SI */
1102 : : E_CDImode, /* DI */
1103 : : E_CTImode, /* TI */
1104 : : E_COImode, /* OI */
1105 : : E_CXImode, /* XI */
1106 : : E_CP2QImode, /* P2QI */
1107 : : E_CP2HImode, /* P2HI */
1108 : : E_CPOImode, /* POI */
1109 : : E_VOIDmode, /* QQ */
1110 : : E_VOIDmode, /* HQ */
1111 : : E_VOIDmode, /* SQ */
1112 : : E_VOIDmode, /* DQ */
1113 : : E_VOIDmode, /* TQ */
1114 : : E_VOIDmode, /* UQQ */
1115 : : E_VOIDmode, /* UHQ */
1116 : : E_VOIDmode, /* USQ */
1117 : : E_VOIDmode, /* UDQ */
1118 : : E_VOIDmode, /* UTQ */
1119 : : E_VOIDmode, /* HA */
1120 : : E_VOIDmode, /* SA */
1121 : : E_VOIDmode, /* DA */
1122 : : E_VOIDmode, /* TA */
1123 : : E_VOIDmode, /* UHA */
1124 : : E_VOIDmode, /* USA */
1125 : : E_VOIDmode, /* UDA */
1126 : : E_VOIDmode, /* UTA */
1127 : : E_HCmode, /* HF */
1128 : : E_BCmode, /* BF */
1129 : : E_SCmode, /* SF */
1130 : : E_DCmode, /* DF */
1131 : : E_XCmode, /* XF */
1132 : : E_TCmode, /* TF */
1133 : : E_VOIDmode, /* SD */
1134 : : E_VOIDmode, /* DD */
1135 : : E_VOIDmode, /* TD */
1136 : : E_VOIDmode, /* CQI */
1137 : : E_VOIDmode, /* CP2QI */
1138 : : E_VOIDmode, /* CHI */
1139 : : E_VOIDmode, /* CP2HI */
1140 : : E_VOIDmode, /* CSI */
1141 : : E_VOIDmode, /* CDI */
1142 : : E_VOIDmode, /* CTI */
1143 : : E_VOIDmode, /* CPOI */
1144 : : E_VOIDmode, /* COI */
1145 : : E_VOIDmode, /* CXI */
1146 : : E_VOIDmode, /* BC */
1147 : : E_VOIDmode, /* HC */
1148 : : E_VOIDmode, /* SC */
1149 : : E_VOIDmode, /* DC */
1150 : : E_VOIDmode, /* XC */
1151 : : E_VOIDmode, /* TC */
1152 : : E_VOIDmode, /* V2QI */
1153 : : E_VOIDmode, /* V4QI */
1154 : : E_VOIDmode, /* V2HI */
1155 : : E_VOIDmode, /* V1SI */
1156 : : E_VOIDmode, /* V8QI */
1157 : : E_VOIDmode, /* V4HI */
1158 : : E_VOIDmode, /* V2SI */
1159 : : E_VOIDmode, /* V1DI */
1160 : : E_VOIDmode, /* V12QI */
1161 : : E_VOIDmode, /* V6HI */
1162 : : E_VOIDmode, /* V14QI */
1163 : : E_VOIDmode, /* V16QI */
1164 : : E_VOIDmode, /* V8HI */
1165 : : E_VOIDmode, /* V4SI */
1166 : : E_VOIDmode, /* V2DI */
1167 : : E_VOIDmode, /* V1TI */
1168 : : E_VOIDmode, /* V32QI */
1169 : : E_VOIDmode, /* V16HI */
1170 : : E_VOIDmode, /* V8SI */
1171 : : E_VOIDmode, /* V4DI */
1172 : : E_VOIDmode, /* V2TI */
1173 : : E_VOIDmode, /* V64QI */
1174 : : E_VOIDmode, /* V32HI */
1175 : : E_VOIDmode, /* V16SI */
1176 : : E_VOIDmode, /* V8DI */
1177 : : E_VOIDmode, /* V4TI */
1178 : : E_VOIDmode, /* V128QI */
1179 : : E_VOIDmode, /* V64HI */
1180 : : E_VOIDmode, /* V32SI */
1181 : : E_VOIDmode, /* V16DI */
1182 : : E_VOIDmode, /* V8TI */
1183 : : E_VOIDmode, /* V64SI */
1184 : : E_VOIDmode, /* V2HF */
1185 : : E_VOIDmode, /* V2BF */
1186 : : E_VOIDmode, /* V4BF */
1187 : : E_VOIDmode, /* V4HF */
1188 : : E_VOIDmode, /* V2SF */
1189 : : E_VOIDmode, /* V6HF */
1190 : : E_VOIDmode, /* V8BF */
1191 : : E_VOIDmode, /* V8HF */
1192 : : E_VOIDmode, /* V4SF */
1193 : : E_VOIDmode, /* V2DF */
1194 : : E_VOIDmode, /* V16BF */
1195 : : E_VOIDmode, /* V16HF */
1196 : : E_VOIDmode, /* V8SF */
1197 : : E_VOIDmode, /* V4DF */
1198 : : E_VOIDmode, /* V2TF */
1199 : : E_VOIDmode, /* V32BF */
1200 : : E_VOIDmode, /* V32HF */
1201 : : E_VOIDmode, /* V16SF */
1202 : : E_VOIDmode, /* V8DF */
1203 : : E_VOIDmode, /* V4TF */
1204 : : E_VOIDmode, /* V64BF */
1205 : : E_VOIDmode, /* V64HF */
1206 : : E_VOIDmode, /* V32SF */
1207 : : E_VOIDmode, /* V16DF */
1208 : : E_VOIDmode, /* V8TF */
1209 : : E_VOIDmode, /* V128BF */
1210 : : E_VOIDmode, /* V128HF */
1211 : : E_VOIDmode, /* V64SF */
1212 : : E_VOIDmode, /* V32DF */
1213 : : E_VOIDmode, /* V16TF */
1214 : : };
1215 : :
1216 : : const unsigned HOST_WIDE_INT mode_mask_array[NUM_MACHINE_MODES] =
1217 : : {
1218 : : #define MODE_MASK(m) \
1219 : : ((m) >= HOST_BITS_PER_WIDE_INT) \
1220 : : ? HOST_WIDE_INT_M1U \
1221 : : : (HOST_WIDE_INT_1U << (m)) - 1
1222 : :
1223 : : MODE_MASK (0), /* VOID */
1224 : : MODE_MASK (0), /* BLK */
1225 : : MODE_MASK (4*BITS_PER_UNIT), /* CC */
1226 : : MODE_MASK (4*BITS_PER_UNIT), /* CCGC */
1227 : : MODE_MASK (4*BITS_PER_UNIT), /* CCGOC */
1228 : : MODE_MASK (4*BITS_PER_UNIT), /* CCNO */
1229 : : MODE_MASK (4*BITS_PER_UNIT), /* CCGZ */
1230 : : MODE_MASK (4*BITS_PER_UNIT), /* CCA */
1231 : : MODE_MASK (4*BITS_PER_UNIT), /* CCC */
1232 : : MODE_MASK (4*BITS_PER_UNIT), /* CCO */
1233 : : MODE_MASK (4*BITS_PER_UNIT), /* CCP */
1234 : : MODE_MASK (4*BITS_PER_UNIT), /* CCS */
1235 : : MODE_MASK (4*BITS_PER_UNIT), /* CCZ */
1236 : : MODE_MASK (4*BITS_PER_UNIT), /* CCFP */
1237 : : MODE_MASK (1), /* BI */
1238 : : MODE_MASK (1*BITS_PER_UNIT), /* QI */
1239 : : MODE_MASK (2*BITS_PER_UNIT), /* HI */
1240 : : MODE_MASK (4*BITS_PER_UNIT), /* SI */
1241 : : MODE_MASK (8*BITS_PER_UNIT), /* DI */
1242 : : MODE_MASK (16*BITS_PER_UNIT), /* TI */
1243 : : MODE_MASK (32*BITS_PER_UNIT), /* OI */
1244 : : MODE_MASK (64*BITS_PER_UNIT), /* XI */
1245 : : MODE_MASK (16), /* P2QI */
1246 : : MODE_MASK (32), /* P2HI */
1247 : : MODE_MASK (160), /* POI */
1248 : : MODE_MASK (1*BITS_PER_UNIT), /* QQ */
1249 : : MODE_MASK (2*BITS_PER_UNIT), /* HQ */
1250 : : MODE_MASK (4*BITS_PER_UNIT), /* SQ */
1251 : : MODE_MASK (8*BITS_PER_UNIT), /* DQ */
1252 : : MODE_MASK (16*BITS_PER_UNIT), /* TQ */
1253 : : MODE_MASK (1*BITS_PER_UNIT), /* UQQ */
1254 : : MODE_MASK (2*BITS_PER_UNIT), /* UHQ */
1255 : : MODE_MASK (4*BITS_PER_UNIT), /* USQ */
1256 : : MODE_MASK (8*BITS_PER_UNIT), /* UDQ */
1257 : : MODE_MASK (16*BITS_PER_UNIT), /* UTQ */
1258 : : MODE_MASK (2*BITS_PER_UNIT), /* HA */
1259 : : MODE_MASK (4*BITS_PER_UNIT), /* SA */
1260 : : MODE_MASK (8*BITS_PER_UNIT), /* DA */
1261 : : MODE_MASK (16*BITS_PER_UNIT), /* TA */
1262 : : MODE_MASK (2*BITS_PER_UNIT), /* UHA */
1263 : : MODE_MASK (4*BITS_PER_UNIT), /* USA */
1264 : : MODE_MASK (8*BITS_PER_UNIT), /* UDA */
1265 : : MODE_MASK (16*BITS_PER_UNIT), /* UTA */
1266 : : MODE_MASK (2*BITS_PER_UNIT), /* HF */
1267 : : MODE_MASK (2*BITS_PER_UNIT), /* BF */
1268 : : MODE_MASK (4*BITS_PER_UNIT), /* SF */
1269 : : MODE_MASK (8*BITS_PER_UNIT), /* DF */
1270 : : MODE_MASK (80), /* XF */
1271 : : MODE_MASK (16*BITS_PER_UNIT), /* TF */
1272 : : MODE_MASK (4*BITS_PER_UNIT), /* SD */
1273 : : MODE_MASK (8*BITS_PER_UNIT), /* DD */
1274 : : MODE_MASK (16*BITS_PER_UNIT), /* TD */
1275 : : MODE_MASK (2*BITS_PER_UNIT), /* CQI */
1276 : : MODE_MASK (32), /* CP2QI */
1277 : : MODE_MASK (4*BITS_PER_UNIT), /* CHI */
1278 : : MODE_MASK (64), /* CP2HI */
1279 : : MODE_MASK (8*BITS_PER_UNIT), /* CSI */
1280 : : MODE_MASK (16*BITS_PER_UNIT), /* CDI */
1281 : : MODE_MASK (32*BITS_PER_UNIT), /* CTI */
1282 : : MODE_MASK (320), /* CPOI */
1283 : : MODE_MASK (64*BITS_PER_UNIT), /* COI */
1284 : : MODE_MASK (128*BITS_PER_UNIT), /* CXI */
1285 : : MODE_MASK (4*BITS_PER_UNIT), /* BC */
1286 : : MODE_MASK (4*BITS_PER_UNIT), /* HC */
1287 : : MODE_MASK (8*BITS_PER_UNIT), /* SC */
1288 : : MODE_MASK (16*BITS_PER_UNIT), /* DC */
1289 : : MODE_MASK (160), /* XC */
1290 : : MODE_MASK (32*BITS_PER_UNIT), /* TC */
1291 : : MODE_MASK (2*BITS_PER_UNIT), /* V2QI */
1292 : : MODE_MASK (4*BITS_PER_UNIT), /* V4QI */
1293 : : MODE_MASK (4*BITS_PER_UNIT), /* V2HI */
1294 : : MODE_MASK (4*BITS_PER_UNIT), /* V1SI */
1295 : : MODE_MASK (8*BITS_PER_UNIT), /* V8QI */
1296 : : MODE_MASK (8*BITS_PER_UNIT), /* V4HI */
1297 : : MODE_MASK (8*BITS_PER_UNIT), /* V2SI */
1298 : : MODE_MASK (8*BITS_PER_UNIT), /* V1DI */
1299 : : MODE_MASK (12*BITS_PER_UNIT), /* V12QI */
1300 : : MODE_MASK (12*BITS_PER_UNIT), /* V6HI */
1301 : : MODE_MASK (14*BITS_PER_UNIT), /* V14QI */
1302 : : MODE_MASK (16*BITS_PER_UNIT), /* V16QI */
1303 : : MODE_MASK (16*BITS_PER_UNIT), /* V8HI */
1304 : : MODE_MASK (16*BITS_PER_UNIT), /* V4SI */
1305 : : MODE_MASK (16*BITS_PER_UNIT), /* V2DI */
1306 : : MODE_MASK (16*BITS_PER_UNIT), /* V1TI */
1307 : : MODE_MASK (32*BITS_PER_UNIT), /* V32QI */
1308 : : MODE_MASK (32*BITS_PER_UNIT), /* V16HI */
1309 : : MODE_MASK (32*BITS_PER_UNIT), /* V8SI */
1310 : : MODE_MASK (32*BITS_PER_UNIT), /* V4DI */
1311 : : MODE_MASK (32*BITS_PER_UNIT), /* V2TI */
1312 : : MODE_MASK (64*BITS_PER_UNIT), /* V64QI */
1313 : : MODE_MASK (64*BITS_PER_UNIT), /* V32HI */
1314 : : MODE_MASK (64*BITS_PER_UNIT), /* V16SI */
1315 : : MODE_MASK (64*BITS_PER_UNIT), /* V8DI */
1316 : : MODE_MASK (64*BITS_PER_UNIT), /* V4TI */
1317 : : MODE_MASK (128*BITS_PER_UNIT), /* V128QI */
1318 : : MODE_MASK (128*BITS_PER_UNIT), /* V64HI */
1319 : : MODE_MASK (128*BITS_PER_UNIT), /* V32SI */
1320 : : MODE_MASK (128*BITS_PER_UNIT), /* V16DI */
1321 : : MODE_MASK (128*BITS_PER_UNIT), /* V8TI */
1322 : : MODE_MASK (256*BITS_PER_UNIT), /* V64SI */
1323 : : MODE_MASK (4*BITS_PER_UNIT), /* V2HF */
1324 : : MODE_MASK (4*BITS_PER_UNIT), /* V2BF */
1325 : : MODE_MASK (8*BITS_PER_UNIT), /* V4BF */
1326 : : MODE_MASK (8*BITS_PER_UNIT), /* V4HF */
1327 : : MODE_MASK (8*BITS_PER_UNIT), /* V2SF */
1328 : : MODE_MASK (12*BITS_PER_UNIT), /* V6HF */
1329 : : MODE_MASK (16*BITS_PER_UNIT), /* V8BF */
1330 : : MODE_MASK (16*BITS_PER_UNIT), /* V8HF */
1331 : : MODE_MASK (16*BITS_PER_UNIT), /* V4SF */
1332 : : MODE_MASK (16*BITS_PER_UNIT), /* V2DF */
1333 : : MODE_MASK (32*BITS_PER_UNIT), /* V16BF */
1334 : : MODE_MASK (32*BITS_PER_UNIT), /* V16HF */
1335 : : MODE_MASK (32*BITS_PER_UNIT), /* V8SF */
1336 : : MODE_MASK (32*BITS_PER_UNIT), /* V4DF */
1337 : : MODE_MASK (32*BITS_PER_UNIT), /* V2TF */
1338 : : MODE_MASK (64*BITS_PER_UNIT), /* V32BF */
1339 : : MODE_MASK (64*BITS_PER_UNIT), /* V32HF */
1340 : : MODE_MASK (64*BITS_PER_UNIT), /* V16SF */
1341 : : MODE_MASK (64*BITS_PER_UNIT), /* V8DF */
1342 : : MODE_MASK (64*BITS_PER_UNIT), /* V4TF */
1343 : : MODE_MASK (128*BITS_PER_UNIT), /* V64BF */
1344 : : MODE_MASK (128*BITS_PER_UNIT), /* V64HF */
1345 : : MODE_MASK (128*BITS_PER_UNIT), /* V32SF */
1346 : : MODE_MASK (128*BITS_PER_UNIT), /* V16DF */
1347 : : MODE_MASK (128*BITS_PER_UNIT), /* V8TF */
1348 : : MODE_MASK (256*BITS_PER_UNIT), /* V128BF */
1349 : : MODE_MASK (256*BITS_PER_UNIT), /* V128HF */
1350 : : MODE_MASK (256*BITS_PER_UNIT), /* V64SF */
1351 : : MODE_MASK (256*BITS_PER_UNIT), /* V32DF */
1352 : : MODE_MASK (256*BITS_PER_UNIT), /* V16TF */
1353 : : #undef MODE_MASK
1354 : : };
1355 : :
1356 : : const unsigned short mode_inner[NUM_MACHINE_MODES] =
1357 : : {
1358 : : E_VOIDmode, /* VOID */
1359 : : E_BLKmode, /* BLK */
1360 : : E_CCmode, /* CC */
1361 : : E_CCGCmode, /* CCGC */
1362 : : E_CCGOCmode, /* CCGOC */
1363 : : E_CCNOmode, /* CCNO */
1364 : : E_CCGZmode, /* CCGZ */
1365 : : E_CCAmode, /* CCA */
1366 : : E_CCCmode, /* CCC */
1367 : : E_CCOmode, /* CCO */
1368 : : E_CCPmode, /* CCP */
1369 : : E_CCSmode, /* CCS */
1370 : : E_CCZmode, /* CCZ */
1371 : : E_CCFPmode, /* CCFP */
1372 : : E_BImode, /* BI */
1373 : : E_QImode, /* QI */
1374 : : E_HImode, /* HI */
1375 : : E_SImode, /* SI */
1376 : : E_DImode, /* DI */
1377 : : E_TImode, /* TI */
1378 : : E_OImode, /* OI */
1379 : : E_XImode, /* XI */
1380 : : E_P2QImode, /* P2QI */
1381 : : E_P2HImode, /* P2HI */
1382 : : E_POImode, /* POI */
1383 : : E_QQmode, /* QQ */
1384 : : E_HQmode, /* HQ */
1385 : : E_SQmode, /* SQ */
1386 : : E_DQmode, /* DQ */
1387 : : E_TQmode, /* TQ */
1388 : : E_UQQmode, /* UQQ */
1389 : : E_UHQmode, /* UHQ */
1390 : : E_USQmode, /* USQ */
1391 : : E_UDQmode, /* UDQ */
1392 : : E_UTQmode, /* UTQ */
1393 : : E_HAmode, /* HA */
1394 : : E_SAmode, /* SA */
1395 : : E_DAmode, /* DA */
1396 : : E_TAmode, /* TA */
1397 : : E_UHAmode, /* UHA */
1398 : : E_USAmode, /* USA */
1399 : : E_UDAmode, /* UDA */
1400 : : E_UTAmode, /* UTA */
1401 : : E_HFmode, /* HF */
1402 : : E_BFmode, /* BF */
1403 : : E_SFmode, /* SF */
1404 : : E_DFmode, /* DF */
1405 : : E_XFmode, /* XF */
1406 : : E_TFmode, /* TF */
1407 : : E_SDmode, /* SD */
1408 : : E_DDmode, /* DD */
1409 : : E_TDmode, /* TD */
1410 : : E_QImode, /* CQI */
1411 : : E_P2QImode, /* CP2QI */
1412 : : E_HImode, /* CHI */
1413 : : E_P2HImode, /* CP2HI */
1414 : : E_SImode, /* CSI */
1415 : : E_DImode, /* CDI */
1416 : : E_TImode, /* CTI */
1417 : : E_POImode, /* CPOI */
1418 : : E_OImode, /* COI */
1419 : : E_XImode, /* CXI */
1420 : : E_BFmode, /* BC */
1421 : : E_HFmode, /* HC */
1422 : : E_SFmode, /* SC */
1423 : : E_DFmode, /* DC */
1424 : : E_XFmode, /* XC */
1425 : : E_TFmode, /* TC */
1426 : : E_QImode, /* V2QI */
1427 : : E_QImode, /* V4QI */
1428 : : E_HImode, /* V2HI */
1429 : : E_SImode, /* V1SI */
1430 : : E_QImode, /* V8QI */
1431 : : E_HImode, /* V4HI */
1432 : : E_SImode, /* V2SI */
1433 : : E_DImode, /* V1DI */
1434 : : E_QImode, /* V12QI */
1435 : : E_HImode, /* V6HI */
1436 : : E_QImode, /* V14QI */
1437 : : E_QImode, /* V16QI */
1438 : : E_HImode, /* V8HI */
1439 : : E_SImode, /* V4SI */
1440 : : E_DImode, /* V2DI */
1441 : : E_TImode, /* V1TI */
1442 : : E_QImode, /* V32QI */
1443 : : E_HImode, /* V16HI */
1444 : : E_SImode, /* V8SI */
1445 : : E_DImode, /* V4DI */
1446 : : E_TImode, /* V2TI */
1447 : : E_QImode, /* V64QI */
1448 : : E_HImode, /* V32HI */
1449 : : E_SImode, /* V16SI */
1450 : : E_DImode, /* V8DI */
1451 : : E_TImode, /* V4TI */
1452 : : E_QImode, /* V128QI */
1453 : : E_HImode, /* V64HI */
1454 : : E_SImode, /* V32SI */
1455 : : E_DImode, /* V16DI */
1456 : : E_TImode, /* V8TI */
1457 : : E_SImode, /* V64SI */
1458 : : E_HFmode, /* V2HF */
1459 : : E_BFmode, /* V2BF */
1460 : : E_BFmode, /* V4BF */
1461 : : E_HFmode, /* V4HF */
1462 : : E_SFmode, /* V2SF */
1463 : : E_HFmode, /* V6HF */
1464 : : E_BFmode, /* V8BF */
1465 : : E_HFmode, /* V8HF */
1466 : : E_SFmode, /* V4SF */
1467 : : E_DFmode, /* V2DF */
1468 : : E_BFmode, /* V16BF */
1469 : : E_HFmode, /* V16HF */
1470 : : E_SFmode, /* V8SF */
1471 : : E_DFmode, /* V4DF */
1472 : : E_TFmode, /* V2TF */
1473 : : E_BFmode, /* V32BF */
1474 : : E_HFmode, /* V32HF */
1475 : : E_SFmode, /* V16SF */
1476 : : E_DFmode, /* V8DF */
1477 : : E_TFmode, /* V4TF */
1478 : : E_BFmode, /* V64BF */
1479 : : E_HFmode, /* V64HF */
1480 : : E_SFmode, /* V32SF */
1481 : : E_DFmode, /* V16DF */
1482 : : E_TFmode, /* V8TF */
1483 : : E_BFmode, /* V128BF */
1484 : : E_HFmode, /* V128HF */
1485 : : E_SFmode, /* V64SF */
1486 : : E_DFmode, /* V32DF */
1487 : : E_TFmode, /* V16TF */
1488 : : };
1489 : :
1490 : : unsigned char mode_unit_size[NUM_MACHINE_MODES] =
1491 : : {
1492 : : 0, /* VOID */
1493 : : 0, /* BLK */
1494 : : 4, /* CC */
1495 : : 4, /* CCGC */
1496 : : 4, /* CCGOC */
1497 : : 4, /* CCNO */
1498 : : 4, /* CCGZ */
1499 : : 4, /* CCA */
1500 : : 4, /* CCC */
1501 : : 4, /* CCO */
1502 : : 4, /* CCP */
1503 : : 4, /* CCS */
1504 : : 4, /* CCZ */
1505 : : 4, /* CCFP */
1506 : : 1, /* BI */
1507 : : 1, /* QI */
1508 : : 2, /* HI */
1509 : : 4, /* SI */
1510 : : 8, /* DI */
1511 : : 16, /* TI */
1512 : : 32, /* OI */
1513 : : 64, /* XI */
1514 : : 2, /* P2QI */
1515 : : 4, /* P2HI */
1516 : : 32, /* POI */
1517 : : 1, /* QQ */
1518 : : 2, /* HQ */
1519 : : 4, /* SQ */
1520 : : 8, /* DQ */
1521 : : 16, /* TQ */
1522 : : 1, /* UQQ */
1523 : : 2, /* UHQ */
1524 : : 4, /* USQ */
1525 : : 8, /* UDQ */
1526 : : 16, /* UTQ */
1527 : : 2, /* HA */
1528 : : 4, /* SA */
1529 : : 8, /* DA */
1530 : : 16, /* TA */
1531 : : 2, /* UHA */
1532 : : 4, /* USA */
1533 : : 8, /* UDA */
1534 : : 16, /* UTA */
1535 : : 2, /* HF */
1536 : : 2, /* BF */
1537 : : 4, /* SF */
1538 : : 8, /* DF */
1539 : : 12, /* XF */
1540 : : 16, /* TF */
1541 : : 4, /* SD */
1542 : : 8, /* DD */
1543 : : 16, /* TD */
1544 : : 1, /* CQI */
1545 : : 2, /* CP2QI */
1546 : : 2, /* CHI */
1547 : : 4, /* CP2HI */
1548 : : 4, /* CSI */
1549 : : 8, /* CDI */
1550 : : 16, /* CTI */
1551 : : 32, /* CPOI */
1552 : : 32, /* COI */
1553 : : 64, /* CXI */
1554 : : 2, /* BC */
1555 : : 2, /* HC */
1556 : : 4, /* SC */
1557 : : 8, /* DC */
1558 : : 12, /* XC */
1559 : : 16, /* TC */
1560 : : 1, /* V2QI */
1561 : : 1, /* V4QI */
1562 : : 2, /* V2HI */
1563 : : 4, /* V1SI */
1564 : : 1, /* V8QI */
1565 : : 2, /* V4HI */
1566 : : 4, /* V2SI */
1567 : : 8, /* V1DI */
1568 : : 1, /* V12QI */
1569 : : 2, /* V6HI */
1570 : : 1, /* V14QI */
1571 : : 1, /* V16QI */
1572 : : 2, /* V8HI */
1573 : : 4, /* V4SI */
1574 : : 8, /* V2DI */
1575 : : 16, /* V1TI */
1576 : : 1, /* V32QI */
1577 : : 2, /* V16HI */
1578 : : 4, /* V8SI */
1579 : : 8, /* V4DI */
1580 : : 16, /* V2TI */
1581 : : 1, /* V64QI */
1582 : : 2, /* V32HI */
1583 : : 4, /* V16SI */
1584 : : 8, /* V8DI */
1585 : : 16, /* V4TI */
1586 : : 1, /* V128QI */
1587 : : 2, /* V64HI */
1588 : : 4, /* V32SI */
1589 : : 8, /* V16DI */
1590 : : 16, /* V8TI */
1591 : : 4, /* V64SI */
1592 : : 2, /* V2HF */
1593 : : 2, /* V2BF */
1594 : : 2, /* V4BF */
1595 : : 2, /* V4HF */
1596 : : 4, /* V2SF */
1597 : : 2, /* V6HF */
1598 : : 2, /* V8BF */
1599 : : 2, /* V8HF */
1600 : : 4, /* V4SF */
1601 : : 8, /* V2DF */
1602 : : 2, /* V16BF */
1603 : : 2, /* V16HF */
1604 : : 4, /* V8SF */
1605 : : 8, /* V4DF */
1606 : : 16, /* V2TF */
1607 : : 2, /* V32BF */
1608 : : 2, /* V32HF */
1609 : : 4, /* V16SF */
1610 : : 8, /* V8DF */
1611 : : 16, /* V4TF */
1612 : : 2, /* V64BF */
1613 : : 2, /* V64HF */
1614 : : 4, /* V32SF */
1615 : : 8, /* V16DF */
1616 : : 16, /* V8TF */
1617 : : 2, /* V128BF */
1618 : : 2, /* V128HF */
1619 : : 4, /* V64SF */
1620 : : 8, /* V32DF */
1621 : : 16, /* V16TF */
1622 : : };
1623 : :
1624 : : const unsigned short mode_unit_precision[NUM_MACHINE_MODES] =
1625 : : {
1626 : : 0, /* VOID */
1627 : : 0, /* BLK */
1628 : : 4*BITS_PER_UNIT, /* CC */
1629 : : 4*BITS_PER_UNIT, /* CCGC */
1630 : : 4*BITS_PER_UNIT, /* CCGOC */
1631 : : 4*BITS_PER_UNIT, /* CCNO */
1632 : : 4*BITS_PER_UNIT, /* CCGZ */
1633 : : 4*BITS_PER_UNIT, /* CCA */
1634 : : 4*BITS_PER_UNIT, /* CCC */
1635 : : 4*BITS_PER_UNIT, /* CCO */
1636 : : 4*BITS_PER_UNIT, /* CCP */
1637 : : 4*BITS_PER_UNIT, /* CCS */
1638 : : 4*BITS_PER_UNIT, /* CCZ */
1639 : : 4*BITS_PER_UNIT, /* CCFP */
1640 : : 1, /* BI */
1641 : : 1*BITS_PER_UNIT, /* QI */
1642 : : 2*BITS_PER_UNIT, /* HI */
1643 : : 4*BITS_PER_UNIT, /* SI */
1644 : : 8*BITS_PER_UNIT, /* DI */
1645 : : 16*BITS_PER_UNIT, /* TI */
1646 : : 32*BITS_PER_UNIT, /* OI */
1647 : : 64*BITS_PER_UNIT, /* XI */
1648 : : 16, /* P2QI */
1649 : : 32, /* P2HI */
1650 : : 160, /* POI */
1651 : : 1*BITS_PER_UNIT, /* QQ */
1652 : : 2*BITS_PER_UNIT, /* HQ */
1653 : : 4*BITS_PER_UNIT, /* SQ */
1654 : : 8*BITS_PER_UNIT, /* DQ */
1655 : : 16*BITS_PER_UNIT, /* TQ */
1656 : : 1*BITS_PER_UNIT, /* UQQ */
1657 : : 2*BITS_PER_UNIT, /* UHQ */
1658 : : 4*BITS_PER_UNIT, /* USQ */
1659 : : 8*BITS_PER_UNIT, /* UDQ */
1660 : : 16*BITS_PER_UNIT, /* UTQ */
1661 : : 2*BITS_PER_UNIT, /* HA */
1662 : : 4*BITS_PER_UNIT, /* SA */
1663 : : 8*BITS_PER_UNIT, /* DA */
1664 : : 16*BITS_PER_UNIT, /* TA */
1665 : : 2*BITS_PER_UNIT, /* UHA */
1666 : : 4*BITS_PER_UNIT, /* USA */
1667 : : 8*BITS_PER_UNIT, /* UDA */
1668 : : 16*BITS_PER_UNIT, /* UTA */
1669 : : 2*BITS_PER_UNIT, /* HF */
1670 : : 2*BITS_PER_UNIT, /* BF */
1671 : : 4*BITS_PER_UNIT, /* SF */
1672 : : 8*BITS_PER_UNIT, /* DF */
1673 : : 80, /* XF */
1674 : : 16*BITS_PER_UNIT, /* TF */
1675 : : 4*BITS_PER_UNIT, /* SD */
1676 : : 8*BITS_PER_UNIT, /* DD */
1677 : : 16*BITS_PER_UNIT, /* TD */
1678 : : 1*BITS_PER_UNIT, /* CQI */
1679 : : 16, /* CP2QI */
1680 : : 2*BITS_PER_UNIT, /* CHI */
1681 : : 32, /* CP2HI */
1682 : : 4*BITS_PER_UNIT, /* CSI */
1683 : : 8*BITS_PER_UNIT, /* CDI */
1684 : : 16*BITS_PER_UNIT, /* CTI */
1685 : : 160, /* CPOI */
1686 : : 32*BITS_PER_UNIT, /* COI */
1687 : : 64*BITS_PER_UNIT, /* CXI */
1688 : : 2*BITS_PER_UNIT, /* BC */
1689 : : 2*BITS_PER_UNIT, /* HC */
1690 : : 4*BITS_PER_UNIT, /* SC */
1691 : : 8*BITS_PER_UNIT, /* DC */
1692 : : 80, /* XC */
1693 : : 16*BITS_PER_UNIT, /* TC */
1694 : : 1*BITS_PER_UNIT, /* V2QI */
1695 : : 1*BITS_PER_UNIT, /* V4QI */
1696 : : 2*BITS_PER_UNIT, /* V2HI */
1697 : : 4*BITS_PER_UNIT, /* V1SI */
1698 : : 1*BITS_PER_UNIT, /* V8QI */
1699 : : 2*BITS_PER_UNIT, /* V4HI */
1700 : : 4*BITS_PER_UNIT, /* V2SI */
1701 : : 8*BITS_PER_UNIT, /* V1DI */
1702 : : 1*BITS_PER_UNIT, /* V12QI */
1703 : : 2*BITS_PER_UNIT, /* V6HI */
1704 : : 1*BITS_PER_UNIT, /* V14QI */
1705 : : 1*BITS_PER_UNIT, /* V16QI */
1706 : : 2*BITS_PER_UNIT, /* V8HI */
1707 : : 4*BITS_PER_UNIT, /* V4SI */
1708 : : 8*BITS_PER_UNIT, /* V2DI */
1709 : : 16*BITS_PER_UNIT, /* V1TI */
1710 : : 1*BITS_PER_UNIT, /* V32QI */
1711 : : 2*BITS_PER_UNIT, /* V16HI */
1712 : : 4*BITS_PER_UNIT, /* V8SI */
1713 : : 8*BITS_PER_UNIT, /* V4DI */
1714 : : 16*BITS_PER_UNIT, /* V2TI */
1715 : : 1*BITS_PER_UNIT, /* V64QI */
1716 : : 2*BITS_PER_UNIT, /* V32HI */
1717 : : 4*BITS_PER_UNIT, /* V16SI */
1718 : : 8*BITS_PER_UNIT, /* V8DI */
1719 : : 16*BITS_PER_UNIT, /* V4TI */
1720 : : 1*BITS_PER_UNIT, /* V128QI */
1721 : : 2*BITS_PER_UNIT, /* V64HI */
1722 : : 4*BITS_PER_UNIT, /* V32SI */
1723 : : 8*BITS_PER_UNIT, /* V16DI */
1724 : : 16*BITS_PER_UNIT, /* V8TI */
1725 : : 4*BITS_PER_UNIT, /* V64SI */
1726 : : 2*BITS_PER_UNIT, /* V2HF */
1727 : : 2*BITS_PER_UNIT, /* V2BF */
1728 : : 2*BITS_PER_UNIT, /* V4BF */
1729 : : 2*BITS_PER_UNIT, /* V4HF */
1730 : : 4*BITS_PER_UNIT, /* V2SF */
1731 : : 2*BITS_PER_UNIT, /* V6HF */
1732 : : 2*BITS_PER_UNIT, /* V8BF */
1733 : : 2*BITS_PER_UNIT, /* V8HF */
1734 : : 4*BITS_PER_UNIT, /* V4SF */
1735 : : 8*BITS_PER_UNIT, /* V2DF */
1736 : : 2*BITS_PER_UNIT, /* V16BF */
1737 : : 2*BITS_PER_UNIT, /* V16HF */
1738 : : 4*BITS_PER_UNIT, /* V8SF */
1739 : : 8*BITS_PER_UNIT, /* V4DF */
1740 : : 16*BITS_PER_UNIT, /* V2TF */
1741 : : 2*BITS_PER_UNIT, /* V32BF */
1742 : : 2*BITS_PER_UNIT, /* V32HF */
1743 : : 4*BITS_PER_UNIT, /* V16SF */
1744 : : 8*BITS_PER_UNIT, /* V8DF */
1745 : : 16*BITS_PER_UNIT, /* V4TF */
1746 : : 2*BITS_PER_UNIT, /* V64BF */
1747 : : 2*BITS_PER_UNIT, /* V64HF */
1748 : : 4*BITS_PER_UNIT, /* V32SF */
1749 : : 8*BITS_PER_UNIT, /* V16DF */
1750 : : 16*BITS_PER_UNIT, /* V8TF */
1751 : : 2*BITS_PER_UNIT, /* V128BF */
1752 : : 2*BITS_PER_UNIT, /* V128HF */
1753 : : 4*BITS_PER_UNIT, /* V64SF */
1754 : : 8*BITS_PER_UNIT, /* V32DF */
1755 : : 16*BITS_PER_UNIT, /* V16TF */
1756 : : };
1757 : :
1758 : : unsigned short mode_base_align[NUM_MACHINE_MODES] =
1759 : : {
1760 : : 0, /* VOID */
1761 : : 0, /* BLK */
1762 : : 4, /* CC */
1763 : : 4, /* CCGC */
1764 : : 4, /* CCGOC */
1765 : : 4, /* CCNO */
1766 : : 4, /* CCGZ */
1767 : : 4, /* CCA */
1768 : : 4, /* CCC */
1769 : : 4, /* CCO */
1770 : : 4, /* CCP */
1771 : : 4, /* CCS */
1772 : : 4, /* CCZ */
1773 : : 4, /* CCFP */
1774 : : 1, /* BI */
1775 : : 1, /* QI */
1776 : : 2, /* HI */
1777 : : 4, /* SI */
1778 : : 8, /* DI */
1779 : : 16, /* TI */
1780 : : 32, /* OI */
1781 : : 64, /* XI */
1782 : : 2, /* P2QI */
1783 : : 4, /* P2HI */
1784 : : 32, /* POI */
1785 : : 1, /* QQ */
1786 : : 2, /* HQ */
1787 : : 4, /* SQ */
1788 : : 8, /* DQ */
1789 : : 16, /* TQ */
1790 : : 1, /* UQQ */
1791 : : 2, /* UHQ */
1792 : : 4, /* USQ */
1793 : : 8, /* UDQ */
1794 : : 16, /* UTQ */
1795 : : 2, /* HA */
1796 : : 4, /* SA */
1797 : : 8, /* DA */
1798 : : 16, /* TA */
1799 : : 2, /* UHA */
1800 : : 4, /* USA */
1801 : : 8, /* UDA */
1802 : : 16, /* UTA */
1803 : : 2, /* HF */
1804 : : 2, /* BF */
1805 : : 4, /* SF */
1806 : : 8, /* DF */
1807 : : 4, /* XF */
1808 : : 16, /* TF */
1809 : : 4, /* SD */
1810 : : 8, /* DD */
1811 : : 16, /* TD */
1812 : : 1, /* CQI */
1813 : : 2, /* CP2QI */
1814 : : 2, /* CHI */
1815 : : 4, /* CP2HI */
1816 : : 4, /* CSI */
1817 : : 8, /* CDI */
1818 : : 16, /* CTI */
1819 : : 32, /* CPOI */
1820 : : 32, /* COI */
1821 : : 64, /* CXI */
1822 : : 2, /* BC */
1823 : : 2, /* HC */
1824 : : 4, /* SC */
1825 : : 8, /* DC */
1826 : : 4, /* XC */
1827 : : 16, /* TC */
1828 : : 2, /* V2QI */
1829 : : 4, /* V4QI */
1830 : : 4, /* V2HI */
1831 : : 4, /* V1SI */
1832 : : 8, /* V8QI */
1833 : : 8, /* V4HI */
1834 : : 8, /* V2SI */
1835 : : 8, /* V1DI */
1836 : : 4, /* V12QI */
1837 : : 4, /* V6HI */
1838 : : 2, /* V14QI */
1839 : : 16, /* V16QI */
1840 : : 16, /* V8HI */
1841 : : 16, /* V4SI */
1842 : : 16, /* V2DI */
1843 : : 16, /* V1TI */
1844 : : 32, /* V32QI */
1845 : : 32, /* V16HI */
1846 : : 32, /* V8SI */
1847 : : 32, /* V4DI */
1848 : : 32, /* V2TI */
1849 : : 64, /* V64QI */
1850 : : 64, /* V32HI */
1851 : : 64, /* V16SI */
1852 : : 64, /* V8DI */
1853 : : 64, /* V4TI */
1854 : : 128, /* V128QI */
1855 : : 128, /* V64HI */
1856 : : 128, /* V32SI */
1857 : : 128, /* V16DI */
1858 : : 128, /* V8TI */
1859 : : 256, /* V64SI */
1860 : : 4, /* V2HF */
1861 : : 4, /* V2BF */
1862 : : 8, /* V4BF */
1863 : : 8, /* V4HF */
1864 : : 8, /* V2SF */
1865 : : 4, /* V6HF */
1866 : : 16, /* V8BF */
1867 : : 16, /* V8HF */
1868 : : 16, /* V4SF */
1869 : : 16, /* V2DF */
1870 : : 32, /* V16BF */
1871 : : 32, /* V16HF */
1872 : : 32, /* V8SF */
1873 : : 32, /* V4DF */
1874 : : 32, /* V2TF */
1875 : : 64, /* V32BF */
1876 : : 64, /* V32HF */
1877 : : 64, /* V16SF */
1878 : : 64, /* V8DF */
1879 : : 64, /* V4TF */
1880 : : 128, /* V64BF */
1881 : : 128, /* V64HF */
1882 : : 128, /* V32SF */
1883 : : 128, /* V16DF */
1884 : : 128, /* V8TF */
1885 : : 256, /* V128BF */
1886 : : 256, /* V128HF */
1887 : : 256, /* V64SF */
1888 : : 256, /* V32DF */
1889 : : 256, /* V16TF */
1890 : : };
1891 : :
1892 : : const unsigned short class_narrowest_mode[MAX_MODE_CLASS] =
1893 : : {
1894 : : MIN_MODE_RANDOM, /* VOID */
1895 : : MIN_MODE_CC, /* CC */
1896 : : MIN_MODE_INT, /* QI */
1897 : : MIN_MODE_PARTIAL_INT, /* P2QI */
1898 : : MIN_MODE_FRACT, /* QQ */
1899 : : MIN_MODE_UFRACT, /* UQQ */
1900 : : MIN_MODE_ACCUM, /* HA */
1901 : : MIN_MODE_UACCUM, /* UHA */
1902 : : MIN_MODE_FLOAT, /* HF */
1903 : : MIN_MODE_DECIMAL_FLOAT, /* SD */
1904 : : MIN_MODE_COMPLEX_INT, /* CQI */
1905 : : MIN_MODE_COMPLEX_FLOAT, /* BC */
1906 : : MIN_MODE_VECTOR_BOOL, /* VOID */
1907 : : MIN_MODE_VECTOR_INT, /* V2QI */
1908 : : MIN_MODE_VECTOR_FRACT, /* VOID */
1909 : : MIN_MODE_VECTOR_UFRACT, /* VOID */
1910 : : MIN_MODE_VECTOR_ACCUM, /* VOID */
1911 : : MIN_MODE_VECTOR_UACCUM, /* VOID */
1912 : : MIN_MODE_VECTOR_FLOAT, /* V2HF */
1913 : : MIN_MODE_OPAQUE, /* VOID */
1914 : : };
1915 : :
1916 : : const struct real_format *
1917 : : real_format_for_mode[MAX_MODE_FLOAT - MIN_MODE_FLOAT + 1 + MAX_MODE_DECIMAL_FLOAT - MIN_MODE_DECIMAL_FLOAT + 1] =
1918 : : {
1919 : : &ieee_half_format, /* HF */
1920 : : 0, /* BF */
1921 : : &ieee_single_format, /* SF */
1922 : : &ieee_double_format, /* DF */
1923 : : &ieee_extended_intel_96_format, /* XF */
1924 : : &ieee_quad_format, /* TF */
1925 : : &decimal_single_format, /* SD */
1926 : : &decimal_double_format, /* DD */
1927 : : &decimal_quad_format, /* TD */
1928 : : };
1929 : :
1930 : : void
1931 : 279113 : init_adjust_machine_modes (void)
1932 : : {
1933 : 279113 : poly_uint16 ps ATTRIBUTE_UNUSED;
1934 : 279113 : size_t s ATTRIBUTE_UNUSED;
1935 : :
1936 : : /* config/i386/i386-modes.def:37 */
1937 : 286108 : ps = s = TARGET_128BIT_LONG_DOUBLE ? 16 : 12;
1938 : 279113 : mode_unit_size[E_XFmode] = s;
1939 : 279113 : mode_size[E_XFmode] = ps;
1940 : 279113 : mode_base_align[E_XFmode] = known_alignment (ps);
1941 : 279113 : mode_size[E_XCmode] = 2*s;
1942 : 279113 : mode_unit_size[E_XCmode] = s;
1943 : 279113 : mode_base_align[E_XCmode] = s & (~s + 1);
1944 : :
1945 : : /* config/i386/i386-modes.def:38 */
1946 : 279113 : s = TARGET_128BIT_LONG_DOUBLE ? 16 : 4;
1947 : 279113 : mode_base_align[E_XFmode] = s;
1948 : 279113 : mode_base_align[E_XCmode] = s;
1949 : :
1950 : : /* config/i386/i386-modes.def:32 */
1951 : 279113 : REAL_MODE_FORMAT (E_XFmode) = (TARGET_128BIT_LONG_DOUBLE ? &ieee_extended_intel_128_format : TARGET_96_ROUND_53_LONG_DOUBLE ? &ieee_extended_intel_96_round_53_format : &ieee_extended_intel_96_format);
1952 : :
1953 : : /* config/i386/i386-modes.def:28 */
1954 : 279113 : REAL_MODE_FORMAT (E_BFmode) = &arm_bfloat_half_format;
1955 : :
1956 : 279113 : gcc_assert (maybe_ne (mode_size[E_VOIDmode], -1));
1957 : :
1958 : 279113 : gcc_assert (maybe_ne (mode_size[E_BLKmode], -1));
1959 : :
1960 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCmode], -1));
1961 : :
1962 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCGCmode], -1));
1963 : :
1964 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCGOCmode], -1));
1965 : :
1966 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCNOmode], -1));
1967 : :
1968 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCGZmode], -1));
1969 : :
1970 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCAmode], -1));
1971 : :
1972 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCCmode], -1));
1973 : :
1974 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCOmode], -1));
1975 : :
1976 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCPmode], -1));
1977 : :
1978 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCSmode], -1));
1979 : :
1980 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCZmode], -1));
1981 : :
1982 : 279113 : gcc_assert (maybe_ne (mode_size[E_CCFPmode], -1));
1983 : :
1984 : 279113 : gcc_assert (maybe_ne (mode_size[E_BImode], -1));
1985 : :
1986 : 279113 : gcc_assert (maybe_ne (mode_size[E_QImode], -1));
1987 : :
1988 : 279113 : gcc_assert (maybe_ne (mode_size[E_HImode], -1));
1989 : :
1990 : 279113 : gcc_assert (maybe_ne (mode_size[E_SImode], -1));
1991 : :
1992 : 279113 : gcc_assert (maybe_ne (mode_size[E_DImode], -1));
1993 : :
1994 : 279113 : gcc_assert (maybe_ne (mode_size[E_TImode], -1));
1995 : :
1996 : 279113 : gcc_assert (maybe_ne (mode_size[E_OImode], -1));
1997 : :
1998 : 279113 : gcc_assert (maybe_ne (mode_size[E_XImode], -1));
1999 : :
2000 : 279113 : gcc_assert (maybe_ne (mode_size[E_P2QImode], -1));
2001 : :
2002 : 279113 : gcc_assert (maybe_ne (mode_size[E_P2HImode], -1));
2003 : :
2004 : 279113 : gcc_assert (maybe_ne (mode_size[E_POImode], -1));
2005 : :
2006 : 279113 : gcc_assert (maybe_ne (mode_size[E_QQmode], -1));
2007 : :
2008 : 279113 : gcc_assert (maybe_ne (mode_size[E_HQmode], -1));
2009 : :
2010 : 279113 : gcc_assert (maybe_ne (mode_size[E_SQmode], -1));
2011 : :
2012 : 279113 : gcc_assert (maybe_ne (mode_size[E_DQmode], -1));
2013 : :
2014 : 279113 : gcc_assert (maybe_ne (mode_size[E_TQmode], -1));
2015 : :
2016 : 279113 : gcc_assert (maybe_ne (mode_size[E_UQQmode], -1));
2017 : :
2018 : 279113 : gcc_assert (maybe_ne (mode_size[E_UHQmode], -1));
2019 : :
2020 : 279113 : gcc_assert (maybe_ne (mode_size[E_USQmode], -1));
2021 : :
2022 : 279113 : gcc_assert (maybe_ne (mode_size[E_UDQmode], -1));
2023 : :
2024 : 279113 : gcc_assert (maybe_ne (mode_size[E_UTQmode], -1));
2025 : :
2026 : 279113 : gcc_assert (maybe_ne (mode_size[E_HAmode], -1));
2027 : :
2028 : 279113 : gcc_assert (maybe_ne (mode_size[E_SAmode], -1));
2029 : :
2030 : 279113 : gcc_assert (maybe_ne (mode_size[E_DAmode], -1));
2031 : :
2032 : 279113 : gcc_assert (maybe_ne (mode_size[E_TAmode], -1));
2033 : :
2034 : 279113 : gcc_assert (maybe_ne (mode_size[E_UHAmode], -1));
2035 : :
2036 : 279113 : gcc_assert (maybe_ne (mode_size[E_USAmode], -1));
2037 : :
2038 : 279113 : gcc_assert (maybe_ne (mode_size[E_UDAmode], -1));
2039 : :
2040 : 279113 : gcc_assert (maybe_ne (mode_size[E_UTAmode], -1));
2041 : :
2042 : 279113 : gcc_assert (maybe_ne (mode_size[E_HFmode], -1));
2043 : :
2044 : 279113 : gcc_assert (maybe_ne (mode_size[E_BFmode], -1));
2045 : :
2046 : 279113 : gcc_assert (maybe_ne (mode_size[E_SFmode], -1));
2047 : :
2048 : 279113 : gcc_assert (maybe_ne (mode_size[E_DFmode], -1));
2049 : :
2050 : 279113 : gcc_assert (maybe_ne (mode_size[E_XFmode], -1));
2051 : :
2052 : 279113 : gcc_assert (maybe_ne (mode_size[E_TFmode], -1));
2053 : :
2054 : 279113 : gcc_assert (maybe_ne (mode_size[E_SDmode], -1));
2055 : :
2056 : 279113 : gcc_assert (maybe_ne (mode_size[E_DDmode], -1));
2057 : :
2058 : 279113 : gcc_assert (maybe_ne (mode_size[E_TDmode], -1));
2059 : :
2060 : 279113 : gcc_assert (maybe_ne (mode_size[E_CQImode], -1));
2061 : :
2062 : 279113 : gcc_assert (maybe_ne (mode_size[E_CP2QImode], -1));
2063 : :
2064 : 279113 : gcc_assert (maybe_ne (mode_size[E_CHImode], -1));
2065 : :
2066 : 279113 : gcc_assert (maybe_ne (mode_size[E_CP2HImode], -1));
2067 : :
2068 : 279113 : gcc_assert (maybe_ne (mode_size[E_CSImode], -1));
2069 : :
2070 : 279113 : gcc_assert (maybe_ne (mode_size[E_CDImode], -1));
2071 : :
2072 : 279113 : gcc_assert (maybe_ne (mode_size[E_CTImode], -1));
2073 : :
2074 : 279113 : gcc_assert (maybe_ne (mode_size[E_CPOImode], -1));
2075 : :
2076 : 279113 : gcc_assert (maybe_ne (mode_size[E_COImode], -1));
2077 : :
2078 : 279113 : gcc_assert (maybe_ne (mode_size[E_CXImode], -1));
2079 : :
2080 : 279113 : gcc_assert (maybe_ne (mode_size[E_BCmode], -1));
2081 : :
2082 : 279113 : gcc_assert (maybe_ne (mode_size[E_HCmode], -1));
2083 : :
2084 : 279113 : gcc_assert (maybe_ne (mode_size[E_SCmode], -1));
2085 : :
2086 : 279113 : gcc_assert (maybe_ne (mode_size[E_DCmode], -1));
2087 : :
2088 : 279113 : gcc_assert (maybe_ne (mode_size[E_XCmode], -1));
2089 : :
2090 : 279113 : gcc_assert (maybe_ne (mode_size[E_TCmode], -1));
2091 : :
2092 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2QImode], -1));
2093 : :
2094 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4QImode], -1));
2095 : :
2096 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2HImode], -1));
2097 : :
2098 : 279113 : gcc_assert (maybe_ne (mode_size[E_V1SImode], -1));
2099 : :
2100 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8QImode], -1));
2101 : :
2102 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4HImode], -1));
2103 : :
2104 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2SImode], -1));
2105 : :
2106 : 279113 : gcc_assert (maybe_ne (mode_size[E_V1DImode], -1));
2107 : :
2108 : 279113 : gcc_assert (maybe_ne (mode_size[E_V12QImode], -1));
2109 : :
2110 : 279113 : gcc_assert (maybe_ne (mode_size[E_V6HImode], -1));
2111 : :
2112 : 279113 : gcc_assert (maybe_ne (mode_size[E_V14QImode], -1));
2113 : :
2114 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16QImode], -1));
2115 : :
2116 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8HImode], -1));
2117 : :
2118 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4SImode], -1));
2119 : :
2120 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2DImode], -1));
2121 : :
2122 : 279113 : gcc_assert (maybe_ne (mode_size[E_V1TImode], -1));
2123 : :
2124 : 279113 : gcc_assert (maybe_ne (mode_size[E_V32QImode], -1));
2125 : :
2126 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16HImode], -1));
2127 : :
2128 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8SImode], -1));
2129 : :
2130 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4DImode], -1));
2131 : :
2132 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2TImode], -1));
2133 : :
2134 : 279113 : gcc_assert (maybe_ne (mode_size[E_V64QImode], -1));
2135 : :
2136 : 279113 : gcc_assert (maybe_ne (mode_size[E_V32HImode], -1));
2137 : :
2138 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16SImode], -1));
2139 : :
2140 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8DImode], -1));
2141 : :
2142 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4TImode], -1));
2143 : :
2144 : 279113 : gcc_assert (maybe_ne (mode_size[E_V128QImode], -1));
2145 : :
2146 : 279113 : gcc_assert (maybe_ne (mode_size[E_V64HImode], -1));
2147 : :
2148 : 279113 : gcc_assert (maybe_ne (mode_size[E_V32SImode], -1));
2149 : :
2150 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16DImode], -1));
2151 : :
2152 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8TImode], -1));
2153 : :
2154 : 279113 : gcc_assert (maybe_ne (mode_size[E_V64SImode], -1));
2155 : :
2156 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2HFmode], -1));
2157 : :
2158 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2BFmode], -1));
2159 : :
2160 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4BFmode], -1));
2161 : :
2162 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4HFmode], -1));
2163 : :
2164 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2SFmode], -1));
2165 : :
2166 : 279113 : gcc_assert (maybe_ne (mode_size[E_V6HFmode], -1));
2167 : :
2168 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8BFmode], -1));
2169 : :
2170 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8HFmode], -1));
2171 : :
2172 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4SFmode], -1));
2173 : :
2174 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2DFmode], -1));
2175 : :
2176 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16BFmode], -1));
2177 : :
2178 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16HFmode], -1));
2179 : :
2180 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8SFmode], -1));
2181 : :
2182 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4DFmode], -1));
2183 : :
2184 : 279113 : gcc_assert (maybe_ne (mode_size[E_V2TFmode], -1));
2185 : :
2186 : 279113 : gcc_assert (maybe_ne (mode_size[E_V32BFmode], -1));
2187 : :
2188 : 279113 : gcc_assert (maybe_ne (mode_size[E_V32HFmode], -1));
2189 : :
2190 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16SFmode], -1));
2191 : :
2192 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8DFmode], -1));
2193 : :
2194 : 279113 : gcc_assert (maybe_ne (mode_size[E_V4TFmode], -1));
2195 : :
2196 : 279113 : gcc_assert (maybe_ne (mode_size[E_V64BFmode], -1));
2197 : :
2198 : 279113 : gcc_assert (maybe_ne (mode_size[E_V64HFmode], -1));
2199 : :
2200 : 279113 : gcc_assert (maybe_ne (mode_size[E_V32SFmode], -1));
2201 : :
2202 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16DFmode], -1));
2203 : :
2204 : 279113 : gcc_assert (maybe_ne (mode_size[E_V8TFmode], -1));
2205 : :
2206 : 279113 : gcc_assert (maybe_ne (mode_size[E_V128BFmode], -1));
2207 : :
2208 : 279113 : gcc_assert (maybe_ne (mode_size[E_V128HFmode], -1));
2209 : :
2210 : 279113 : gcc_assert (maybe_ne (mode_size[E_V64SFmode], -1));
2211 : :
2212 : 279113 : gcc_assert (maybe_ne (mode_size[E_V32DFmode], -1));
2213 : :
2214 : 279113 : gcc_assert (maybe_ne (mode_size[E_V16TFmode], -1));
2215 : 279113 : }
2216 : :
2217 : : const unsigned char mode_ibit[NUM_MACHINE_MODES] =
2218 : : {
2219 : : 0, /* VOID */
2220 : : 0, /* BLK */
2221 : : 0, /* CC */
2222 : : 0, /* CCGC */
2223 : : 0, /* CCGOC */
2224 : : 0, /* CCNO */
2225 : : 0, /* CCGZ */
2226 : : 0, /* CCA */
2227 : : 0, /* CCC */
2228 : : 0, /* CCO */
2229 : : 0, /* CCP */
2230 : : 0, /* CCS */
2231 : : 0, /* CCZ */
2232 : : 0, /* CCFP */
2233 : : 0, /* BI */
2234 : : 0, /* QI */
2235 : : 0, /* HI */
2236 : : 0, /* SI */
2237 : : 0, /* DI */
2238 : : 0, /* TI */
2239 : : 0, /* OI */
2240 : : 0, /* XI */
2241 : : 0, /* P2QI */
2242 : : 0, /* P2HI */
2243 : : 0, /* POI */
2244 : : 0, /* QQ */
2245 : : 0, /* HQ */
2246 : : 0, /* SQ */
2247 : : 0, /* DQ */
2248 : : 0, /* TQ */
2249 : : 0, /* UQQ */
2250 : : 0, /* UHQ */
2251 : : 0, /* USQ */
2252 : : 0, /* UDQ */
2253 : : 0, /* UTQ */
2254 : : 8, /* HA */
2255 : : 16, /* SA */
2256 : : 32, /* DA */
2257 : : 64, /* TA */
2258 : : 8, /* UHA */
2259 : : 16, /* USA */
2260 : : 32, /* UDA */
2261 : : 64, /* UTA */
2262 : : 0, /* HF */
2263 : : 0, /* BF */
2264 : : 0, /* SF */
2265 : : 0, /* DF */
2266 : : 0, /* XF */
2267 : : 0, /* TF */
2268 : : 0, /* SD */
2269 : : 0, /* DD */
2270 : : 0, /* TD */
2271 : : 0, /* CQI */
2272 : : 0, /* CP2QI */
2273 : : 0, /* CHI */
2274 : : 0, /* CP2HI */
2275 : : 0, /* CSI */
2276 : : 0, /* CDI */
2277 : : 0, /* CTI */
2278 : : 0, /* CPOI */
2279 : : 0, /* COI */
2280 : : 0, /* CXI */
2281 : : 0, /* BC */
2282 : : 0, /* HC */
2283 : : 0, /* SC */
2284 : : 0, /* DC */
2285 : : 0, /* XC */
2286 : : 0, /* TC */
2287 : : 0, /* V2QI */
2288 : : 0, /* V4QI */
2289 : : 0, /* V2HI */
2290 : : 0, /* V1SI */
2291 : : 0, /* V8QI */
2292 : : 0, /* V4HI */
2293 : : 0, /* V2SI */
2294 : : 0, /* V1DI */
2295 : : 0, /* V12QI */
2296 : : 0, /* V6HI */
2297 : : 0, /* V14QI */
2298 : : 0, /* V16QI */
2299 : : 0, /* V8HI */
2300 : : 0, /* V4SI */
2301 : : 0, /* V2DI */
2302 : : 0, /* V1TI */
2303 : : 0, /* V32QI */
2304 : : 0, /* V16HI */
2305 : : 0, /* V8SI */
2306 : : 0, /* V4DI */
2307 : : 0, /* V2TI */
2308 : : 0, /* V64QI */
2309 : : 0, /* V32HI */
2310 : : 0, /* V16SI */
2311 : : 0, /* V8DI */
2312 : : 0, /* V4TI */
2313 : : 0, /* V128QI */
2314 : : 0, /* V64HI */
2315 : : 0, /* V32SI */
2316 : : 0, /* V16DI */
2317 : : 0, /* V8TI */
2318 : : 0, /* V64SI */
2319 : : 0, /* V2HF */
2320 : : 0, /* V2BF */
2321 : : 0, /* V4BF */
2322 : : 0, /* V4HF */
2323 : : 0, /* V2SF */
2324 : : 0, /* V6HF */
2325 : : 0, /* V8BF */
2326 : : 0, /* V8HF */
2327 : : 0, /* V4SF */
2328 : : 0, /* V2DF */
2329 : : 0, /* V16BF */
2330 : : 0, /* V16HF */
2331 : : 0, /* V8SF */
2332 : : 0, /* V4DF */
2333 : : 0, /* V2TF */
2334 : : 0, /* V32BF */
2335 : : 0, /* V32HF */
2336 : : 0, /* V16SF */
2337 : : 0, /* V8DF */
2338 : : 0, /* V4TF */
2339 : : 0, /* V64BF */
2340 : : 0, /* V64HF */
2341 : : 0, /* V32SF */
2342 : : 0, /* V16DF */
2343 : : 0, /* V8TF */
2344 : : 0, /* V128BF */
2345 : : 0, /* V128HF */
2346 : : 0, /* V64SF */
2347 : : 0, /* V32DF */
2348 : : 0, /* V16TF */
2349 : : };
2350 : :
2351 : : const unsigned char mode_fbit[NUM_MACHINE_MODES] =
2352 : : {
2353 : : 0, /* VOID */
2354 : : 0, /* BLK */
2355 : : 0, /* CC */
2356 : : 0, /* CCGC */
2357 : : 0, /* CCGOC */
2358 : : 0, /* CCNO */
2359 : : 0, /* CCGZ */
2360 : : 0, /* CCA */
2361 : : 0, /* CCC */
2362 : : 0, /* CCO */
2363 : : 0, /* CCP */
2364 : : 0, /* CCS */
2365 : : 0, /* CCZ */
2366 : : 0, /* CCFP */
2367 : : 0, /* BI */
2368 : : 0, /* QI */
2369 : : 0, /* HI */
2370 : : 0, /* SI */
2371 : : 0, /* DI */
2372 : : 0, /* TI */
2373 : : 0, /* OI */
2374 : : 0, /* XI */
2375 : : 0, /* P2QI */
2376 : : 0, /* P2HI */
2377 : : 0, /* POI */
2378 : : 7, /* QQ */
2379 : : 15, /* HQ */
2380 : : 31, /* SQ */
2381 : : 63, /* DQ */
2382 : : 127, /* TQ */
2383 : : 8, /* UQQ */
2384 : : 16, /* UHQ */
2385 : : 32, /* USQ */
2386 : : 64, /* UDQ */
2387 : : 128, /* UTQ */
2388 : : 7, /* HA */
2389 : : 15, /* SA */
2390 : : 31, /* DA */
2391 : : 63, /* TA */
2392 : : 8, /* UHA */
2393 : : 16, /* USA */
2394 : : 32, /* UDA */
2395 : : 64, /* UTA */
2396 : : 0, /* HF */
2397 : : 0, /* BF */
2398 : : 0, /* SF */
2399 : : 0, /* DF */
2400 : : 0, /* XF */
2401 : : 0, /* TF */
2402 : : 0, /* SD */
2403 : : 0, /* DD */
2404 : : 0, /* TD */
2405 : : 0, /* CQI */
2406 : : 0, /* CP2QI */
2407 : : 0, /* CHI */
2408 : : 0, /* CP2HI */
2409 : : 0, /* CSI */
2410 : : 0, /* CDI */
2411 : : 0, /* CTI */
2412 : : 0, /* CPOI */
2413 : : 0, /* COI */
2414 : : 0, /* CXI */
2415 : : 0, /* BC */
2416 : : 0, /* HC */
2417 : : 0, /* SC */
2418 : : 0, /* DC */
2419 : : 0, /* XC */
2420 : : 0, /* TC */
2421 : : 0, /* V2QI */
2422 : : 0, /* V4QI */
2423 : : 0, /* V2HI */
2424 : : 0, /* V1SI */
2425 : : 0, /* V8QI */
2426 : : 0, /* V4HI */
2427 : : 0, /* V2SI */
2428 : : 0, /* V1DI */
2429 : : 0, /* V12QI */
2430 : : 0, /* V6HI */
2431 : : 0, /* V14QI */
2432 : : 0, /* V16QI */
2433 : : 0, /* V8HI */
2434 : : 0, /* V4SI */
2435 : : 0, /* V2DI */
2436 : : 0, /* V1TI */
2437 : : 0, /* V32QI */
2438 : : 0, /* V16HI */
2439 : : 0, /* V8SI */
2440 : : 0, /* V4DI */
2441 : : 0, /* V2TI */
2442 : : 0, /* V64QI */
2443 : : 0, /* V32HI */
2444 : : 0, /* V16SI */
2445 : : 0, /* V8DI */
2446 : : 0, /* V4TI */
2447 : : 0, /* V128QI */
2448 : : 0, /* V64HI */
2449 : : 0, /* V32SI */
2450 : : 0, /* V16DI */
2451 : : 0, /* V8TI */
2452 : : 0, /* V64SI */
2453 : : 0, /* V2HF */
2454 : : 0, /* V2BF */
2455 : : 0, /* V4BF */
2456 : : 0, /* V4HF */
2457 : : 0, /* V2SF */
2458 : : 0, /* V6HF */
2459 : : 0, /* V8BF */
2460 : : 0, /* V8HF */
2461 : : 0, /* V4SF */
2462 : : 0, /* V2DF */
2463 : : 0, /* V16BF */
2464 : : 0, /* V16HF */
2465 : : 0, /* V8SF */
2466 : : 0, /* V4DF */
2467 : : 0, /* V2TF */
2468 : : 0, /* V32BF */
2469 : : 0, /* V32HF */
2470 : : 0, /* V16SF */
2471 : : 0, /* V8DF */
2472 : : 0, /* V4TF */
2473 : : 0, /* V64BF */
2474 : : 0, /* V64HF */
2475 : : 0, /* V32SF */
2476 : : 0, /* V16DF */
2477 : : 0, /* V8TF */
2478 : : 0, /* V128BF */
2479 : : 0, /* V128HF */
2480 : : 0, /* V64SF */
2481 : : 0, /* V32DF */
2482 : : 0, /* V16TF */
2483 : : };
2484 : :
2485 : : const int_n_data_t int_n_data[] =
2486 : : {
2487 : : {
2488 : : 128, /* TI */
2489 : : { E_TImode }, },
2490 : : };
|