xref: /netbsd-src/external/gpl3/gcc.old/usr.bin/gcc/arch/i386/insn-modes.h (revision cef8759bd76c1b621f8eab8faa6f208faabc2e15)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.96 2019/01/19 20:02:06 mrg Exp  */
3 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
4 
5 /* Generated automatically from machmode.def and config/i386/i386-modes.def
6    by genmodes.  */
7 
8 #ifndef GCC_INSN_MODES_H
9 #define GCC_INSN_MODES_H
10 
11 enum machine_mode
12 {
13   VOIDmode,                /* machmode.def:172 */
14 #define HAVE_VOIDmode
15   BLKmode,                 /* machmode.def:176 */
16 #define HAVE_BLKmode
17   CCmode,                  /* machmode.def:214 */
18 #define HAVE_CCmode
19   CCGCmode,                /* config/i386/i386-modes.def:62 */
20 #define HAVE_CCGCmode
21   CCGOCmode,               /* config/i386/i386-modes.def:63 */
22 #define HAVE_CCGOCmode
23   CCNOmode,                /* config/i386/i386-modes.def:64 */
24 #define HAVE_CCNOmode
25   CCAmode,                 /* config/i386/i386-modes.def:65 */
26 #define HAVE_CCAmode
27   CCCmode,                 /* config/i386/i386-modes.def:66 */
28 #define HAVE_CCCmode
29   CCOmode,                 /* config/i386/i386-modes.def:67 */
30 #define HAVE_CCOmode
31   CCPmode,                 /* config/i386/i386-modes.def:68 */
32 #define HAVE_CCPmode
33   CCSmode,                 /* config/i386/i386-modes.def:69 */
34 #define HAVE_CCSmode
35   CCZmode,                 /* config/i386/i386-modes.def:70 */
36 #define HAVE_CCZmode
37   CCFPmode,                /* config/i386/i386-modes.def:71 */
38 #define HAVE_CCFPmode
39   CCFPUmode,               /* config/i386/i386-modes.def:72 */
40 #define HAVE_CCFPUmode
41   BImode,                  /* machmode.def:179 */
42 #define HAVE_BImode
43   QImode,                  /* machmode.def:187 */
44 #define HAVE_QImode
45   HImode,                  /* machmode.def:188 */
46 #define HAVE_HImode
47   SImode,                  /* machmode.def:189 */
48 #define HAVE_SImode
49   DImode,                  /* machmode.def:190 */
50 #define HAVE_DImode
51   TImode,                  /* machmode.def:191 */
52 #define HAVE_TImode
53   OImode,                  /* config/i386/i386-modes.def:100 */
54 #define HAVE_OImode
55   XImode,                  /* config/i386/i386-modes.def:101 */
56 #define HAVE_XImode
57   BND32mode,               /* config/i386/i386-modes.def:97 */
58 #define HAVE_BND32mode
59   BND64mode,               /* config/i386/i386-modes.def:98 */
60 #define HAVE_BND64mode
61   QQmode,                  /* machmode.def:217 */
62 #define HAVE_QQmode
63   HQmode,                  /* machmode.def:218 */
64 #define HAVE_HQmode
65   SQmode,                  /* machmode.def:219 */
66 #define HAVE_SQmode
67   DQmode,                  /* machmode.def:220 */
68 #define HAVE_DQmode
69   TQmode,                  /* machmode.def:221 */
70 #define HAVE_TQmode
71   UQQmode,                 /* machmode.def:223 */
72 #define HAVE_UQQmode
73   UHQmode,                 /* machmode.def:224 */
74 #define HAVE_UHQmode
75   USQmode,                 /* machmode.def:225 */
76 #define HAVE_USQmode
77   UDQmode,                 /* machmode.def:226 */
78 #define HAVE_UDQmode
79   UTQmode,                 /* machmode.def:227 */
80 #define HAVE_UTQmode
81   HAmode,                  /* machmode.def:229 */
82 #define HAVE_HAmode
83   SAmode,                  /* machmode.def:230 */
84 #define HAVE_SAmode
85   DAmode,                  /* machmode.def:231 */
86 #define HAVE_DAmode
87   TAmode,                  /* machmode.def:232 */
88 #define HAVE_TAmode
89   UHAmode,                 /* machmode.def:234 */
90 #define HAVE_UHAmode
91   USAmode,                 /* machmode.def:235 */
92 #define HAVE_USAmode
93   UDAmode,                 /* machmode.def:236 */
94 #define HAVE_UDAmode
95   UTAmode,                 /* machmode.def:237 */
96 #define HAVE_UTAmode
97   SFmode,                  /* machmode.def:209 */
98 #define HAVE_SFmode
99   DFmode,                  /* machmode.def:210 */
100 #define HAVE_DFmode
101   XFmode,                  /* config/i386/i386-modes.def:24 */
102 #define HAVE_XFmode
103   TFmode,                  /* config/i386/i386-modes.def:25 */
104 #define HAVE_TFmode
105   SDmode,                  /* machmode.def:250 */
106 #define HAVE_SDmode
107   DDmode,                  /* machmode.def:251 */
108 #define HAVE_DDmode
109   TDmode,                  /* machmode.def:252 */
110 #define HAVE_TDmode
111   CQImode,                 /* machmode.def:245 */
112 #define HAVE_CQImode
113   CHImode,                 /* machmode.def:245 */
114 #define HAVE_CHImode
115   CSImode,                 /* machmode.def:245 */
116 #define HAVE_CSImode
117   CDImode,                 /* machmode.def:245 */
118 #define HAVE_CDImode
119   CTImode,                 /* machmode.def:245 */
120 #define HAVE_CTImode
121   COImode,                 /* machmode.def:245 */
122 #define HAVE_COImode
123   CXImode,                 /* machmode.def:245 */
124 #define HAVE_CXImode
125   SCmode,                  /* machmode.def:247 */
126 #define HAVE_SCmode
127   DCmode,                  /* machmode.def:247 */
128 #define HAVE_DCmode
129   XCmode,                  /* machmode.def:247 */
130 #define HAVE_XCmode
131   TCmode,                  /* machmode.def:247 */
132 #define HAVE_TCmode
133   V2QImode,                /* config/i386/i386-modes.def:91 */
134 #define HAVE_V2QImode
135   V4QImode,                /* config/i386/i386-modes.def:76 */
136 #define HAVE_V4QImode
137   V2HImode,                /* config/i386/i386-modes.def:76 */
138 #define HAVE_V2HImode
139   V1SImode,                /* config/i386/i386-modes.def:90 */
140 #define HAVE_V1SImode
141   V8QImode,                /* config/i386/i386-modes.def:77 */
142 #define HAVE_V8QImode
143   V4HImode,                /* config/i386/i386-modes.def:77 */
144 #define HAVE_V4HImode
145   V2SImode,                /* config/i386/i386-modes.def:77 */
146 #define HAVE_V2SImode
147   V1DImode,                /* config/i386/i386-modes.def:89 */
148 #define HAVE_V1DImode
149   V12QImode,               /* config/i386/i386-modes.def:92 */
150 #define HAVE_V12QImode
151   V6HImode,                /* config/i386/i386-modes.def:94 */
152 #define HAVE_V6HImode
153   V14QImode,               /* config/i386/i386-modes.def:93 */
154 #define HAVE_V14QImode
155   V16QImode,               /* config/i386/i386-modes.def:78 */
156 #define HAVE_V16QImode
157   V8HImode,                /* config/i386/i386-modes.def:78 */
158 #define HAVE_V8HImode
159   V4SImode,                /* config/i386/i386-modes.def:78 */
160 #define HAVE_V4SImode
161   V2DImode,                /* config/i386/i386-modes.def:78 */
162 #define HAVE_V2DImode
163   V1TImode,                /* config/i386/i386-modes.def:88 */
164 #define HAVE_V1TImode
165   V32QImode,               /* config/i386/i386-modes.def:79 */
166 #define HAVE_V32QImode
167   V16HImode,               /* config/i386/i386-modes.def:79 */
168 #define HAVE_V16HImode
169   V8SImode,                /* config/i386/i386-modes.def:79 */
170 #define HAVE_V8SImode
171   V4DImode,                /* config/i386/i386-modes.def:79 */
172 #define HAVE_V4DImode
173   V2TImode,                /* config/i386/i386-modes.def:79 */
174 #define HAVE_V2TImode
175   V64QImode,               /* config/i386/i386-modes.def:80 */
176 #define HAVE_V64QImode
177   V32HImode,               /* config/i386/i386-modes.def:80 */
178 #define HAVE_V32HImode
179   V16SImode,               /* config/i386/i386-modes.def:80 */
180 #define HAVE_V16SImode
181   V8DImode,                /* config/i386/i386-modes.def:80 */
182 #define HAVE_V8DImode
183   V4TImode,                /* config/i386/i386-modes.def:80 */
184 #define HAVE_V4TImode
185   V128QImode,              /* config/i386/i386-modes.def:81 */
186 #define HAVE_V128QImode
187   V64HImode,               /* config/i386/i386-modes.def:81 */
188 #define HAVE_V64HImode
189   V32SImode,               /* config/i386/i386-modes.def:81 */
190 #define HAVE_V32SImode
191   V16DImode,               /* config/i386/i386-modes.def:81 */
192 #define HAVE_V16DImode
193   V8TImode,                /* config/i386/i386-modes.def:81 */
194 #define HAVE_V8TImode
195   V64SImode,               /* config/i386/i386-modes.def:95 */
196 #define HAVE_V64SImode
197   V2SFmode,                /* config/i386/i386-modes.def:82 */
198 #define HAVE_V2SFmode
199   V4SFmode,                /* config/i386/i386-modes.def:83 */
200 #define HAVE_V4SFmode
201   V2DFmode,                /* config/i386/i386-modes.def:83 */
202 #define HAVE_V2DFmode
203   V8SFmode,                /* config/i386/i386-modes.def:84 */
204 #define HAVE_V8SFmode
205   V4DFmode,                /* config/i386/i386-modes.def:84 */
206 #define HAVE_V4DFmode
207   V2TFmode,                /* config/i386/i386-modes.def:84 */
208 #define HAVE_V2TFmode
209   V16SFmode,               /* config/i386/i386-modes.def:85 */
210 #define HAVE_V16SFmode
211   V8DFmode,                /* config/i386/i386-modes.def:85 */
212 #define HAVE_V8DFmode
213   V4TFmode,                /* config/i386/i386-modes.def:85 */
214 #define HAVE_V4TFmode
215   V32SFmode,               /* config/i386/i386-modes.def:86 */
216 #define HAVE_V32SFmode
217   V16DFmode,               /* config/i386/i386-modes.def:86 */
218 #define HAVE_V16DFmode
219   V8TFmode,                /* config/i386/i386-modes.def:86 */
220 #define HAVE_V8TFmode
221   V64SFmode,               /* config/i386/i386-modes.def:87 */
222 #define HAVE_V64SFmode
223   V32DFmode,               /* config/i386/i386-modes.def:87 */
224 #define HAVE_V32DFmode
225   V16TFmode,               /* config/i386/i386-modes.def:87 */
226 #define HAVE_V16TFmode
227   MAX_MACHINE_MODE,
228 
229   MIN_MODE_RANDOM = VOIDmode,
230   MAX_MODE_RANDOM = BLKmode,
231 
232   MIN_MODE_CC = CCmode,
233   MAX_MODE_CC = CCFPUmode,
234 
235   MIN_MODE_INT = QImode,
236   MAX_MODE_INT = XImode,
237 
238   MIN_MODE_PARTIAL_INT = VOIDmode,
239   MAX_MODE_PARTIAL_INT = VOIDmode,
240 
241   MIN_MODE_POINTER_BOUNDS = BND32mode,
242   MAX_MODE_POINTER_BOUNDS = BND64mode,
243 
244   MIN_MODE_FRACT = QQmode,
245   MAX_MODE_FRACT = TQmode,
246 
247   MIN_MODE_UFRACT = UQQmode,
248   MAX_MODE_UFRACT = UTQmode,
249 
250   MIN_MODE_ACCUM = HAmode,
251   MAX_MODE_ACCUM = TAmode,
252 
253   MIN_MODE_UACCUM = UHAmode,
254   MAX_MODE_UACCUM = UTAmode,
255 
256   MIN_MODE_FLOAT = SFmode,
257   MAX_MODE_FLOAT = TFmode,
258 
259   MIN_MODE_DECIMAL_FLOAT = SDmode,
260   MAX_MODE_DECIMAL_FLOAT = TDmode,
261 
262   MIN_MODE_COMPLEX_INT = CQImode,
263   MAX_MODE_COMPLEX_INT = CXImode,
264 
265   MIN_MODE_COMPLEX_FLOAT = SCmode,
266   MAX_MODE_COMPLEX_FLOAT = TCmode,
267 
268   MIN_MODE_VECTOR_INT = V2QImode,
269   MAX_MODE_VECTOR_INT = V64SImode,
270 
271   MIN_MODE_VECTOR_FRACT = VOIDmode,
272   MAX_MODE_VECTOR_FRACT = VOIDmode,
273 
274   MIN_MODE_VECTOR_UFRACT = VOIDmode,
275   MAX_MODE_VECTOR_UFRACT = VOIDmode,
276 
277   MIN_MODE_VECTOR_ACCUM = VOIDmode,
278   MAX_MODE_VECTOR_ACCUM = VOIDmode,
279 
280   MIN_MODE_VECTOR_UACCUM = VOIDmode,
281   MAX_MODE_VECTOR_UACCUM = VOIDmode,
282 
283   MIN_MODE_VECTOR_FLOAT = V2SFmode,
284   MAX_MODE_VECTOR_FLOAT = V16TFmode,
285 
286   NUM_MACHINE_MODES = MAX_MACHINE_MODE
287 };
288 
289 #define CONST_MODE_SIZE
290 #define CONST_MODE_UNIT_SIZE
291 #define CONST_MODE_BASE_ALIGN
292 #define CONST_MODE_IBIT const
293 #define CONST_MODE_FBIT const
294 
295 #define BITS_PER_UNIT (8)
296 #define MAX_BITSIZE_MODE_ANY_INT 128
297 #define MAX_BITSIZE_MODE_ANY_MODE (256*BITS_PER_UNIT)
298 #define NUM_INT_N_ENTS 1
299 
300 #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
301 
302 #ifdef __cplusplus
303 inline __attribute__((__always_inline__))
304 #else
305 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
306 #endif
307 unsigned short
308 mode_size_inline (machine_mode mode)
309 {
310   extern unsigned short mode_size[NUM_MACHINE_MODES];
311   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
312   switch (mode)
313     {
314     case VOIDmode: return 0;
315     case BLKmode: return 0;
316     case CCmode: return 4;
317     case CCGCmode: return 4;
318     case CCGOCmode: return 4;
319     case CCNOmode: return 4;
320     case CCAmode: return 4;
321     case CCCmode: return 4;
322     case CCOmode: return 4;
323     case CCPmode: return 4;
324     case CCSmode: return 4;
325     case CCZmode: return 4;
326     case CCFPmode: return 4;
327     case CCFPUmode: return 4;
328     case BImode: return 1;
329     case QImode: return 1;
330     case HImode: return 2;
331     case SImode: return 4;
332     case DImode: return 8;
333     case TImode: return 16;
334     case OImode: return 32;
335     case XImode: return 64;
336     case BND32mode: return 8;
337     case BND64mode: return 16;
338     case QQmode: return 1;
339     case HQmode: return 2;
340     case SQmode: return 4;
341     case DQmode: return 8;
342     case TQmode: return 16;
343     case UQQmode: return 1;
344     case UHQmode: return 2;
345     case USQmode: return 4;
346     case UDQmode: return 8;
347     case UTQmode: return 16;
348     case HAmode: return 2;
349     case SAmode: return 4;
350     case DAmode: return 8;
351     case TAmode: return 16;
352     case UHAmode: return 2;
353     case USAmode: return 4;
354     case UDAmode: return 8;
355     case UTAmode: return 16;
356     case SFmode: return 4;
357     case DFmode: return 8;
358     case TFmode: return 16;
359     case SDmode: return 4;
360     case DDmode: return 8;
361     case TDmode: return 16;
362     case CQImode: return 2;
363     case CHImode: return 4;
364     case CSImode: return 8;
365     case CDImode: return 16;
366     case CTImode: return 32;
367     case COImode: return 64;
368     case CXImode: return 128;
369     case SCmode: return 8;
370     case DCmode: return 16;
371     case TCmode: return 32;
372     case V2QImode: return 2;
373     case V4QImode: return 4;
374     case V2HImode: return 4;
375     case V1SImode: return 4;
376     case V8QImode: return 8;
377     case V4HImode: return 8;
378     case V2SImode: return 8;
379     case V1DImode: return 8;
380     case V12QImode: return 12;
381     case V6HImode: return 12;
382     case V14QImode: return 14;
383     case V16QImode: return 16;
384     case V8HImode: return 16;
385     case V4SImode: return 16;
386     case V2DImode: return 16;
387     case V1TImode: return 16;
388     case V32QImode: return 32;
389     case V16HImode: return 32;
390     case V8SImode: return 32;
391     case V4DImode: return 32;
392     case V2TImode: return 32;
393     case V64QImode: return 64;
394     case V32HImode: return 64;
395     case V16SImode: return 64;
396     case V8DImode: return 64;
397     case V4TImode: return 64;
398     case V128QImode: return 128;
399     case V64HImode: return 128;
400     case V32SImode: return 128;
401     case V16DImode: return 128;
402     case V8TImode: return 128;
403     case V64SImode: return 256;
404     case V2SFmode: return 8;
405     case V4SFmode: return 16;
406     case V2DFmode: return 16;
407     case V8SFmode: return 32;
408     case V4DFmode: return 32;
409     case V2TFmode: return 32;
410     case V16SFmode: return 64;
411     case V8DFmode: return 64;
412     case V4TFmode: return 64;
413     case V32SFmode: return 128;
414     case V16DFmode: return 128;
415     case V8TFmode: return 128;
416     case V64SFmode: return 256;
417     case V32DFmode: return 256;
418     case V16TFmode: return 256;
419     default: return mode_size[mode];
420     }
421 }
422 
423 #ifdef __cplusplus
424 inline __attribute__((__always_inline__))
425 #else
426 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
427 #endif
428 unsigned char
429 mode_nunits_inline (machine_mode mode)
430 {
431   extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
432   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
433   switch (mode)
434     {
435     case VOIDmode: return 0;
436     case BLKmode: return 0;
437     case CCmode: return 1;
438     case CCGCmode: return 1;
439     case CCGOCmode: return 1;
440     case CCNOmode: return 1;
441     case CCAmode: return 1;
442     case CCCmode: return 1;
443     case CCOmode: return 1;
444     case CCPmode: return 1;
445     case CCSmode: return 1;
446     case CCZmode: return 1;
447     case CCFPmode: return 1;
448     case CCFPUmode: return 1;
449     case BImode: return 1;
450     case QImode: return 1;
451     case HImode: return 1;
452     case SImode: return 1;
453     case DImode: return 1;
454     case TImode: return 1;
455     case OImode: return 1;
456     case XImode: return 1;
457     case BND32mode: return 1;
458     case BND64mode: return 1;
459     case QQmode: return 1;
460     case HQmode: return 1;
461     case SQmode: return 1;
462     case DQmode: return 1;
463     case TQmode: return 1;
464     case UQQmode: return 1;
465     case UHQmode: return 1;
466     case USQmode: return 1;
467     case UDQmode: return 1;
468     case UTQmode: return 1;
469     case HAmode: return 1;
470     case SAmode: return 1;
471     case DAmode: return 1;
472     case TAmode: return 1;
473     case UHAmode: return 1;
474     case USAmode: return 1;
475     case UDAmode: return 1;
476     case UTAmode: return 1;
477     case SFmode: return 1;
478     case DFmode: return 1;
479     case XFmode: return 1;
480     case TFmode: return 1;
481     case SDmode: return 1;
482     case DDmode: return 1;
483     case TDmode: return 1;
484     case CQImode: return 2;
485     case CHImode: return 2;
486     case CSImode: return 2;
487     case CDImode: return 2;
488     case CTImode: return 2;
489     case COImode: return 2;
490     case CXImode: return 2;
491     case SCmode: return 2;
492     case DCmode: return 2;
493     case XCmode: return 2;
494     case TCmode: return 2;
495     case V2QImode: return 2;
496     case V4QImode: return 4;
497     case V2HImode: return 2;
498     case V1SImode: return 1;
499     case V8QImode: return 8;
500     case V4HImode: return 4;
501     case V2SImode: return 2;
502     case V1DImode: return 1;
503     case V12QImode: return 12;
504     case V6HImode: return 6;
505     case V14QImode: return 14;
506     case V16QImode: return 16;
507     case V8HImode: return 8;
508     case V4SImode: return 4;
509     case V2DImode: return 2;
510     case V1TImode: return 1;
511     case V32QImode: return 32;
512     case V16HImode: return 16;
513     case V8SImode: return 8;
514     case V4DImode: return 4;
515     case V2TImode: return 2;
516     case V64QImode: return 64;
517     case V32HImode: return 32;
518     case V16SImode: return 16;
519     case V8DImode: return 8;
520     case V4TImode: return 4;
521     case V128QImode: return 128;
522     case V64HImode: return 64;
523     case V32SImode: return 32;
524     case V16DImode: return 16;
525     case V8TImode: return 8;
526     case V64SImode: return 64;
527     case V2SFmode: return 2;
528     case V4SFmode: return 4;
529     case V2DFmode: return 2;
530     case V8SFmode: return 8;
531     case V4DFmode: return 4;
532     case V2TFmode: return 2;
533     case V16SFmode: return 16;
534     case V8DFmode: return 8;
535     case V4TFmode: return 4;
536     case V32SFmode: return 32;
537     case V16DFmode: return 16;
538     case V8TFmode: return 8;
539     case V64SFmode: return 64;
540     case V32DFmode: return 32;
541     case V16TFmode: return 16;
542     default: return mode_nunits[mode];
543     }
544 }
545 
546 #ifdef __cplusplus
547 inline __attribute__((__always_inline__))
548 #else
549 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
550 #endif
551 unsigned char
552 mode_inner_inline (machine_mode mode)
553 {
554   extern const unsigned char mode_inner[NUM_MACHINE_MODES];
555   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
556   switch (mode)
557     {
558     case VOIDmode: return VOIDmode;
559     case BLKmode: return BLKmode;
560     case CCmode: return CCmode;
561     case CCGCmode: return CCGCmode;
562     case CCGOCmode: return CCGOCmode;
563     case CCNOmode: return CCNOmode;
564     case CCAmode: return CCAmode;
565     case CCCmode: return CCCmode;
566     case CCOmode: return CCOmode;
567     case CCPmode: return CCPmode;
568     case CCSmode: return CCSmode;
569     case CCZmode: return CCZmode;
570     case CCFPmode: return CCFPmode;
571     case CCFPUmode: return CCFPUmode;
572     case BImode: return BImode;
573     case QImode: return QImode;
574     case HImode: return HImode;
575     case SImode: return SImode;
576     case DImode: return DImode;
577     case TImode: return TImode;
578     case OImode: return OImode;
579     case XImode: return XImode;
580     case BND32mode: return BND32mode;
581     case BND64mode: return BND64mode;
582     case QQmode: return QQmode;
583     case HQmode: return HQmode;
584     case SQmode: return SQmode;
585     case DQmode: return DQmode;
586     case TQmode: return TQmode;
587     case UQQmode: return UQQmode;
588     case UHQmode: return UHQmode;
589     case USQmode: return USQmode;
590     case UDQmode: return UDQmode;
591     case UTQmode: return UTQmode;
592     case HAmode: return HAmode;
593     case SAmode: return SAmode;
594     case DAmode: return DAmode;
595     case TAmode: return TAmode;
596     case UHAmode: return UHAmode;
597     case USAmode: return USAmode;
598     case UDAmode: return UDAmode;
599     case UTAmode: return UTAmode;
600     case SFmode: return SFmode;
601     case DFmode: return DFmode;
602     case XFmode: return XFmode;
603     case TFmode: return TFmode;
604     case SDmode: return SDmode;
605     case DDmode: return DDmode;
606     case TDmode: return TDmode;
607     case CQImode: return QImode;
608     case CHImode: return HImode;
609     case CSImode: return SImode;
610     case CDImode: return DImode;
611     case CTImode: return TImode;
612     case COImode: return OImode;
613     case CXImode: return XImode;
614     case SCmode: return SFmode;
615     case DCmode: return DFmode;
616     case XCmode: return XFmode;
617     case TCmode: return TFmode;
618     case V2QImode: return QImode;
619     case V4QImode: return QImode;
620     case V2HImode: return HImode;
621     case V1SImode: return SImode;
622     case V8QImode: return QImode;
623     case V4HImode: return HImode;
624     case V2SImode: return SImode;
625     case V1DImode: return DImode;
626     case V12QImode: return QImode;
627     case V6HImode: return HImode;
628     case V14QImode: return QImode;
629     case V16QImode: return QImode;
630     case V8HImode: return HImode;
631     case V4SImode: return SImode;
632     case V2DImode: return DImode;
633     case V1TImode: return TImode;
634     case V32QImode: return QImode;
635     case V16HImode: return HImode;
636     case V8SImode: return SImode;
637     case V4DImode: return DImode;
638     case V2TImode: return TImode;
639     case V64QImode: return QImode;
640     case V32HImode: return HImode;
641     case V16SImode: return SImode;
642     case V8DImode: return DImode;
643     case V4TImode: return TImode;
644     case V128QImode: return QImode;
645     case V64HImode: return HImode;
646     case V32SImode: return SImode;
647     case V16DImode: return DImode;
648     case V8TImode: return TImode;
649     case V64SImode: return SImode;
650     case V2SFmode: return SFmode;
651     case V4SFmode: return SFmode;
652     case V2DFmode: return DFmode;
653     case V8SFmode: return SFmode;
654     case V4DFmode: return DFmode;
655     case V2TFmode: return TFmode;
656     case V16SFmode: return SFmode;
657     case V8DFmode: return DFmode;
658     case V4TFmode: return TFmode;
659     case V32SFmode: return SFmode;
660     case V16DFmode: return DFmode;
661     case V8TFmode: return TFmode;
662     case V64SFmode: return SFmode;
663     case V32DFmode: return DFmode;
664     case V16TFmode: return TFmode;
665     default: return mode_inner[mode];
666     }
667 }
668 
669 #ifdef __cplusplus
670 inline __attribute__((__always_inline__))
671 #else
672 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
673 #endif
674 unsigned char
675 mode_unit_size_inline (machine_mode mode)
676 {
677   extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES];
678   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
679   switch (mode)
680     {
681     case VOIDmode: return 0;
682     case BLKmode: return 0;
683     case CCmode: return 4;
684     case CCGCmode: return 4;
685     case CCGOCmode: return 4;
686     case CCNOmode: return 4;
687     case CCAmode: return 4;
688     case CCCmode: return 4;
689     case CCOmode: return 4;
690     case CCPmode: return 4;
691     case CCSmode: return 4;
692     case CCZmode: return 4;
693     case CCFPmode: return 4;
694     case CCFPUmode: return 4;
695     case BImode: return 1;
696     case QImode: return 1;
697     case HImode: return 2;
698     case SImode: return 4;
699     case DImode: return 8;
700     case TImode: return 16;
701     case OImode: return 32;
702     case XImode: return 64;
703     case BND32mode: return 8;
704     case BND64mode: return 16;
705     case QQmode: return 1;
706     case HQmode: return 2;
707     case SQmode: return 4;
708     case DQmode: return 8;
709     case TQmode: return 16;
710     case UQQmode: return 1;
711     case UHQmode: return 2;
712     case USQmode: return 4;
713     case UDQmode: return 8;
714     case UTQmode: return 16;
715     case HAmode: return 2;
716     case SAmode: return 4;
717     case DAmode: return 8;
718     case TAmode: return 16;
719     case UHAmode: return 2;
720     case USAmode: return 4;
721     case UDAmode: return 8;
722     case UTAmode: return 16;
723     case SFmode: return 4;
724     case DFmode: return 8;
725     case TFmode: return 16;
726     case SDmode: return 4;
727     case DDmode: return 8;
728     case TDmode: return 16;
729     case CQImode: return 1;
730     case CHImode: return 2;
731     case CSImode: return 4;
732     case CDImode: return 8;
733     case CTImode: return 16;
734     case COImode: return 32;
735     case CXImode: return 64;
736     case SCmode: return 4;
737     case DCmode: return 8;
738     case TCmode: return 16;
739     case V2QImode: return 1;
740     case V4QImode: return 1;
741     case V2HImode: return 2;
742     case V1SImode: return 4;
743     case V8QImode: return 1;
744     case V4HImode: return 2;
745     case V2SImode: return 4;
746     case V1DImode: return 8;
747     case V12QImode: return 1;
748     case V6HImode: return 2;
749     case V14QImode: return 1;
750     case V16QImode: return 1;
751     case V8HImode: return 2;
752     case V4SImode: return 4;
753     case V2DImode: return 8;
754     case V1TImode: return 16;
755     case V32QImode: return 1;
756     case V16HImode: return 2;
757     case V8SImode: return 4;
758     case V4DImode: return 8;
759     case V2TImode: return 16;
760     case V64QImode: return 1;
761     case V32HImode: return 2;
762     case V16SImode: return 4;
763     case V8DImode: return 8;
764     case V4TImode: return 16;
765     case V128QImode: return 1;
766     case V64HImode: return 2;
767     case V32SImode: return 4;
768     case V16DImode: return 8;
769     case V8TImode: return 16;
770     case V64SImode: return 4;
771     case V2SFmode: return 4;
772     case V4SFmode: return 4;
773     case V2DFmode: return 8;
774     case V8SFmode: return 4;
775     case V4DFmode: return 8;
776     case V2TFmode: return 16;
777     case V16SFmode: return 4;
778     case V8DFmode: return 8;
779     case V4TFmode: return 16;
780     case V32SFmode: return 4;
781     case V16DFmode: return 8;
782     case V8TFmode: return 16;
783     case V64SFmode: return 4;
784     case V32DFmode: return 8;
785     case V16TFmode: return 16;
786     default: return mode_unit_size[mode];
787     }
788 }
789 
790 #ifdef __cplusplus
791 inline __attribute__((__always_inline__))
792 #else
793 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
794 #endif
795 unsigned short
796 mode_unit_precision_inline (machine_mode mode)
797 {
798   extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES];
799   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
800   switch (mode)
801     {
802     case VOIDmode: return 0;
803     case BLKmode: return 0;
804     case CCmode: return 4*BITS_PER_UNIT;
805     case CCGCmode: return 4*BITS_PER_UNIT;
806     case CCGOCmode: return 4*BITS_PER_UNIT;
807     case CCNOmode: return 4*BITS_PER_UNIT;
808     case CCAmode: return 4*BITS_PER_UNIT;
809     case CCCmode: return 4*BITS_PER_UNIT;
810     case CCOmode: return 4*BITS_PER_UNIT;
811     case CCPmode: return 4*BITS_PER_UNIT;
812     case CCSmode: return 4*BITS_PER_UNIT;
813     case CCZmode: return 4*BITS_PER_UNIT;
814     case CCFPmode: return 4*BITS_PER_UNIT;
815     case CCFPUmode: return 4*BITS_PER_UNIT;
816     case BImode: return 1;
817     case QImode: return 1*BITS_PER_UNIT;
818     case HImode: return 2*BITS_PER_UNIT;
819     case SImode: return 4*BITS_PER_UNIT;
820     case DImode: return 8*BITS_PER_UNIT;
821     case TImode: return 16*BITS_PER_UNIT;
822     case OImode: return 32*BITS_PER_UNIT;
823     case XImode: return 64*BITS_PER_UNIT;
824     case BND32mode: return 8*BITS_PER_UNIT;
825     case BND64mode: return 16*BITS_PER_UNIT;
826     case QQmode: return 1*BITS_PER_UNIT;
827     case HQmode: return 2*BITS_PER_UNIT;
828     case SQmode: return 4*BITS_PER_UNIT;
829     case DQmode: return 8*BITS_PER_UNIT;
830     case TQmode: return 16*BITS_PER_UNIT;
831     case UQQmode: return 1*BITS_PER_UNIT;
832     case UHQmode: return 2*BITS_PER_UNIT;
833     case USQmode: return 4*BITS_PER_UNIT;
834     case UDQmode: return 8*BITS_PER_UNIT;
835     case UTQmode: return 16*BITS_PER_UNIT;
836     case HAmode: return 2*BITS_PER_UNIT;
837     case SAmode: return 4*BITS_PER_UNIT;
838     case DAmode: return 8*BITS_PER_UNIT;
839     case TAmode: return 16*BITS_PER_UNIT;
840     case UHAmode: return 2*BITS_PER_UNIT;
841     case USAmode: return 4*BITS_PER_UNIT;
842     case UDAmode: return 8*BITS_PER_UNIT;
843     case UTAmode: return 16*BITS_PER_UNIT;
844     case SFmode: return 4*BITS_PER_UNIT;
845     case DFmode: return 8*BITS_PER_UNIT;
846     case XFmode: return 80;
847     case TFmode: return 16*BITS_PER_UNIT;
848     case SDmode: return 4*BITS_PER_UNIT;
849     case DDmode: return 8*BITS_PER_UNIT;
850     case TDmode: return 16*BITS_PER_UNIT;
851     case CQImode: return 1*BITS_PER_UNIT;
852     case CHImode: return 2*BITS_PER_UNIT;
853     case CSImode: return 4*BITS_PER_UNIT;
854     case CDImode: return 8*BITS_PER_UNIT;
855     case CTImode: return 16*BITS_PER_UNIT;
856     case COImode: return 32*BITS_PER_UNIT;
857     case CXImode: return 64*BITS_PER_UNIT;
858     case SCmode: return 4*BITS_PER_UNIT;
859     case DCmode: return 8*BITS_PER_UNIT;
860     case XCmode: return 80;
861     case TCmode: return 16*BITS_PER_UNIT;
862     case V2QImode: return 1*BITS_PER_UNIT;
863     case V4QImode: return 1*BITS_PER_UNIT;
864     case V2HImode: return 2*BITS_PER_UNIT;
865     case V1SImode: return 4*BITS_PER_UNIT;
866     case V8QImode: return 1*BITS_PER_UNIT;
867     case V4HImode: return 2*BITS_PER_UNIT;
868     case V2SImode: return 4*BITS_PER_UNIT;
869     case V1DImode: return 8*BITS_PER_UNIT;
870     case V12QImode: return 1*BITS_PER_UNIT;
871     case V6HImode: return 2*BITS_PER_UNIT;
872     case V14QImode: return 1*BITS_PER_UNIT;
873     case V16QImode: return 1*BITS_PER_UNIT;
874     case V8HImode: return 2*BITS_PER_UNIT;
875     case V4SImode: return 4*BITS_PER_UNIT;
876     case V2DImode: return 8*BITS_PER_UNIT;
877     case V1TImode: return 16*BITS_PER_UNIT;
878     case V32QImode: return 1*BITS_PER_UNIT;
879     case V16HImode: return 2*BITS_PER_UNIT;
880     case V8SImode: return 4*BITS_PER_UNIT;
881     case V4DImode: return 8*BITS_PER_UNIT;
882     case V2TImode: return 16*BITS_PER_UNIT;
883     case V64QImode: return 1*BITS_PER_UNIT;
884     case V32HImode: return 2*BITS_PER_UNIT;
885     case V16SImode: return 4*BITS_PER_UNIT;
886     case V8DImode: return 8*BITS_PER_UNIT;
887     case V4TImode: return 16*BITS_PER_UNIT;
888     case V128QImode: return 1*BITS_PER_UNIT;
889     case V64HImode: return 2*BITS_PER_UNIT;
890     case V32SImode: return 4*BITS_PER_UNIT;
891     case V16DImode: return 8*BITS_PER_UNIT;
892     case V8TImode: return 16*BITS_PER_UNIT;
893     case V64SImode: return 4*BITS_PER_UNIT;
894     case V2SFmode: return 4*BITS_PER_UNIT;
895     case V4SFmode: return 4*BITS_PER_UNIT;
896     case V2DFmode: return 8*BITS_PER_UNIT;
897     case V8SFmode: return 4*BITS_PER_UNIT;
898     case V4DFmode: return 8*BITS_PER_UNIT;
899     case V2TFmode: return 16*BITS_PER_UNIT;
900     case V16SFmode: return 4*BITS_PER_UNIT;
901     case V8DFmode: return 8*BITS_PER_UNIT;
902     case V4TFmode: return 16*BITS_PER_UNIT;
903     case V32SFmode: return 4*BITS_PER_UNIT;
904     case V16DFmode: return 8*BITS_PER_UNIT;
905     case V8TFmode: return 16*BITS_PER_UNIT;
906     case V64SFmode: return 4*BITS_PER_UNIT;
907     case V32DFmode: return 8*BITS_PER_UNIT;
908     case V16TFmode: return 16*BITS_PER_UNIT;
909     default: return mode_unit_precision[mode];
910     }
911 }
912 
913 #endif /* GCC_VERSION >= 4001 */
914 
915 #endif /* insn-modes.h */
916