xref: /netbsd-src/external/gpl3/gcc.old/usr.bin/gcc/arch/arm/insn-modes.h (revision e6c7e151de239c49d2e38720a061ed9d1fa99309)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.99 2019/02/04 01:46:59 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/arm/arm-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   CC_NOOVmode,             /* config/arm/arm-modes.def:43 */
20 #define HAVE_CC_NOOVmode
21   CC_Zmode,                /* config/arm/arm-modes.def:44 */
22 #define HAVE_CC_Zmode
23   CC_CZmode,               /* config/arm/arm-modes.def:45 */
24 #define HAVE_CC_CZmode
25   CC_NCVmode,              /* config/arm/arm-modes.def:46 */
26 #define HAVE_CC_NCVmode
27   CC_SWPmode,              /* config/arm/arm-modes.def:47 */
28 #define HAVE_CC_SWPmode
29   CCFPmode,                /* config/arm/arm-modes.def:48 */
30 #define HAVE_CCFPmode
31   CCFPEmode,               /* config/arm/arm-modes.def:49 */
32 #define HAVE_CCFPEmode
33   CC_DNEmode,              /* config/arm/arm-modes.def:50 */
34 #define HAVE_CC_DNEmode
35   CC_DEQmode,              /* config/arm/arm-modes.def:51 */
36 #define HAVE_CC_DEQmode
37   CC_DLEmode,              /* config/arm/arm-modes.def:52 */
38 #define HAVE_CC_DLEmode
39   CC_DLTmode,              /* config/arm/arm-modes.def:53 */
40 #define HAVE_CC_DLTmode
41   CC_DGEmode,              /* config/arm/arm-modes.def:54 */
42 #define HAVE_CC_DGEmode
43   CC_DGTmode,              /* config/arm/arm-modes.def:55 */
44 #define HAVE_CC_DGTmode
45   CC_DLEUmode,             /* config/arm/arm-modes.def:56 */
46 #define HAVE_CC_DLEUmode
47   CC_DLTUmode,             /* config/arm/arm-modes.def:57 */
48 #define HAVE_CC_DLTUmode
49   CC_DGEUmode,             /* config/arm/arm-modes.def:58 */
50 #define HAVE_CC_DGEUmode
51   CC_DGTUmode,             /* config/arm/arm-modes.def:59 */
52 #define HAVE_CC_DGTUmode
53   CC_Cmode,                /* config/arm/arm-modes.def:60 */
54 #define HAVE_CC_Cmode
55   CC_Nmode,                /* config/arm/arm-modes.def:61 */
56 #define HAVE_CC_Nmode
57   CC_Vmode,                /* config/arm/arm-modes.def:62 */
58 #define HAVE_CC_Vmode
59   BImode,                  /* machmode.def:179 */
60 #define HAVE_BImode
61   QImode,                  /* machmode.def:187 */
62 #define HAVE_QImode
63   HImode,                  /* machmode.def:188 */
64 #define HAVE_HImode
65   SImode,                  /* machmode.def:189 */
66 #define HAVE_SImode
67   DImode,                  /* machmode.def:190 */
68 #define HAVE_DImode
69   TImode,                  /* machmode.def:191 */
70 #define HAVE_TImode
71   EImode,                  /* config/arm/arm-modes.def:79 */
72 #define HAVE_EImode
73   OImode,                  /* config/arm/arm-modes.def:80 */
74 #define HAVE_OImode
75   CImode,                  /* config/arm/arm-modes.def:81 */
76 #define HAVE_CImode
77   XImode,                  /* config/arm/arm-modes.def:82 */
78 #define HAVE_XImode
79   QQmode,                  /* machmode.def:217 */
80 #define HAVE_QQmode
81   HQmode,                  /* machmode.def:218 */
82 #define HAVE_HQmode
83   SQmode,                  /* machmode.def:219 */
84 #define HAVE_SQmode
85   DQmode,                  /* machmode.def:220 */
86 #define HAVE_DQmode
87   TQmode,                  /* machmode.def:221 */
88 #define HAVE_TQmode
89   UQQmode,                 /* machmode.def:223 */
90 #define HAVE_UQQmode
91   UHQmode,                 /* machmode.def:224 */
92 #define HAVE_UHQmode
93   USQmode,                 /* machmode.def:225 */
94 #define HAVE_USQmode
95   UDQmode,                 /* machmode.def:226 */
96 #define HAVE_UDQmode
97   UTQmode,                 /* machmode.def:227 */
98 #define HAVE_UTQmode
99   HAmode,                  /* machmode.def:229 */
100 #define HAVE_HAmode
101   SAmode,                  /* machmode.def:230 */
102 #define HAVE_SAmode
103   DAmode,                  /* machmode.def:231 */
104 #define HAVE_DAmode
105   TAmode,                  /* machmode.def:232 */
106 #define HAVE_TAmode
107   UHAmode,                 /* machmode.def:234 */
108 #define HAVE_UHAmode
109   USAmode,                 /* machmode.def:235 */
110 #define HAVE_USAmode
111   UDAmode,                 /* machmode.def:236 */
112 #define HAVE_UDAmode
113   UTAmode,                 /* machmode.def:237 */
114 #define HAVE_UTAmode
115   HFmode,                  /* config/arm/arm-modes.def:26 */
116 #define HAVE_HFmode
117   SFmode,                  /* machmode.def:209 */
118 #define HAVE_SFmode
119   DFmode,                  /* machmode.def:210 */
120 #define HAVE_DFmode
121   SDmode,                  /* machmode.def:250 */
122 #define HAVE_SDmode
123   DDmode,                  /* machmode.def:251 */
124 #define HAVE_DDmode
125   TDmode,                  /* machmode.def:252 */
126 #define HAVE_TDmode
127   CQImode,                 /* machmode.def:245 */
128 #define HAVE_CQImode
129   CHImode,                 /* machmode.def:245 */
130 #define HAVE_CHImode
131   CSImode,                 /* machmode.def:245 */
132 #define HAVE_CSImode
133   CDImode,                 /* machmode.def:245 */
134 #define HAVE_CDImode
135   CTImode,                 /* machmode.def:245 */
136 #define HAVE_CTImode
137   CEImode,                 /* machmode.def:245 */
138 #define HAVE_CEImode
139   COImode,                 /* machmode.def:245 */
140 #define HAVE_COImode
141   CCImode,                 /* machmode.def:245 */
142 #define HAVE_CCImode
143   CXImode,                 /* machmode.def:245 */
144 #define HAVE_CXImode
145   HCmode,                  /* machmode.def:247 */
146 #define HAVE_HCmode
147   SCmode,                  /* machmode.def:247 */
148 #define HAVE_SCmode
149   DCmode,                  /* machmode.def:247 */
150 #define HAVE_DCmode
151   V4QImode,                /* config/arm/arm-modes.def:65 */
152 #define HAVE_V4QImode
153   V2HImode,                /* config/arm/arm-modes.def:65 */
154 #define HAVE_V2HImode
155   V8QImode,                /* config/arm/arm-modes.def:66 */
156 #define HAVE_V8QImode
157   V4HImode,                /* config/arm/arm-modes.def:66 */
158 #define HAVE_V4HImode
159   V2SImode,                /* config/arm/arm-modes.def:66 */
160 #define HAVE_V2SImode
161   V16QImode,               /* config/arm/arm-modes.def:67 */
162 #define HAVE_V16QImode
163   V8HImode,                /* config/arm/arm-modes.def:67 */
164 #define HAVE_V8HImode
165   V4SImode,                /* config/arm/arm-modes.def:67 */
166 #define HAVE_V4SImode
167   V2DImode,                /* config/arm/arm-modes.def:67 */
168 #define HAVE_V2DImode
169   V4QQmode,                /* config/arm/arm-modes.def:72 */
170 #define HAVE_V4QQmode
171   V2HQmode,                /* config/arm/arm-modes.def:72 */
172 #define HAVE_V2HQmode
173   V4UQQmode,               /* config/arm/arm-modes.def:73 */
174 #define HAVE_V4UQQmode
175   V2UHQmode,               /* config/arm/arm-modes.def:73 */
176 #define HAVE_V2UHQmode
177   V2HAmode,                /* config/arm/arm-modes.def:74 */
178 #define HAVE_V2HAmode
179   V2UHAmode,               /* config/arm/arm-modes.def:75 */
180 #define HAVE_V2UHAmode
181   V4HFmode,                /* config/arm/arm-modes.def:68 */
182 #define HAVE_V4HFmode
183   V2SFmode,                /* config/arm/arm-modes.def:68 */
184 #define HAVE_V2SFmode
185   V8HFmode,                /* config/arm/arm-modes.def:69 */
186 #define HAVE_V8HFmode
187   V4SFmode,                /* config/arm/arm-modes.def:69 */
188 #define HAVE_V4SFmode
189   V2DFmode,                /* config/arm/arm-modes.def:69 */
190 #define HAVE_V2DFmode
191   MAX_MACHINE_MODE,
192 
193   MIN_MODE_RANDOM = VOIDmode,
194   MAX_MODE_RANDOM = BLKmode,
195 
196   MIN_MODE_CC = CCmode,
197   MAX_MODE_CC = CC_Vmode,
198 
199   MIN_MODE_INT = QImode,
200   MAX_MODE_INT = XImode,
201 
202   MIN_MODE_PARTIAL_INT = VOIDmode,
203   MAX_MODE_PARTIAL_INT = VOIDmode,
204 
205   MIN_MODE_POINTER_BOUNDS = VOIDmode,
206   MAX_MODE_POINTER_BOUNDS = VOIDmode,
207 
208   MIN_MODE_FRACT = QQmode,
209   MAX_MODE_FRACT = TQmode,
210 
211   MIN_MODE_UFRACT = UQQmode,
212   MAX_MODE_UFRACT = UTQmode,
213 
214   MIN_MODE_ACCUM = HAmode,
215   MAX_MODE_ACCUM = TAmode,
216 
217   MIN_MODE_UACCUM = UHAmode,
218   MAX_MODE_UACCUM = UTAmode,
219 
220   MIN_MODE_FLOAT = HFmode,
221   MAX_MODE_FLOAT = DFmode,
222 
223   MIN_MODE_DECIMAL_FLOAT = SDmode,
224   MAX_MODE_DECIMAL_FLOAT = TDmode,
225 
226   MIN_MODE_COMPLEX_INT = CQImode,
227   MAX_MODE_COMPLEX_INT = CXImode,
228 
229   MIN_MODE_COMPLEX_FLOAT = HCmode,
230   MAX_MODE_COMPLEX_FLOAT = DCmode,
231 
232   MIN_MODE_VECTOR_INT = V4QImode,
233   MAX_MODE_VECTOR_INT = V2DImode,
234 
235   MIN_MODE_VECTOR_FRACT = V4QQmode,
236   MAX_MODE_VECTOR_FRACT = V2HQmode,
237 
238   MIN_MODE_VECTOR_UFRACT = V4UQQmode,
239   MAX_MODE_VECTOR_UFRACT = V2UHQmode,
240 
241   MIN_MODE_VECTOR_ACCUM = V2HAmode,
242   MAX_MODE_VECTOR_ACCUM = V2HAmode,
243 
244   MIN_MODE_VECTOR_UACCUM = V2UHAmode,
245   MAX_MODE_VECTOR_UACCUM = V2UHAmode,
246 
247   MIN_MODE_VECTOR_FLOAT = V4HFmode,
248   MAX_MODE_VECTOR_FLOAT = V2DFmode,
249 
250   NUM_MACHINE_MODES = MAX_MACHINE_MODE
251 };
252 
253 #define CONST_MODE_SIZE const
254 #define CONST_MODE_UNIT_SIZE const
255 #define CONST_MODE_BASE_ALIGN const
256 #define CONST_MODE_IBIT const
257 #define CONST_MODE_FBIT const
258 
259 #define BITS_PER_UNIT (8)
260 #define MAX_BITSIZE_MODE_ANY_INT (64*BITS_PER_UNIT)
261 #define MAX_BITSIZE_MODE_ANY_MODE (128*BITS_PER_UNIT)
262 #define NUM_INT_N_ENTS 1
263 
264 #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
265 
266 #ifdef __cplusplus
267 inline __attribute__((__always_inline__))
268 #else
269 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
270 #endif
271 unsigned short
272 mode_size_inline (machine_mode mode)
273 {
274   extern const unsigned short mode_size[NUM_MACHINE_MODES];
275   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
276   switch (mode)
277     {
278     case VOIDmode: return 0;
279     case BLKmode: return 0;
280     case CCmode: return 4;
281     case CC_NOOVmode: return 4;
282     case CC_Zmode: return 4;
283     case CC_CZmode: return 4;
284     case CC_NCVmode: return 4;
285     case CC_SWPmode: return 4;
286     case CCFPmode: return 4;
287     case CCFPEmode: return 4;
288     case CC_DNEmode: return 4;
289     case CC_DEQmode: return 4;
290     case CC_DLEmode: return 4;
291     case CC_DLTmode: return 4;
292     case CC_DGEmode: return 4;
293     case CC_DGTmode: return 4;
294     case CC_DLEUmode: return 4;
295     case CC_DLTUmode: return 4;
296     case CC_DGEUmode: return 4;
297     case CC_DGTUmode: return 4;
298     case CC_Cmode: return 4;
299     case CC_Nmode: return 4;
300     case CC_Vmode: return 4;
301     case BImode: return 1;
302     case QImode: return 1;
303     case HImode: return 2;
304     case SImode: return 4;
305     case DImode: return 8;
306     case TImode: return 16;
307     case EImode: return 24;
308     case OImode: return 32;
309     case CImode: return 48;
310     case XImode: return 64;
311     case QQmode: return 1;
312     case HQmode: return 2;
313     case SQmode: return 4;
314     case DQmode: return 8;
315     case TQmode: return 16;
316     case UQQmode: return 1;
317     case UHQmode: return 2;
318     case USQmode: return 4;
319     case UDQmode: return 8;
320     case UTQmode: return 16;
321     case HAmode: return 2;
322     case SAmode: return 4;
323     case DAmode: return 8;
324     case TAmode: return 16;
325     case UHAmode: return 2;
326     case USAmode: return 4;
327     case UDAmode: return 8;
328     case UTAmode: return 16;
329     case HFmode: return 2;
330     case SFmode: return 4;
331     case DFmode: return 8;
332     case SDmode: return 4;
333     case DDmode: return 8;
334     case TDmode: return 16;
335     case CQImode: return 2;
336     case CHImode: return 4;
337     case CSImode: return 8;
338     case CDImode: return 16;
339     case CTImode: return 32;
340     case CEImode: return 48;
341     case COImode: return 64;
342     case CCImode: return 96;
343     case CXImode: return 128;
344     case HCmode: return 4;
345     case SCmode: return 8;
346     case DCmode: return 16;
347     case V4QImode: return 4;
348     case V2HImode: return 4;
349     case V8QImode: return 8;
350     case V4HImode: return 8;
351     case V2SImode: return 8;
352     case V16QImode: return 16;
353     case V8HImode: return 16;
354     case V4SImode: return 16;
355     case V2DImode: return 16;
356     case V4QQmode: return 4;
357     case V2HQmode: return 4;
358     case V4UQQmode: return 4;
359     case V2UHQmode: return 4;
360     case V2HAmode: return 4;
361     case V2UHAmode: return 4;
362     case V4HFmode: return 8;
363     case V2SFmode: return 8;
364     case V8HFmode: return 16;
365     case V4SFmode: return 16;
366     case V2DFmode: return 16;
367     default: return mode_size[mode];
368     }
369 }
370 
371 #ifdef __cplusplus
372 inline __attribute__((__always_inline__))
373 #else
374 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
375 #endif
376 unsigned char
377 mode_nunits_inline (machine_mode mode)
378 {
379   extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
380   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
381   switch (mode)
382     {
383     case VOIDmode: return 0;
384     case BLKmode: return 0;
385     case CCmode: return 1;
386     case CC_NOOVmode: return 1;
387     case CC_Zmode: return 1;
388     case CC_CZmode: return 1;
389     case CC_NCVmode: return 1;
390     case CC_SWPmode: return 1;
391     case CCFPmode: return 1;
392     case CCFPEmode: return 1;
393     case CC_DNEmode: return 1;
394     case CC_DEQmode: return 1;
395     case CC_DLEmode: return 1;
396     case CC_DLTmode: return 1;
397     case CC_DGEmode: return 1;
398     case CC_DGTmode: return 1;
399     case CC_DLEUmode: return 1;
400     case CC_DLTUmode: return 1;
401     case CC_DGEUmode: return 1;
402     case CC_DGTUmode: return 1;
403     case CC_Cmode: return 1;
404     case CC_Nmode: return 1;
405     case CC_Vmode: return 1;
406     case BImode: return 1;
407     case QImode: return 1;
408     case HImode: return 1;
409     case SImode: return 1;
410     case DImode: return 1;
411     case TImode: return 1;
412     case EImode: return 1;
413     case OImode: return 1;
414     case CImode: return 1;
415     case XImode: return 1;
416     case QQmode: return 1;
417     case HQmode: return 1;
418     case SQmode: return 1;
419     case DQmode: return 1;
420     case TQmode: return 1;
421     case UQQmode: return 1;
422     case UHQmode: return 1;
423     case USQmode: return 1;
424     case UDQmode: return 1;
425     case UTQmode: return 1;
426     case HAmode: return 1;
427     case SAmode: return 1;
428     case DAmode: return 1;
429     case TAmode: return 1;
430     case UHAmode: return 1;
431     case USAmode: return 1;
432     case UDAmode: return 1;
433     case UTAmode: return 1;
434     case HFmode: return 1;
435     case SFmode: return 1;
436     case DFmode: return 1;
437     case SDmode: return 1;
438     case DDmode: return 1;
439     case TDmode: return 1;
440     case CQImode: return 2;
441     case CHImode: return 2;
442     case CSImode: return 2;
443     case CDImode: return 2;
444     case CTImode: return 2;
445     case CEImode: return 2;
446     case COImode: return 2;
447     case CCImode: return 2;
448     case CXImode: return 2;
449     case HCmode: return 2;
450     case SCmode: return 2;
451     case DCmode: return 2;
452     case V4QImode: return 4;
453     case V2HImode: return 2;
454     case V8QImode: return 8;
455     case V4HImode: return 4;
456     case V2SImode: return 2;
457     case V16QImode: return 16;
458     case V8HImode: return 8;
459     case V4SImode: return 4;
460     case V2DImode: return 2;
461     case V4QQmode: return 4;
462     case V2HQmode: return 2;
463     case V4UQQmode: return 4;
464     case V2UHQmode: return 2;
465     case V2HAmode: return 2;
466     case V2UHAmode: return 2;
467     case V4HFmode: return 4;
468     case V2SFmode: return 2;
469     case V8HFmode: return 8;
470     case V4SFmode: return 4;
471     case V2DFmode: return 2;
472     default: return mode_nunits[mode];
473     }
474 }
475 
476 #ifdef __cplusplus
477 inline __attribute__((__always_inline__))
478 #else
479 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
480 #endif
481 unsigned char
482 mode_inner_inline (machine_mode mode)
483 {
484   extern const unsigned char mode_inner[NUM_MACHINE_MODES];
485   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
486   switch (mode)
487     {
488     case VOIDmode: return VOIDmode;
489     case BLKmode: return BLKmode;
490     case CCmode: return CCmode;
491     case CC_NOOVmode: return CC_NOOVmode;
492     case CC_Zmode: return CC_Zmode;
493     case CC_CZmode: return CC_CZmode;
494     case CC_NCVmode: return CC_NCVmode;
495     case CC_SWPmode: return CC_SWPmode;
496     case CCFPmode: return CCFPmode;
497     case CCFPEmode: return CCFPEmode;
498     case CC_DNEmode: return CC_DNEmode;
499     case CC_DEQmode: return CC_DEQmode;
500     case CC_DLEmode: return CC_DLEmode;
501     case CC_DLTmode: return CC_DLTmode;
502     case CC_DGEmode: return CC_DGEmode;
503     case CC_DGTmode: return CC_DGTmode;
504     case CC_DLEUmode: return CC_DLEUmode;
505     case CC_DLTUmode: return CC_DLTUmode;
506     case CC_DGEUmode: return CC_DGEUmode;
507     case CC_DGTUmode: return CC_DGTUmode;
508     case CC_Cmode: return CC_Cmode;
509     case CC_Nmode: return CC_Nmode;
510     case CC_Vmode: return CC_Vmode;
511     case BImode: return BImode;
512     case QImode: return QImode;
513     case HImode: return HImode;
514     case SImode: return SImode;
515     case DImode: return DImode;
516     case TImode: return TImode;
517     case EImode: return EImode;
518     case OImode: return OImode;
519     case CImode: return CImode;
520     case XImode: return XImode;
521     case QQmode: return QQmode;
522     case HQmode: return HQmode;
523     case SQmode: return SQmode;
524     case DQmode: return DQmode;
525     case TQmode: return TQmode;
526     case UQQmode: return UQQmode;
527     case UHQmode: return UHQmode;
528     case USQmode: return USQmode;
529     case UDQmode: return UDQmode;
530     case UTQmode: return UTQmode;
531     case HAmode: return HAmode;
532     case SAmode: return SAmode;
533     case DAmode: return DAmode;
534     case TAmode: return TAmode;
535     case UHAmode: return UHAmode;
536     case USAmode: return USAmode;
537     case UDAmode: return UDAmode;
538     case UTAmode: return UTAmode;
539     case HFmode: return HFmode;
540     case SFmode: return SFmode;
541     case DFmode: return DFmode;
542     case SDmode: return SDmode;
543     case DDmode: return DDmode;
544     case TDmode: return TDmode;
545     case CQImode: return QImode;
546     case CHImode: return HImode;
547     case CSImode: return SImode;
548     case CDImode: return DImode;
549     case CTImode: return TImode;
550     case CEImode: return EImode;
551     case COImode: return OImode;
552     case CCImode: return CImode;
553     case CXImode: return XImode;
554     case HCmode: return HFmode;
555     case SCmode: return SFmode;
556     case DCmode: return DFmode;
557     case V4QImode: return QImode;
558     case V2HImode: return HImode;
559     case V8QImode: return QImode;
560     case V4HImode: return HImode;
561     case V2SImode: return SImode;
562     case V16QImode: return QImode;
563     case V8HImode: return HImode;
564     case V4SImode: return SImode;
565     case V2DImode: return DImode;
566     case V4QQmode: return QQmode;
567     case V2HQmode: return HQmode;
568     case V4UQQmode: return UQQmode;
569     case V2UHQmode: return UHQmode;
570     case V2HAmode: return HAmode;
571     case V2UHAmode: return UHAmode;
572     case V4HFmode: return HFmode;
573     case V2SFmode: return SFmode;
574     case V8HFmode: return HFmode;
575     case V4SFmode: return SFmode;
576     case V2DFmode: return DFmode;
577     default: return mode_inner[mode];
578     }
579 }
580 
581 #ifdef __cplusplus
582 inline __attribute__((__always_inline__))
583 #else
584 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
585 #endif
586 unsigned char
587 mode_unit_size_inline (machine_mode mode)
588 {
589   extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES];
590   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
591   switch (mode)
592     {
593     case VOIDmode: return 0;
594     case BLKmode: return 0;
595     case CCmode: return 4;
596     case CC_NOOVmode: return 4;
597     case CC_Zmode: return 4;
598     case CC_CZmode: return 4;
599     case CC_NCVmode: return 4;
600     case CC_SWPmode: return 4;
601     case CCFPmode: return 4;
602     case CCFPEmode: return 4;
603     case CC_DNEmode: return 4;
604     case CC_DEQmode: return 4;
605     case CC_DLEmode: return 4;
606     case CC_DLTmode: return 4;
607     case CC_DGEmode: return 4;
608     case CC_DGTmode: return 4;
609     case CC_DLEUmode: return 4;
610     case CC_DLTUmode: return 4;
611     case CC_DGEUmode: return 4;
612     case CC_DGTUmode: return 4;
613     case CC_Cmode: return 4;
614     case CC_Nmode: return 4;
615     case CC_Vmode: return 4;
616     case BImode: return 1;
617     case QImode: return 1;
618     case HImode: return 2;
619     case SImode: return 4;
620     case DImode: return 8;
621     case TImode: return 16;
622     case EImode: return 24;
623     case OImode: return 32;
624     case CImode: return 48;
625     case XImode: return 64;
626     case QQmode: return 1;
627     case HQmode: return 2;
628     case SQmode: return 4;
629     case DQmode: return 8;
630     case TQmode: return 16;
631     case UQQmode: return 1;
632     case UHQmode: return 2;
633     case USQmode: return 4;
634     case UDQmode: return 8;
635     case UTQmode: return 16;
636     case HAmode: return 2;
637     case SAmode: return 4;
638     case DAmode: return 8;
639     case TAmode: return 16;
640     case UHAmode: return 2;
641     case USAmode: return 4;
642     case UDAmode: return 8;
643     case UTAmode: return 16;
644     case HFmode: return 2;
645     case SFmode: return 4;
646     case DFmode: return 8;
647     case SDmode: return 4;
648     case DDmode: return 8;
649     case TDmode: return 16;
650     case CQImode: return 1;
651     case CHImode: return 2;
652     case CSImode: return 4;
653     case CDImode: return 8;
654     case CTImode: return 16;
655     case CEImode: return 24;
656     case COImode: return 32;
657     case CCImode: return 48;
658     case CXImode: return 64;
659     case HCmode: return 2;
660     case SCmode: return 4;
661     case DCmode: return 8;
662     case V4QImode: return 1;
663     case V2HImode: return 2;
664     case V8QImode: return 1;
665     case V4HImode: return 2;
666     case V2SImode: return 4;
667     case V16QImode: return 1;
668     case V8HImode: return 2;
669     case V4SImode: return 4;
670     case V2DImode: return 8;
671     case V4QQmode: return 1;
672     case V2HQmode: return 2;
673     case V4UQQmode: return 1;
674     case V2UHQmode: return 2;
675     case V2HAmode: return 2;
676     case V2UHAmode: return 2;
677     case V4HFmode: return 2;
678     case V2SFmode: return 4;
679     case V8HFmode: return 2;
680     case V4SFmode: return 4;
681     case V2DFmode: return 8;
682     default: return mode_unit_size[mode];
683     }
684 }
685 
686 #ifdef __cplusplus
687 inline __attribute__((__always_inline__))
688 #else
689 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
690 #endif
691 unsigned short
692 mode_unit_precision_inline (machine_mode mode)
693 {
694   extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES];
695   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
696   switch (mode)
697     {
698     case VOIDmode: return 0;
699     case BLKmode: return 0;
700     case CCmode: return 4*BITS_PER_UNIT;
701     case CC_NOOVmode: return 4*BITS_PER_UNIT;
702     case CC_Zmode: return 4*BITS_PER_UNIT;
703     case CC_CZmode: return 4*BITS_PER_UNIT;
704     case CC_NCVmode: return 4*BITS_PER_UNIT;
705     case CC_SWPmode: return 4*BITS_PER_UNIT;
706     case CCFPmode: return 4*BITS_PER_UNIT;
707     case CCFPEmode: return 4*BITS_PER_UNIT;
708     case CC_DNEmode: return 4*BITS_PER_UNIT;
709     case CC_DEQmode: return 4*BITS_PER_UNIT;
710     case CC_DLEmode: return 4*BITS_PER_UNIT;
711     case CC_DLTmode: return 4*BITS_PER_UNIT;
712     case CC_DGEmode: return 4*BITS_PER_UNIT;
713     case CC_DGTmode: return 4*BITS_PER_UNIT;
714     case CC_DLEUmode: return 4*BITS_PER_UNIT;
715     case CC_DLTUmode: return 4*BITS_PER_UNIT;
716     case CC_DGEUmode: return 4*BITS_PER_UNIT;
717     case CC_DGTUmode: return 4*BITS_PER_UNIT;
718     case CC_Cmode: return 4*BITS_PER_UNIT;
719     case CC_Nmode: return 4*BITS_PER_UNIT;
720     case CC_Vmode: return 4*BITS_PER_UNIT;
721     case BImode: return 1;
722     case QImode: return 1*BITS_PER_UNIT;
723     case HImode: return 2*BITS_PER_UNIT;
724     case SImode: return 4*BITS_PER_UNIT;
725     case DImode: return 8*BITS_PER_UNIT;
726     case TImode: return 16*BITS_PER_UNIT;
727     case EImode: return 24*BITS_PER_UNIT;
728     case OImode: return 32*BITS_PER_UNIT;
729     case CImode: return 48*BITS_PER_UNIT;
730     case XImode: return 64*BITS_PER_UNIT;
731     case QQmode: return 1*BITS_PER_UNIT;
732     case HQmode: return 2*BITS_PER_UNIT;
733     case SQmode: return 4*BITS_PER_UNIT;
734     case DQmode: return 8*BITS_PER_UNIT;
735     case TQmode: return 16*BITS_PER_UNIT;
736     case UQQmode: return 1*BITS_PER_UNIT;
737     case UHQmode: return 2*BITS_PER_UNIT;
738     case USQmode: return 4*BITS_PER_UNIT;
739     case UDQmode: return 8*BITS_PER_UNIT;
740     case UTQmode: return 16*BITS_PER_UNIT;
741     case HAmode: return 2*BITS_PER_UNIT;
742     case SAmode: return 4*BITS_PER_UNIT;
743     case DAmode: return 8*BITS_PER_UNIT;
744     case TAmode: return 16*BITS_PER_UNIT;
745     case UHAmode: return 2*BITS_PER_UNIT;
746     case USAmode: return 4*BITS_PER_UNIT;
747     case UDAmode: return 8*BITS_PER_UNIT;
748     case UTAmode: return 16*BITS_PER_UNIT;
749     case HFmode: return 2*BITS_PER_UNIT;
750     case SFmode: return 4*BITS_PER_UNIT;
751     case DFmode: return 8*BITS_PER_UNIT;
752     case SDmode: return 4*BITS_PER_UNIT;
753     case DDmode: return 8*BITS_PER_UNIT;
754     case TDmode: return 16*BITS_PER_UNIT;
755     case CQImode: return 1*BITS_PER_UNIT;
756     case CHImode: return 2*BITS_PER_UNIT;
757     case CSImode: return 4*BITS_PER_UNIT;
758     case CDImode: return 8*BITS_PER_UNIT;
759     case CTImode: return 16*BITS_PER_UNIT;
760     case CEImode: return 24*BITS_PER_UNIT;
761     case COImode: return 32*BITS_PER_UNIT;
762     case CCImode: return 48*BITS_PER_UNIT;
763     case CXImode: return 64*BITS_PER_UNIT;
764     case HCmode: return 2*BITS_PER_UNIT;
765     case SCmode: return 4*BITS_PER_UNIT;
766     case DCmode: return 8*BITS_PER_UNIT;
767     case V4QImode: return 1*BITS_PER_UNIT;
768     case V2HImode: return 2*BITS_PER_UNIT;
769     case V8QImode: return 1*BITS_PER_UNIT;
770     case V4HImode: return 2*BITS_PER_UNIT;
771     case V2SImode: return 4*BITS_PER_UNIT;
772     case V16QImode: return 1*BITS_PER_UNIT;
773     case V8HImode: return 2*BITS_PER_UNIT;
774     case V4SImode: return 4*BITS_PER_UNIT;
775     case V2DImode: return 8*BITS_PER_UNIT;
776     case V4QQmode: return 1*BITS_PER_UNIT;
777     case V2HQmode: return 2*BITS_PER_UNIT;
778     case V4UQQmode: return 1*BITS_PER_UNIT;
779     case V2UHQmode: return 2*BITS_PER_UNIT;
780     case V2HAmode: return 2*BITS_PER_UNIT;
781     case V2UHAmode: return 2*BITS_PER_UNIT;
782     case V4HFmode: return 2*BITS_PER_UNIT;
783     case V2SFmode: return 4*BITS_PER_UNIT;
784     case V8HFmode: return 2*BITS_PER_UNIT;
785     case V4SFmode: return 4*BITS_PER_UNIT;
786     case V2DFmode: return 8*BITS_PER_UNIT;
787     default: return mode_unit_precision[mode];
788     }
789 }
790 
791 #endif /* GCC_VERSION >= 4001 */
792 
793 #endif /* insn-modes.h */
794