insn-modes.h revision 1.3
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
11enum 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
267inline __attribute__((__always_inline__))
268#else
269extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
270#endif
271unsigned short
272mode_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
372inline __attribute__((__always_inline__))
373#else
374extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
375#endif
376unsigned char
377mode_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
477inline __attribute__((__always_inline__))
478#else
479extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
480#endif
481unsigned char
482mode_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
582inline __attribute__((__always_inline__))
583#else
584extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
585#endif
586unsigned char
587mode_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
687inline __attribute__((__always_inline__))
688#else
689extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
690#endif
691unsigned short
692mode_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