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