xref: /netbsd-src/external/gpl3/gcc.old/usr.bin/gcc/arch/powerpc64/insn-modes.h (revision 7d9adb1cf1208cc639e60b5f98d03edabb5b0742)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.87 2016/03/17 23:41:21 mrg Exp  */
3 /* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp  */
4 
5 /* Generated automatically from machmode.def and config/rs6000/rs6000-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   CCUNSmode,               /* config/rs6000/rs6000-modes.def:32 */
20 #define HAVE_CCUNSmode
21   CCFPmode,                /* config/rs6000/rs6000-modes.def:33 */
22 #define HAVE_CCFPmode
23   CCEQmode,                /* config/rs6000/rs6000-modes.def:34 */
24 #define HAVE_CCEQmode
25   BImode,                  /* machmode.def:179 */
26 #define HAVE_BImode
27   QImode,                  /* machmode.def:187 */
28 #define HAVE_QImode
29   HImode,                  /* machmode.def:188 */
30 #define HAVE_HImode
31   SImode,                  /* machmode.def:189 */
32 #define HAVE_SImode
33   DImode,                  /* machmode.def:190 */
34 #define HAVE_DImode
35   TImode,                  /* machmode.def:191 */
36 #define HAVE_TImode
37   PTImode,                 /* config/rs6000/rs6000-modes.def:49 */
38 #define HAVE_PTImode
39   QQmode,                  /* machmode.def:217 */
40 #define HAVE_QQmode
41   HQmode,                  /* machmode.def:218 */
42 #define HAVE_HQmode
43   SQmode,                  /* machmode.def:219 */
44 #define HAVE_SQmode
45   DQmode,                  /* machmode.def:220 */
46 #define HAVE_DQmode
47   TQmode,                  /* machmode.def:221 */
48 #define HAVE_TQmode
49   UQQmode,                 /* machmode.def:223 */
50 #define HAVE_UQQmode
51   UHQmode,                 /* machmode.def:224 */
52 #define HAVE_UHQmode
53   USQmode,                 /* machmode.def:225 */
54 #define HAVE_USQmode
55   UDQmode,                 /* machmode.def:226 */
56 #define HAVE_UDQmode
57   UTQmode,                 /* machmode.def:227 */
58 #define HAVE_UTQmode
59   HAmode,                  /* machmode.def:229 */
60 #define HAVE_HAmode
61   SAmode,                  /* machmode.def:230 */
62 #define HAVE_SAmode
63   DAmode,                  /* machmode.def:231 */
64 #define HAVE_DAmode
65   TAmode,                  /* machmode.def:232 */
66 #define HAVE_TAmode
67   UHAmode,                 /* machmode.def:234 */
68 #define HAVE_UHAmode
69   USAmode,                 /* machmode.def:235 */
70 #define HAVE_USAmode
71   UDAmode,                 /* machmode.def:236 */
72 #define HAVE_UDAmode
73   UTAmode,                 /* machmode.def:237 */
74 #define HAVE_UTAmode
75   SFmode,                  /* machmode.def:209 */
76 #define HAVE_SFmode
77   DFmode,                  /* machmode.def:210 */
78 #define HAVE_DFmode
79   TFmode,                  /* config/rs6000/rs6000-modes.def:23 */
80 #define HAVE_TFmode
81   SDmode,                  /* machmode.def:249 */
82 #define HAVE_SDmode
83   DDmode,                  /* machmode.def:250 */
84 #define HAVE_DDmode
85   TDmode,                  /* machmode.def:251 */
86 #define HAVE_TDmode
87   CQImode,                 /* machmode.def:245 */
88 #define HAVE_CQImode
89   CHImode,                 /* machmode.def:245 */
90 #define HAVE_CHImode
91   CSImode,                 /* machmode.def:245 */
92 #define HAVE_CSImode
93   CDImode,                 /* machmode.def:245 */
94 #define HAVE_CDImode
95   CTImode,                 /* machmode.def:245 */
96 #define HAVE_CTImode
97   SCmode,                  /* machmode.def:246 */
98 #define HAVE_SCmode
99   DCmode,                  /* machmode.def:246 */
100 #define HAVE_DCmode
101   TCmode,                  /* machmode.def:246 */
102 #define HAVE_TCmode
103   V8QImode,                /* config/rs6000/rs6000-modes.def:37 */
104 #define HAVE_V8QImode
105   V4HImode,                /* config/rs6000/rs6000-modes.def:37 */
106 #define HAVE_V4HImode
107   V2SImode,                /* config/rs6000/rs6000-modes.def:37 */
108 #define HAVE_V2SImode
109   V1DImode,                /* config/rs6000/rs6000-modes.def:40 */
110 #define HAVE_V1DImode
111   V16QImode,               /* config/rs6000/rs6000-modes.def:38 */
112 #define HAVE_V16QImode
113   V8HImode,                /* config/rs6000/rs6000-modes.def:38 */
114 #define HAVE_V8HImode
115   V4SImode,                /* config/rs6000/rs6000-modes.def:38 */
116 #define HAVE_V4SImode
117   V2DImode,                /* config/rs6000/rs6000-modes.def:38 */
118 #define HAVE_V2DImode
119   V1TImode,                /* config/rs6000/rs6000-modes.def:41 */
120 #define HAVE_V1TImode
121   V32QImode,               /* config/rs6000/rs6000-modes.def:39 */
122 #define HAVE_V32QImode
123   V16HImode,               /* config/rs6000/rs6000-modes.def:39 */
124 #define HAVE_V16HImode
125   V8SImode,                /* config/rs6000/rs6000-modes.def:39 */
126 #define HAVE_V8SImode
127   V4DImode,                /* config/rs6000/rs6000-modes.def:39 */
128 #define HAVE_V4DImode
129   V2TImode,                /* config/rs6000/rs6000-modes.def:39 */
130 #define HAVE_V2TImode
131   V2SFmode,                /* config/rs6000/rs6000-modes.def:42 */
132 #define HAVE_V2SFmode
133   V4SFmode,                /* config/rs6000/rs6000-modes.def:43 */
134 #define HAVE_V4SFmode
135   V2DFmode,                /* config/rs6000/rs6000-modes.def:43 */
136 #define HAVE_V2DFmode
137   V8SFmode,                /* config/rs6000/rs6000-modes.def:44 */
138 #define HAVE_V8SFmode
139   V4DFmode,                /* config/rs6000/rs6000-modes.def:44 */
140 #define HAVE_V4DFmode
141   V2TFmode,                /* config/rs6000/rs6000-modes.def:44 */
142 #define HAVE_V2TFmode
143   MAX_MACHINE_MODE,
144 
145   MIN_MODE_RANDOM = VOIDmode,
146   MAX_MODE_RANDOM = BLKmode,
147 
148   MIN_MODE_CC = CCmode,
149   MAX_MODE_CC = CCEQmode,
150 
151   MIN_MODE_INT = QImode,
152   MAX_MODE_INT = TImode,
153 
154   MIN_MODE_PARTIAL_INT = PTImode,
155   MAX_MODE_PARTIAL_INT = PTImode,
156 
157   MIN_MODE_POINTER_BOUNDS = VOIDmode,
158   MAX_MODE_POINTER_BOUNDS = VOIDmode,
159 
160   MIN_MODE_FRACT = QQmode,
161   MAX_MODE_FRACT = TQmode,
162 
163   MIN_MODE_UFRACT = UQQmode,
164   MAX_MODE_UFRACT = UTQmode,
165 
166   MIN_MODE_ACCUM = HAmode,
167   MAX_MODE_ACCUM = TAmode,
168 
169   MIN_MODE_UACCUM = UHAmode,
170   MAX_MODE_UACCUM = UTAmode,
171 
172   MIN_MODE_FLOAT = SFmode,
173   MAX_MODE_FLOAT = TFmode,
174 
175   MIN_MODE_DECIMAL_FLOAT = SDmode,
176   MAX_MODE_DECIMAL_FLOAT = TDmode,
177 
178   MIN_MODE_COMPLEX_INT = CQImode,
179   MAX_MODE_COMPLEX_INT = CTImode,
180 
181   MIN_MODE_COMPLEX_FLOAT = SCmode,
182   MAX_MODE_COMPLEX_FLOAT = TCmode,
183 
184   MIN_MODE_VECTOR_INT = V8QImode,
185   MAX_MODE_VECTOR_INT = V2TImode,
186 
187   MIN_MODE_VECTOR_FRACT = VOIDmode,
188   MAX_MODE_VECTOR_FRACT = VOIDmode,
189 
190   MIN_MODE_VECTOR_UFRACT = VOIDmode,
191   MAX_MODE_VECTOR_UFRACT = VOIDmode,
192 
193   MIN_MODE_VECTOR_ACCUM = VOIDmode,
194   MAX_MODE_VECTOR_ACCUM = VOIDmode,
195 
196   MIN_MODE_VECTOR_UACCUM = VOIDmode,
197   MAX_MODE_VECTOR_UACCUM = VOIDmode,
198 
199   MIN_MODE_VECTOR_FLOAT = V2SFmode,
200   MAX_MODE_VECTOR_FLOAT = V2TFmode,
201 
202   NUM_MACHINE_MODES = MAX_MACHINE_MODE
203 };
204 
205 #define CONST_MODE_SIZE const
206 #define CONST_MODE_BASE_ALIGN const
207 #define CONST_MODE_IBIT const
208 #define CONST_MODE_FBIT const
209 
210 #define BITS_PER_UNIT (8)
211 #define MAX_BITSIZE_MODE_ANY_INT (16*BITS_PER_UNIT)
212 #define MAX_BITSIZE_MODE_ANY_MODE (32*BITS_PER_UNIT)
213 #define NUM_INT_N_ENTS 1
214 
215 #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
216 
217 #ifdef __cplusplus
218 inline __attribute__((__always_inline__))
219 #else
220 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
221 #endif
222 unsigned char
223 mode_size_inline (machine_mode mode)
224 {
225   extern const unsigned char mode_size[NUM_MACHINE_MODES];
226   switch (mode)
227     {
228     case VOIDmode: return 0;
229     case BLKmode: return 0;
230     case CCmode: return 4;
231     case CCUNSmode: return 4;
232     case CCFPmode: return 4;
233     case CCEQmode: return 4;
234     case BImode: return 1;
235     case QImode: return 1;
236     case HImode: return 2;
237     case SImode: return 4;
238     case DImode: return 8;
239     case TImode: return 16;
240     case PTImode: return 16;
241     case QQmode: return 1;
242     case HQmode: return 2;
243     case SQmode: return 4;
244     case DQmode: return 8;
245     case TQmode: return 16;
246     case UQQmode: return 1;
247     case UHQmode: return 2;
248     case USQmode: return 4;
249     case UDQmode: return 8;
250     case UTQmode: return 16;
251     case HAmode: return 2;
252     case SAmode: return 4;
253     case DAmode: return 8;
254     case TAmode: return 16;
255     case UHAmode: return 2;
256     case USAmode: return 4;
257     case UDAmode: return 8;
258     case UTAmode: return 16;
259     case SFmode: return 4;
260     case DFmode: return 8;
261     case TFmode: return 16;
262     case SDmode: return 4;
263     case DDmode: return 8;
264     case TDmode: return 16;
265     case CQImode: return 2;
266     case CHImode: return 4;
267     case CSImode: return 8;
268     case CDImode: return 16;
269     case CTImode: return 32;
270     case SCmode: return 8;
271     case DCmode: return 16;
272     case TCmode: return 32;
273     case V8QImode: return 8;
274     case V4HImode: return 8;
275     case V2SImode: return 8;
276     case V1DImode: return 8;
277     case V16QImode: return 16;
278     case V8HImode: return 16;
279     case V4SImode: return 16;
280     case V2DImode: return 16;
281     case V1TImode: return 16;
282     case V32QImode: return 32;
283     case V16HImode: return 32;
284     case V8SImode: return 32;
285     case V4DImode: return 32;
286     case V2TImode: return 32;
287     case V2SFmode: return 8;
288     case V4SFmode: return 16;
289     case V2DFmode: return 16;
290     case V8SFmode: return 32;
291     case V4DFmode: return 32;
292     case V2TFmode: return 32;
293     default: return mode_size[mode];
294     }
295 }
296 
297 #ifdef __cplusplus
298 inline __attribute__((__always_inline__))
299 #else
300 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
301 #endif
302 unsigned char
303 mode_nunits_inline (machine_mode mode)
304 {
305   extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
306   switch (mode)
307     {
308     case VOIDmode: return 0;
309     case BLKmode: return 0;
310     case CCmode: return 1;
311     case CCUNSmode: return 1;
312     case CCFPmode: return 1;
313     case CCEQmode: return 1;
314     case BImode: return 1;
315     case QImode: return 1;
316     case HImode: return 1;
317     case SImode: return 1;
318     case DImode: return 1;
319     case TImode: return 1;
320     case PTImode: return 1;
321     case QQmode: return 1;
322     case HQmode: return 1;
323     case SQmode: return 1;
324     case DQmode: return 1;
325     case TQmode: return 1;
326     case UQQmode: return 1;
327     case UHQmode: return 1;
328     case USQmode: return 1;
329     case UDQmode: return 1;
330     case UTQmode: return 1;
331     case HAmode: return 1;
332     case SAmode: return 1;
333     case DAmode: return 1;
334     case TAmode: return 1;
335     case UHAmode: return 1;
336     case USAmode: return 1;
337     case UDAmode: return 1;
338     case UTAmode: return 1;
339     case SFmode: return 1;
340     case DFmode: return 1;
341     case TFmode: return 1;
342     case SDmode: return 1;
343     case DDmode: return 1;
344     case TDmode: return 1;
345     case CQImode: return 2;
346     case CHImode: return 2;
347     case CSImode: return 2;
348     case CDImode: return 2;
349     case CTImode: return 2;
350     case SCmode: return 2;
351     case DCmode: return 2;
352     case TCmode: return 2;
353     case V8QImode: return 8;
354     case V4HImode: return 4;
355     case V2SImode: return 2;
356     case V1DImode: return 1;
357     case V16QImode: return 16;
358     case V8HImode: return 8;
359     case V4SImode: return 4;
360     case V2DImode: return 2;
361     case V1TImode: return 1;
362     case V32QImode: return 32;
363     case V16HImode: return 16;
364     case V8SImode: return 8;
365     case V4DImode: return 4;
366     case V2TImode: return 2;
367     case V2SFmode: return 2;
368     case V4SFmode: return 4;
369     case V2DFmode: return 2;
370     case V8SFmode: return 8;
371     case V4DFmode: return 4;
372     case V2TFmode: return 2;
373     default: return mode_nunits[mode];
374     }
375 }
376 
377 #ifdef __cplusplus
378 inline __attribute__((__always_inline__))
379 #else
380 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
381 #endif
382 unsigned char
383 mode_inner_inline (machine_mode mode)
384 {
385   extern const unsigned char mode_inner[NUM_MACHINE_MODES];
386   switch (mode)
387     {
388     case VOIDmode: return VOIDmode;
389     case BLKmode: return VOIDmode;
390     case CCmode: return VOIDmode;
391     case CCUNSmode: return VOIDmode;
392     case CCFPmode: return VOIDmode;
393     case CCEQmode: return VOIDmode;
394     case BImode: return VOIDmode;
395     case QImode: return VOIDmode;
396     case HImode: return VOIDmode;
397     case SImode: return VOIDmode;
398     case DImode: return VOIDmode;
399     case TImode: return VOIDmode;
400     case PTImode: return VOIDmode;
401     case QQmode: return VOIDmode;
402     case HQmode: return VOIDmode;
403     case SQmode: return VOIDmode;
404     case DQmode: return VOIDmode;
405     case TQmode: return VOIDmode;
406     case UQQmode: return VOIDmode;
407     case UHQmode: return VOIDmode;
408     case USQmode: return VOIDmode;
409     case UDQmode: return VOIDmode;
410     case UTQmode: return VOIDmode;
411     case HAmode: return VOIDmode;
412     case SAmode: return VOIDmode;
413     case DAmode: return VOIDmode;
414     case TAmode: return VOIDmode;
415     case UHAmode: return VOIDmode;
416     case USAmode: return VOIDmode;
417     case UDAmode: return VOIDmode;
418     case UTAmode: return VOIDmode;
419     case SFmode: return VOIDmode;
420     case DFmode: return VOIDmode;
421     case TFmode: return VOIDmode;
422     case SDmode: return VOIDmode;
423     case DDmode: return VOIDmode;
424     case TDmode: return VOIDmode;
425     case CQImode: return QImode;
426     case CHImode: return HImode;
427     case CSImode: return SImode;
428     case CDImode: return DImode;
429     case CTImode: return TImode;
430     case SCmode: return SFmode;
431     case DCmode: return DFmode;
432     case TCmode: return TFmode;
433     case V8QImode: return QImode;
434     case V4HImode: return HImode;
435     case V2SImode: return SImode;
436     case V1DImode: return DImode;
437     case V16QImode: return QImode;
438     case V8HImode: return HImode;
439     case V4SImode: return SImode;
440     case V2DImode: return DImode;
441     case V1TImode: return TImode;
442     case V32QImode: return QImode;
443     case V16HImode: return HImode;
444     case V8SImode: return SImode;
445     case V4DImode: return DImode;
446     case V2TImode: return TImode;
447     case V2SFmode: return SFmode;
448     case V4SFmode: return SFmode;
449     case V2DFmode: return DFmode;
450     case V8SFmode: return SFmode;
451     case V4DFmode: return DFmode;
452     case V2TFmode: return TFmode;
453     default: return mode_inner[mode];
454     }
455 }
456 
457 #endif /* GCC_VERSION >= 4001 */
458 
459 #endif /* insn-modes.h */
460