Branch data Line data Source code
1 : : /* Generated automatically from machmode.def and config/i386/i386-modes.def
2 : : by genmodes. */
3 : :
4 : : #ifndef GCC_INSN_MODES_INLINE_H
5 : : #define GCC_INSN_MODES_INLINE_H
6 : :
7 : : #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
8 : :
9 : : #ifdef __cplusplus
10 : : inline __attribute__((__always_inline__))
11 : : #else
12 : : extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
13 : : #endif
14 : : poly_uint16
15 : 289027 : mode_size_inline (machine_mode mode)
16 : : {
17 : 289027 : extern poly_uint16 mode_size[NUM_MACHINE_MODES];
18 : 288935 : gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
19 : 231487 : switch (mode)
20 : : {
21 : : case E_VOIDmode: return 0;
22 : : case E_BLKmode: return 0;
23 : : case E_CCmode: return 4;
24 : : case E_CCGCmode: return 4;
25 : : case E_CCGOCmode: return 4;
26 : : case E_CCNOmode: return 4;
27 : : case E_CCGZmode: return 4;
28 : : case E_CCAmode: return 4;
29 : : case E_CCCmode: return 4;
30 : : case E_CCOmode: return 4;
31 : : case E_CCPmode: return 4;
32 : : case E_CCSmode: return 4;
33 : : case E_CCZmode: return 4;
34 : : case E_CCFPmode: return 4;
35 : : case E_BImode: return 1;
36 : : case E_QImode: return 1;
37 : : case E_HImode: return 2;
38 : : case E_SImode: return 4;
39 : : case E_DImode: return 8;
40 : : case E_TImode: return 16;
41 : : case E_OImode: return 32;
42 : : case E_XImode: return 64;
43 : : case E_P2QImode: return 2;
44 : : case E_P2HImode: return 4;
45 : : case E_POImode: return 32;
46 : : case E_QQmode: return 1;
47 : : case E_HQmode: return 2;
48 : : case E_SQmode: return 4;
49 : : case E_DQmode: return 8;
50 : : case E_TQmode: return 16;
51 : : case E_UQQmode: return 1;
52 : : case E_UHQmode: return 2;
53 : : case E_USQmode: return 4;
54 : : case E_UDQmode: return 8;
55 : : case E_UTQmode: return 16;
56 : : case E_HAmode: return 2;
57 : : case E_SAmode: return 4;
58 : : case E_DAmode: return 8;
59 : : case E_TAmode: return 16;
60 : : case E_UHAmode: return 2;
61 : : case E_USAmode: return 4;
62 : : case E_UDAmode: return 8;
63 : : case E_UTAmode: return 16;
64 : : case E_HFmode: return 2;
65 : : case E_BFmode: return 2;
66 : : case E_SFmode: return 4;
67 : : case E_DFmode: return 8;
68 : : case E_TFmode: return 16;
69 : : case E_SDmode: return 4;
70 : : case E_DDmode: return 8;
71 : : case E_TDmode: return 16;
72 : : case E_CQImode: return 2;
73 : : case E_CP2QImode: return 4;
74 : : case E_CHImode: return 4;
75 : : case E_CP2HImode: return 8;
76 : : case E_CSImode: return 8;
77 : : case E_CDImode: return 16;
78 : : case E_CTImode: return 32;
79 : : case E_CPOImode: return 64;
80 : : case E_COImode: return 64;
81 : : case E_CXImode: return 128;
82 : : case E_BCmode: return 4;
83 : : case E_HCmode: return 4;
84 : : case E_SCmode: return 8;
85 : : case E_DCmode: return 16;
86 : : case E_TCmode: return 32;
87 : : case E_V2QImode: return 2;
88 : : case E_V4QImode: return 4;
89 : : case E_V2HImode: return 4;
90 : : case E_V1SImode: return 4;
91 : : case E_V8QImode: return 8;
92 : : case E_V4HImode: return 8;
93 : : case E_V2SImode: return 8;
94 : : case E_V1DImode: return 8;
95 : : case E_V12QImode: return 12;
96 : : case E_V6HImode: return 12;
97 : 0 : case E_V14QImode: return 14;
98 : : case E_V16QImode: return 16;
99 : : case E_V8HImode: return 16;
100 : : case E_V4SImode: return 16;
101 : : case E_V2DImode: return 16;
102 : : case E_V1TImode: return 16;
103 : : case E_V32QImode: return 32;
104 : : case E_V16HImode: return 32;
105 : : case E_V8SImode: return 32;
106 : : case E_V4DImode: return 32;
107 : : case E_V2TImode: return 32;
108 : : case E_V64QImode: return 64;
109 : : case E_V32HImode: return 64;
110 : : case E_V16SImode: return 64;
111 : : case E_V8DImode: return 64;
112 : : case E_V4TImode: return 64;
113 : : case E_V128QImode: return 128;
114 : : case E_V64HImode: return 128;
115 : : case E_V32SImode: return 128;
116 : : case E_V16DImode: return 128;
117 : : case E_V8TImode: return 128;
118 : : case E_V2HFmode: return 4;
119 : : case E_V2BFmode: return 4;
120 : : case E_V4BFmode: return 8;
121 : : case E_V4HFmode: return 8;
122 : : case E_V2SFmode: return 8;
123 : : case E_V6HFmode: return 12;
124 : : case E_V8BFmode: return 16;
125 : : case E_V8HFmode: return 16;
126 : : case E_V4SFmode: return 16;
127 : : case E_V2DFmode: return 16;
128 : : case E_V16BFmode: return 32;
129 : : case E_V16HFmode: return 32;
130 : : case E_V8SFmode: return 32;
131 : : case E_V4DFmode: return 32;
132 : : case E_V2TFmode: return 32;
133 : : case E_V32BFmode: return 64;
134 : : case E_V32HFmode: return 64;
135 : : case E_V16SFmode: return 64;
136 : : case E_V8DFmode: return 64;
137 : : case E_V4TFmode: return 64;
138 : : case E_V64BFmode: return 128;
139 : : case E_V64HFmode: return 128;
140 : : case E_V32SFmode: return 128;
141 : : case E_V16DFmode: return 128;
142 : : case E_V8TFmode: return 128;
143 : 231487 : default: return mode_size[mode];
144 : : }
145 : : }
146 : :
147 : : #ifdef __cplusplus
148 : : inline __attribute__((__always_inline__))
149 : : #else
150 : : extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
151 : : #endif
152 : : poly_uint16
153 : 0 : mode_nunits_inline (machine_mode mode)
154 : : {
155 : 0 : extern const poly_uint16 mode_nunits[NUM_MACHINE_MODES];
156 : 0 : switch (mode)
157 : : {
158 : : case E_VOIDmode: return 0;
159 : : case E_BLKmode: return 0;
160 : : case E_CCmode: return 1;
161 : : case E_CCGCmode: return 1;
162 : : case E_CCGOCmode: return 1;
163 : : case E_CCNOmode: return 1;
164 : : case E_CCGZmode: return 1;
165 : : case E_CCAmode: return 1;
166 : : case E_CCCmode: return 1;
167 : : case E_CCOmode: return 1;
168 : : case E_CCPmode: return 1;
169 : : case E_CCSmode: return 1;
170 : : case E_CCZmode: return 1;
171 : : case E_CCFPmode: return 1;
172 : : case E_BImode: return 1;
173 : : case E_QImode: return 1;
174 : : case E_HImode: return 1;
175 : : case E_SImode: return 1;
176 : : case E_DImode: return 1;
177 : : case E_TImode: return 1;
178 : : case E_OImode: return 1;
179 : : case E_XImode: return 1;
180 : : case E_P2QImode: return 1;
181 : : case E_P2HImode: return 1;
182 : : case E_POImode: return 1;
183 : : case E_QQmode: return 1;
184 : : case E_HQmode: return 1;
185 : : case E_SQmode: return 1;
186 : : case E_DQmode: return 1;
187 : : case E_TQmode: return 1;
188 : : case E_UQQmode: return 1;
189 : : case E_UHQmode: return 1;
190 : : case E_USQmode: return 1;
191 : : case E_UDQmode: return 1;
192 : : case E_UTQmode: return 1;
193 : : case E_HAmode: return 1;
194 : : case E_SAmode: return 1;
195 : : case E_DAmode: return 1;
196 : : case E_TAmode: return 1;
197 : : case E_UHAmode: return 1;
198 : : case E_USAmode: return 1;
199 : : case E_UDAmode: return 1;
200 : : case E_UTAmode: return 1;
201 : : case E_HFmode: return 1;
202 : : case E_BFmode: return 1;
203 : : case E_SFmode: return 1;
204 : : case E_DFmode: return 1;
205 : : case E_XFmode: return 1;
206 : : case E_TFmode: return 1;
207 : : case E_SDmode: return 1;
208 : : case E_DDmode: return 1;
209 : : case E_TDmode: return 1;
210 : : case E_CQImode: return 2;
211 : : case E_CP2QImode: return 2;
212 : : case E_CHImode: return 2;
213 : : case E_CP2HImode: return 2;
214 : : case E_CSImode: return 2;
215 : : case E_CDImode: return 2;
216 : : case E_CTImode: return 2;
217 : : case E_CPOImode: return 2;
218 : : case E_COImode: return 2;
219 : : case E_CXImode: return 2;
220 : : case E_BCmode: return 2;
221 : : case E_HCmode: return 2;
222 : : case E_SCmode: return 2;
223 : : case E_DCmode: return 2;
224 : : case E_XCmode: return 2;
225 : : case E_TCmode: return 2;
226 : : case E_V2QImode: return 2;
227 : : case E_V4QImode: return 4;
228 : : case E_V2HImode: return 2;
229 : : case E_V1SImode: return 1;
230 : : case E_V8QImode: return 8;
231 : : case E_V4HImode: return 4;
232 : : case E_V2SImode: return 2;
233 : : case E_V1DImode: return 1;
234 : : case E_V12QImode: return 12;
235 : : case E_V6HImode: return 6;
236 : : case E_V14QImode: return 14;
237 : : case E_V16QImode: return 16;
238 : : case E_V8HImode: return 8;
239 : : case E_V4SImode: return 4;
240 : : case E_V2DImode: return 2;
241 : : case E_V1TImode: return 1;
242 : : case E_V32QImode: return 32;
243 : : case E_V16HImode: return 16;
244 : : case E_V8SImode: return 8;
245 : : case E_V4DImode: return 4;
246 : : case E_V2TImode: return 2;
247 : : case E_V64QImode: return 64;
248 : : case E_V32HImode: return 32;
249 : : case E_V16SImode: return 16;
250 : : case E_V8DImode: return 8;
251 : : case E_V4TImode: return 4;
252 : : case E_V128QImode: return 128;
253 : : case E_V64HImode: return 64;
254 : : case E_V32SImode: return 32;
255 : : case E_V16DImode: return 16;
256 : : case E_V8TImode: return 8;
257 : : case E_V2HFmode: return 2;
258 : : case E_V2BFmode: return 2;
259 : : case E_V4BFmode: return 4;
260 : : case E_V4HFmode: return 4;
261 : : case E_V2SFmode: return 2;
262 : : case E_V6HFmode: return 6;
263 : : case E_V8BFmode: return 8;
264 : : case E_V8HFmode: return 8;
265 : : case E_V4SFmode: return 4;
266 : : case E_V2DFmode: return 2;
267 : : case E_V16BFmode: return 16;
268 : : case E_V16HFmode: return 16;
269 : : case E_V8SFmode: return 8;
270 : : case E_V4DFmode: return 4;
271 : : case E_V2TFmode: return 2;
272 : : case E_V32BFmode: return 32;
273 : : case E_V32HFmode: return 32;
274 : : case E_V16SFmode: return 16;
275 : : case E_V8DFmode: return 8;
276 : : case E_V4TFmode: return 4;
277 : : case E_V64BFmode: return 64;
278 : : case E_V64HFmode: return 64;
279 : : case E_V32SFmode: return 32;
280 : : case E_V16DFmode: return 16;
281 : : case E_V8TFmode: return 8;
282 : 0 : default: return mode_nunits[mode];
283 : : }
284 : : }
285 : :
286 : : #ifdef __cplusplus
287 : : inline __attribute__((__always_inline__))
288 : : #else
289 : : extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
290 : : #endif
291 : : unsigned short
292 : 161 : mode_inner_inline (machine_mode mode)
293 : : {
294 : 161 : extern const unsigned short mode_inner[NUM_MACHINE_MODES];
295 : 0 : gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
296 : 161 : switch (mode)
297 : : {
298 : : case E_VOIDmode: return E_VOIDmode;
299 : : case E_BLKmode: return E_BLKmode;
300 : : case E_CCmode: return E_CCmode;
301 : : case E_CCGCmode: return E_CCGCmode;
302 : : case E_CCGOCmode: return E_CCGOCmode;
303 : : case E_CCNOmode: return E_CCNOmode;
304 : : case E_CCGZmode: return E_CCGZmode;
305 : : case E_CCAmode: return E_CCAmode;
306 : : case E_CCCmode: return E_CCCmode;
307 : : case E_CCOmode: return E_CCOmode;
308 : : case E_CCPmode: return E_CCPmode;
309 : : case E_CCSmode: return E_CCSmode;
310 : : case E_CCZmode: return E_CCZmode;
311 : : case E_CCFPmode: return E_CCFPmode;
312 : : case E_BImode: return E_BImode;
313 : : case E_QImode: return E_QImode;
314 : : case E_HImode: return E_HImode;
315 : : case E_SImode: return E_SImode;
316 : : case E_DImode: return E_DImode;
317 : : case E_TImode: return E_TImode;
318 : : case E_OImode: return E_OImode;
319 : : case E_XImode: return E_XImode;
320 : : case E_P2QImode: return E_P2QImode;
321 : : case E_P2HImode: return E_P2HImode;
322 : : case E_POImode: return E_POImode;
323 : : case E_QQmode: return E_QQmode;
324 : : case E_HQmode: return E_HQmode;
325 : : case E_SQmode: return E_SQmode;
326 : : case E_DQmode: return E_DQmode;
327 : : case E_TQmode: return E_TQmode;
328 : : case E_UQQmode: return E_UQQmode;
329 : : case E_UHQmode: return E_UHQmode;
330 : : case E_USQmode: return E_USQmode;
331 : : case E_UDQmode: return E_UDQmode;
332 : : case E_UTQmode: return E_UTQmode;
333 : : case E_HAmode: return E_HAmode;
334 : : case E_SAmode: return E_SAmode;
335 : : case E_DAmode: return E_DAmode;
336 : : case E_TAmode: return E_TAmode;
337 : : case E_UHAmode: return E_UHAmode;
338 : : case E_USAmode: return E_USAmode;
339 : : case E_UDAmode: return E_UDAmode;
340 : : case E_UTAmode: return E_UTAmode;
341 : : case E_HFmode: return E_HFmode;
342 : : case E_BFmode: return E_BFmode;
343 : : case E_SFmode: return E_SFmode;
344 : : case E_DFmode: return E_DFmode;
345 : : case E_XFmode: return E_XFmode;
346 : : case E_TFmode: return E_TFmode;
347 : : case E_SDmode: return E_SDmode;
348 : : case E_DDmode: return E_DDmode;
349 : : case E_TDmode: return E_TDmode;
350 : : case E_CQImode: return E_QImode;
351 : : case E_CP2QImode: return E_P2QImode;
352 : : case E_CHImode: return E_HImode;
353 : : case E_CP2HImode: return E_P2HImode;
354 : : case E_CSImode: return E_SImode;
355 : : case E_CDImode: return E_DImode;
356 : : case E_CTImode: return E_TImode;
357 : : case E_CPOImode: return E_POImode;
358 : : case E_COImode: return E_OImode;
359 : : case E_CXImode: return E_XImode;
360 : : case E_BCmode: return E_BFmode;
361 : : case E_HCmode: return E_HFmode;
362 : : case E_SCmode: return E_SFmode;
363 : : case E_DCmode: return E_DFmode;
364 : : case E_XCmode: return E_XFmode;
365 : : case E_TCmode: return E_TFmode;
366 : : case E_V2QImode: return E_QImode;
367 : : case E_V4QImode: return E_QImode;
368 : : case E_V2HImode: return E_HImode;
369 : : case E_V1SImode: return E_SImode;
370 : : case E_V8QImode: return E_QImode;
371 : : case E_V4HImode: return E_HImode;
372 : : case E_V2SImode: return E_SImode;
373 : : case E_V1DImode: return E_DImode;
374 : : case E_V12QImode: return E_QImode;
375 : : case E_V6HImode: return E_HImode;
376 : : case E_V14QImode: return E_QImode;
377 : : case E_V16QImode: return E_QImode;
378 : : case E_V8HImode: return E_HImode;
379 : : case E_V4SImode: return E_SImode;
380 : : case E_V2DImode: return E_DImode;
381 : : case E_V1TImode: return E_TImode;
382 : : case E_V32QImode: return E_QImode;
383 : : case E_V16HImode: return E_HImode;
384 : : case E_V8SImode: return E_SImode;
385 : : case E_V4DImode: return E_DImode;
386 : : case E_V2TImode: return E_TImode;
387 : : case E_V64QImode: return E_QImode;
388 : : case E_V32HImode: return E_HImode;
389 : : case E_V16SImode: return E_SImode;
390 : : case E_V8DImode: return E_DImode;
391 : : case E_V4TImode: return E_TImode;
392 : : case E_V128QImode: return E_QImode;
393 : : case E_V64HImode: return E_HImode;
394 : : case E_V32SImode: return E_SImode;
395 : : case E_V16DImode: return E_DImode;
396 : : case E_V8TImode: return E_TImode;
397 : : case E_V2HFmode: return E_HFmode;
398 : : case E_V2BFmode: return E_BFmode;
399 : : case E_V4BFmode: return E_BFmode;
400 : : case E_V4HFmode: return E_HFmode;
401 : : case E_V2SFmode: return E_SFmode;
402 : : case E_V6HFmode: return E_HFmode;
403 : : case E_V8BFmode: return E_BFmode;
404 : : case E_V8HFmode: return E_HFmode;
405 : : case E_V4SFmode: return E_SFmode;
406 : : case E_V2DFmode: return E_DFmode;
407 : : case E_V16BFmode: return E_BFmode;
408 : : case E_V16HFmode: return E_HFmode;
409 : : case E_V8SFmode: return E_SFmode;
410 : : case E_V4DFmode: return E_DFmode;
411 : : case E_V2TFmode: return E_TFmode;
412 : : case E_V32BFmode: return E_BFmode;
413 : : case E_V32HFmode: return E_HFmode;
414 : : case E_V16SFmode: return E_SFmode;
415 : : case E_V8DFmode: return E_DFmode;
416 : : case E_V4TFmode: return E_TFmode;
417 : : case E_V64BFmode: return E_BFmode;
418 : : case E_V64HFmode: return E_HFmode;
419 : : case E_V32SFmode: return E_SFmode;
420 : : case E_V16DFmode: return E_DFmode;
421 : : case E_V8TFmode: return E_TFmode;
422 : : default: return mode_inner[mode];
423 : : }
424 : : }
425 : :
426 : : #ifdef __cplusplus
427 : : inline __attribute__((__always_inline__))
428 : : #else
429 : : extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
430 : : #endif
431 : : unsigned char
432 : 0 : mode_unit_size_inline (machine_mode mode)
433 : : {
434 : 0 : extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES];
435 : 0 : gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
436 : 0 : switch (mode)
437 : : {
438 : : case E_VOIDmode: return 0;
439 : : case E_BLKmode: return 0;
440 : : case E_CCmode: return 4;
441 : : case E_CCGCmode: return 4;
442 : : case E_CCGOCmode: return 4;
443 : : case E_CCNOmode: return 4;
444 : : case E_CCGZmode: return 4;
445 : : case E_CCAmode: return 4;
446 : : case E_CCCmode: return 4;
447 : : case E_CCOmode: return 4;
448 : : case E_CCPmode: return 4;
449 : : case E_CCSmode: return 4;
450 : : case E_CCZmode: return 4;
451 : : case E_CCFPmode: return 4;
452 : : case E_BImode: return 1;
453 : : case E_QImode: return 1;
454 : : case E_HImode: return 2;
455 : : case E_SImode: return 4;
456 : : case E_DImode: return 8;
457 : : case E_TImode: return 16;
458 : : case E_OImode: return 32;
459 : : case E_XImode: return 64;
460 : : case E_P2QImode: return 2;
461 : : case E_P2HImode: return 4;
462 : : case E_POImode: return 32;
463 : : case E_QQmode: return 1;
464 : : case E_HQmode: return 2;
465 : : case E_SQmode: return 4;
466 : : case E_DQmode: return 8;
467 : : case E_TQmode: return 16;
468 : : case E_UQQmode: return 1;
469 : : case E_UHQmode: return 2;
470 : : case E_USQmode: return 4;
471 : : case E_UDQmode: return 8;
472 : : case E_UTQmode: return 16;
473 : : case E_HAmode: return 2;
474 : : case E_SAmode: return 4;
475 : : case E_DAmode: return 8;
476 : : case E_TAmode: return 16;
477 : : case E_UHAmode: return 2;
478 : : case E_USAmode: return 4;
479 : : case E_UDAmode: return 8;
480 : : case E_UTAmode: return 16;
481 : : case E_HFmode: return 2;
482 : : case E_BFmode: return 2;
483 : : case E_SFmode: return 4;
484 : : case E_DFmode: return 8;
485 : : case E_TFmode: return 16;
486 : : case E_SDmode: return 4;
487 : : case E_DDmode: return 8;
488 : : case E_TDmode: return 16;
489 : : case E_CQImode: return 1;
490 : : case E_CP2QImode: return 2;
491 : : case E_CHImode: return 2;
492 : : case E_CP2HImode: return 4;
493 : : case E_CSImode: return 4;
494 : : case E_CDImode: return 8;
495 : : case E_CTImode: return 16;
496 : : case E_CPOImode: return 32;
497 : : case E_COImode: return 32;
498 : : case E_CXImode: return 64;
499 : : case E_BCmode: return 2;
500 : : case E_HCmode: return 2;
501 : : case E_SCmode: return 4;
502 : : case E_DCmode: return 8;
503 : : case E_TCmode: return 16;
504 : : case E_V2QImode: return 1;
505 : : case E_V4QImode: return 1;
506 : : case E_V2HImode: return 2;
507 : : case E_V1SImode: return 4;
508 : : case E_V8QImode: return 1;
509 : : case E_V4HImode: return 2;
510 : : case E_V2SImode: return 4;
511 : : case E_V1DImode: return 8;
512 : : case E_V12QImode: return 1;
513 : : case E_V6HImode: return 2;
514 : : case E_V14QImode: return 1;
515 : : case E_V16QImode: return 1;
516 : : case E_V8HImode: return 2;
517 : : case E_V4SImode: return 4;
518 : : case E_V2DImode: return 8;
519 : : case E_V1TImode: return 16;
520 : : case E_V32QImode: return 1;
521 : : case E_V16HImode: return 2;
522 : : case E_V8SImode: return 4;
523 : : case E_V4DImode: return 8;
524 : : case E_V2TImode: return 16;
525 : : case E_V64QImode: return 1;
526 : : case E_V32HImode: return 2;
527 : : case E_V16SImode: return 4;
528 : : case E_V8DImode: return 8;
529 : : case E_V4TImode: return 16;
530 : : case E_V128QImode: return 1;
531 : : case E_V64HImode: return 2;
532 : : case E_V32SImode: return 4;
533 : : case E_V16DImode: return 8;
534 : : case E_V8TImode: return 16;
535 : : case E_V2HFmode: return 2;
536 : : case E_V2BFmode: return 2;
537 : : case E_V4BFmode: return 2;
538 : : case E_V4HFmode: return 2;
539 : : case E_V2SFmode: return 4;
540 : : case E_V6HFmode: return 2;
541 : : case E_V8BFmode: return 2;
542 : : case E_V8HFmode: return 2;
543 : : case E_V4SFmode: return 4;
544 : : case E_V2DFmode: return 8;
545 : : case E_V16BFmode: return 2;
546 : : case E_V16HFmode: return 2;
547 : : case E_V8SFmode: return 4;
548 : : case E_V4DFmode: return 8;
549 : : case E_V2TFmode: return 16;
550 : : case E_V32BFmode: return 2;
551 : : case E_V32HFmode: return 2;
552 : : case E_V16SFmode: return 4;
553 : : case E_V8DFmode: return 8;
554 : : case E_V4TFmode: return 16;
555 : : case E_V64BFmode: return 2;
556 : : case E_V64HFmode: return 2;
557 : : case E_V32SFmode: return 4;
558 : : case E_V16DFmode: return 8;
559 : : case E_V8TFmode: return 16;
560 : 0 : default: return mode_unit_size[mode];
561 : : }
562 : : }
563 : :
564 : : #ifdef __cplusplus
565 : : inline __attribute__((__always_inline__))
566 : : #else
567 : : extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
568 : : #endif
569 : : unsigned short
570 : 0 : mode_unit_precision_inline (machine_mode mode)
571 : : {
572 : 0 : extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES];
573 : 0 : gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
574 : 0 : switch (mode)
575 : : {
576 : : case E_VOIDmode: return 0;
577 : : case E_BLKmode: return 0;
578 : : case E_CCmode: return 4*BITS_PER_UNIT;
579 : : case E_CCGCmode: return 4*BITS_PER_UNIT;
580 : : case E_CCGOCmode: return 4*BITS_PER_UNIT;
581 : : case E_CCNOmode: return 4*BITS_PER_UNIT;
582 : : case E_CCGZmode: return 4*BITS_PER_UNIT;
583 : : case E_CCAmode: return 4*BITS_PER_UNIT;
584 : : case E_CCCmode: return 4*BITS_PER_UNIT;
585 : : case E_CCOmode: return 4*BITS_PER_UNIT;
586 : : case E_CCPmode: return 4*BITS_PER_UNIT;
587 : : case E_CCSmode: return 4*BITS_PER_UNIT;
588 : : case E_CCZmode: return 4*BITS_PER_UNIT;
589 : : case E_CCFPmode: return 4*BITS_PER_UNIT;
590 : : case E_BImode: return 1;
591 : : case E_QImode: return 1*BITS_PER_UNIT;
592 : : case E_HImode: return 2*BITS_PER_UNIT;
593 : : case E_SImode: return 4*BITS_PER_UNIT;
594 : : case E_DImode: return 8*BITS_PER_UNIT;
595 : : case E_TImode: return 16*BITS_PER_UNIT;
596 : : case E_OImode: return 32*BITS_PER_UNIT;
597 : : case E_XImode: return 64*BITS_PER_UNIT;
598 : : case E_P2QImode: return 16;
599 : : case E_P2HImode: return 32;
600 : : case E_POImode: return 160;
601 : : case E_QQmode: return 1*BITS_PER_UNIT;
602 : : case E_HQmode: return 2*BITS_PER_UNIT;
603 : : case E_SQmode: return 4*BITS_PER_UNIT;
604 : : case E_DQmode: return 8*BITS_PER_UNIT;
605 : : case E_TQmode: return 16*BITS_PER_UNIT;
606 : : case E_UQQmode: return 1*BITS_PER_UNIT;
607 : : case E_UHQmode: return 2*BITS_PER_UNIT;
608 : : case E_USQmode: return 4*BITS_PER_UNIT;
609 : : case E_UDQmode: return 8*BITS_PER_UNIT;
610 : : case E_UTQmode: return 16*BITS_PER_UNIT;
611 : : case E_HAmode: return 2*BITS_PER_UNIT;
612 : : case E_SAmode: return 4*BITS_PER_UNIT;
613 : : case E_DAmode: return 8*BITS_PER_UNIT;
614 : : case E_TAmode: return 16*BITS_PER_UNIT;
615 : : case E_UHAmode: return 2*BITS_PER_UNIT;
616 : : case E_USAmode: return 4*BITS_PER_UNIT;
617 : : case E_UDAmode: return 8*BITS_PER_UNIT;
618 : : case E_UTAmode: return 16*BITS_PER_UNIT;
619 : : case E_HFmode: return 2*BITS_PER_UNIT;
620 : : case E_BFmode: return 2*BITS_PER_UNIT;
621 : : case E_SFmode: return 4*BITS_PER_UNIT;
622 : : case E_DFmode: return 8*BITS_PER_UNIT;
623 : : case E_XFmode: return 80;
624 : : case E_TFmode: return 16*BITS_PER_UNIT;
625 : : case E_SDmode: return 4*BITS_PER_UNIT;
626 : : case E_DDmode: return 8*BITS_PER_UNIT;
627 : : case E_TDmode: return 16*BITS_PER_UNIT;
628 : : case E_CQImode: return 1*BITS_PER_UNIT;
629 : : case E_CP2QImode: return 16;
630 : : case E_CHImode: return 2*BITS_PER_UNIT;
631 : : case E_CP2HImode: return 32;
632 : : case E_CSImode: return 4*BITS_PER_UNIT;
633 : : case E_CDImode: return 8*BITS_PER_UNIT;
634 : : case E_CTImode: return 16*BITS_PER_UNIT;
635 : : case E_CPOImode: return 160;
636 : : case E_COImode: return 32*BITS_PER_UNIT;
637 : : case E_CXImode: return 64*BITS_PER_UNIT;
638 : : case E_BCmode: return 2*BITS_PER_UNIT;
639 : : case E_HCmode: return 2*BITS_PER_UNIT;
640 : : case E_SCmode: return 4*BITS_PER_UNIT;
641 : : case E_DCmode: return 8*BITS_PER_UNIT;
642 : : case E_XCmode: return 80;
643 : : case E_TCmode: return 16*BITS_PER_UNIT;
644 : : case E_V2QImode: return 1*BITS_PER_UNIT;
645 : : case E_V4QImode: return 1*BITS_PER_UNIT;
646 : : case E_V2HImode: return 2*BITS_PER_UNIT;
647 : : case E_V1SImode: return 4*BITS_PER_UNIT;
648 : : case E_V8QImode: return 1*BITS_PER_UNIT;
649 : : case E_V4HImode: return 2*BITS_PER_UNIT;
650 : : case E_V2SImode: return 4*BITS_PER_UNIT;
651 : : case E_V1DImode: return 8*BITS_PER_UNIT;
652 : : case E_V12QImode: return 1*BITS_PER_UNIT;
653 : : case E_V6HImode: return 2*BITS_PER_UNIT;
654 : : case E_V14QImode: return 1*BITS_PER_UNIT;
655 : : case E_V16QImode: return 1*BITS_PER_UNIT;
656 : : case E_V8HImode: return 2*BITS_PER_UNIT;
657 : : case E_V4SImode: return 4*BITS_PER_UNIT;
658 : : case E_V2DImode: return 8*BITS_PER_UNIT;
659 : : case E_V1TImode: return 16*BITS_PER_UNIT;
660 : : case E_V32QImode: return 1*BITS_PER_UNIT;
661 : : case E_V16HImode: return 2*BITS_PER_UNIT;
662 : : case E_V8SImode: return 4*BITS_PER_UNIT;
663 : : case E_V4DImode: return 8*BITS_PER_UNIT;
664 : : case E_V2TImode: return 16*BITS_PER_UNIT;
665 : : case E_V64QImode: return 1*BITS_PER_UNIT;
666 : : case E_V32HImode: return 2*BITS_PER_UNIT;
667 : : case E_V16SImode: return 4*BITS_PER_UNIT;
668 : : case E_V8DImode: return 8*BITS_PER_UNIT;
669 : : case E_V4TImode: return 16*BITS_PER_UNIT;
670 : : case E_V128QImode: return 1*BITS_PER_UNIT;
671 : : case E_V64HImode: return 2*BITS_PER_UNIT;
672 : : case E_V32SImode: return 4*BITS_PER_UNIT;
673 : : case E_V16DImode: return 8*BITS_PER_UNIT;
674 : : case E_V8TImode: return 16*BITS_PER_UNIT;
675 : : case E_V2HFmode: return 2*BITS_PER_UNIT;
676 : : case E_V2BFmode: return 2*BITS_PER_UNIT;
677 : : case E_V4BFmode: return 2*BITS_PER_UNIT;
678 : : case E_V4HFmode: return 2*BITS_PER_UNIT;
679 : : case E_V2SFmode: return 4*BITS_PER_UNIT;
680 : : case E_V6HFmode: return 2*BITS_PER_UNIT;
681 : : case E_V8BFmode: return 2*BITS_PER_UNIT;
682 : : case E_V8HFmode: return 2*BITS_PER_UNIT;
683 : : case E_V4SFmode: return 4*BITS_PER_UNIT;
684 : : case E_V2DFmode: return 8*BITS_PER_UNIT;
685 : : case E_V16BFmode: return 2*BITS_PER_UNIT;
686 : : case E_V16HFmode: return 2*BITS_PER_UNIT;
687 : : case E_V8SFmode: return 4*BITS_PER_UNIT;
688 : : case E_V4DFmode: return 8*BITS_PER_UNIT;
689 : : case E_V2TFmode: return 16*BITS_PER_UNIT;
690 : : case E_V32BFmode: return 2*BITS_PER_UNIT;
691 : : case E_V32HFmode: return 2*BITS_PER_UNIT;
692 : : case E_V16SFmode: return 4*BITS_PER_UNIT;
693 : : case E_V8DFmode: return 8*BITS_PER_UNIT;
694 : : case E_V4TFmode: return 16*BITS_PER_UNIT;
695 : : case E_V64BFmode: return 2*BITS_PER_UNIT;
696 : : case E_V64HFmode: return 2*BITS_PER_UNIT;
697 : : case E_V32SFmode: return 4*BITS_PER_UNIT;
698 : : case E_V16DFmode: return 8*BITS_PER_UNIT;
699 : : case E_V8TFmode: return 16*BITS_PER_UNIT;
700 : : default: return mode_unit_precision[mode];
701 : : }
702 : : }
703 : :
704 : : #endif /* GCC_VERSION >= 4001 */
705 : :
706 : : #endif /* insn-modes-inline.h */
|