]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/arm/arm_mve_types.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / arm / arm_mve_types.h
1 /* Arm MVE intrinsics include file.
2
3 Copyright (C) 2020-2021 Free Software Foundation, Inc.
4 Contributed by Arm.
5
6 This file is part of GCC.
7
8 GCC is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
10 by the Free Software Foundation; either version 3, or (at your
11 option) any later version.
12
13 GCC is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GCC; see the file COPYING3. If not see
20 <http://www.gnu.org/licenses/>. */
21
22 #ifndef _GCC_ARM_MVE_TYPES_H
23 #define _GCC_ARM_MVE_TYPES_H
24
25 #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point. */
26 typedef __fp16 float16_t;
27 typedef float float32_t;
28 typedef __simd128_float16_t float16x8_t;
29 typedef __simd128_float32_t float32x4_t;
30
31 typedef struct { float16x8_t val[2]; } float16x8x2_t;
32 typedef struct { float16x8_t val[4]; } float16x8x4_t;
33 typedef struct { float32x4_t val[2]; } float32x4x2_t;
34 typedef struct { float32x4_t val[4]; } float32x4x4_t;
35 #endif
36
37 typedef uint16_t mve_pred16_t;
38 typedef __simd128_uint8_t uint8x16_t;
39 typedef __simd128_uint16_t uint16x8_t;
40 typedef __simd128_uint32_t uint32x4_t;
41 typedef __simd128_uint64_t uint64x2_t;
42 typedef __simd128_int8_t int8x16_t;
43 typedef __simd128_int16_t int16x8_t;
44 typedef __simd128_int32_t int32x4_t;
45 typedef __simd128_int64_t int64x2_t;
46
47 typedef struct { int16x8_t val[2]; } int16x8x2_t;
48 typedef struct { int16x8_t val[4]; } int16x8x4_t;
49 typedef struct { int32x4_t val[2]; } int32x4x2_t;
50 typedef struct { int32x4_t val[4]; } int32x4x4_t;
51 typedef struct { int8x16_t val[2]; } int8x16x2_t;
52 typedef struct { int8x16_t val[4]; } int8x16x4_t;
53 typedef struct { uint16x8_t val[2]; } uint16x8x2_t;
54 typedef struct { uint16x8_t val[4]; } uint16x8x4_t;
55 typedef struct { uint32x4_t val[2]; } uint32x4x2_t;
56 typedef struct { uint32x4_t val[4]; } uint32x4x4_t;
57 typedef struct { uint8x16_t val[2]; } uint8x16x2_t;
58 typedef struct { uint8x16_t val[4]; } uint8x16x4_t;
59
60 __extension__ extern __inline int16x8_t
61 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
62 __arm_vreinterpretq_s16_s32 (int32x4_t __a)
63 {
64 return (int16x8_t) __a;
65 }
66
67 __extension__ extern __inline int16x8_t
68 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
69 __arm_vreinterpretq_s16_s64 (int64x2_t __a)
70 {
71 return (int16x8_t) __a;
72 }
73
74 __extension__ extern __inline int16x8_t
75 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
76 __arm_vreinterpretq_s16_s8 (int8x16_t __a)
77 {
78 return (int16x8_t) __a;
79 }
80
81 __extension__ extern __inline int16x8_t
82 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
83 __arm_vreinterpretq_s16_u16 (uint16x8_t __a)
84 {
85 return (int16x8_t) __a;
86 }
87
88 __extension__ extern __inline int16x8_t
89 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
90 __arm_vreinterpretq_s16_u32 (uint32x4_t __a)
91 {
92 return (int16x8_t) __a;
93 }
94
95 __extension__ extern __inline int16x8_t
96 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
97 __arm_vreinterpretq_s16_u64 (uint64x2_t __a)
98 {
99 return (int16x8_t) __a;
100 }
101
102 __extension__ extern __inline int16x8_t
103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
104 __arm_vreinterpretq_s16_u8 (uint8x16_t __a)
105 {
106 return (int16x8_t) __a;
107 }
108
109 __extension__ extern __inline int32x4_t
110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
111 __arm_vreinterpretq_s32_s16 (int16x8_t __a)
112 {
113 return (int32x4_t) __a;
114 }
115
116 __extension__ extern __inline int32x4_t
117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
118 __arm_vreinterpretq_s32_s64 (int64x2_t __a)
119 {
120 return (int32x4_t) __a;
121 }
122
123 __extension__ extern __inline int32x4_t
124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
125 __arm_vreinterpretq_s32_s8 (int8x16_t __a)
126 {
127 return (int32x4_t) __a;
128 }
129
130 __extension__ extern __inline int32x4_t
131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
132 __arm_vreinterpretq_s32_u16 (uint16x8_t __a)
133 {
134 return (int32x4_t) __a;
135 }
136
137 __extension__ extern __inline int32x4_t
138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
139 __arm_vreinterpretq_s32_u32 (uint32x4_t __a)
140 {
141 return (int32x4_t) __a;
142 }
143
144 __extension__ extern __inline int32x4_t
145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
146 __arm_vreinterpretq_s32_u64 (uint64x2_t __a)
147 {
148 return (int32x4_t) __a;
149 }
150
151 __extension__ extern __inline int32x4_t
152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
153 __arm_vreinterpretq_s32_u8 (uint8x16_t __a)
154 {
155 return (int32x4_t) __a;
156 }
157
158 __extension__ extern __inline int64x2_t
159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
160 __arm_vreinterpretq_s64_s16 (int16x8_t __a)
161 {
162 return (int64x2_t) __a;
163 }
164
165 __extension__ extern __inline int64x2_t
166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
167 __arm_vreinterpretq_s64_s32 (int32x4_t __a)
168 {
169 return (int64x2_t) __a;
170 }
171
172 __extension__ extern __inline int64x2_t
173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
174 __arm_vreinterpretq_s64_s8 (int8x16_t __a)
175 {
176 return (int64x2_t) __a;
177 }
178
179 __extension__ extern __inline int64x2_t
180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
181 __arm_vreinterpretq_s64_u16 (uint16x8_t __a)
182 {
183 return (int64x2_t) __a;
184 }
185
186 __extension__ extern __inline int64x2_t
187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
188 __arm_vreinterpretq_s64_u32 (uint32x4_t __a)
189 {
190 return (int64x2_t) __a;
191 }
192
193 __extension__ extern __inline int64x2_t
194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
195 __arm_vreinterpretq_s64_u64 (uint64x2_t __a)
196 {
197 return (int64x2_t) __a;
198 }
199
200 __extension__ extern __inline int64x2_t
201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
202 __arm_vreinterpretq_s64_u8 (uint8x16_t __a)
203 {
204 return (int64x2_t) __a;
205 }
206
207 __extension__ extern __inline int8x16_t
208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
209 __arm_vreinterpretq_s8_s16 (int16x8_t __a)
210 {
211 return (int8x16_t) __a;
212 }
213
214 __extension__ extern __inline int8x16_t
215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
216 __arm_vreinterpretq_s8_s32 (int32x4_t __a)
217 {
218 return (int8x16_t) __a;
219 }
220
221 __extension__ extern __inline int8x16_t
222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
223 __arm_vreinterpretq_s8_s64 (int64x2_t __a)
224 {
225 return (int8x16_t) __a;
226 }
227
228 __extension__ extern __inline int8x16_t
229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
230 __arm_vreinterpretq_s8_u16 (uint16x8_t __a)
231 {
232 return (int8x16_t) __a;
233 }
234
235 __extension__ extern __inline int8x16_t
236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
237 __arm_vreinterpretq_s8_u32 (uint32x4_t __a)
238 {
239 return (int8x16_t) __a;
240 }
241
242 __extension__ extern __inline int8x16_t
243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
244 __arm_vreinterpretq_s8_u64 (uint64x2_t __a)
245 {
246 return (int8x16_t) __a;
247 }
248
249 __extension__ extern __inline int8x16_t
250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
251 __arm_vreinterpretq_s8_u8 (uint8x16_t __a)
252 {
253 return (int8x16_t) __a;
254 }
255
256 __extension__ extern __inline uint16x8_t
257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
258 __arm_vreinterpretq_u16_s16 (int16x8_t __a)
259 {
260 return (uint16x8_t) __a;
261 }
262
263 __extension__ extern __inline uint16x8_t
264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
265 __arm_vreinterpretq_u16_s32 (int32x4_t __a)
266 {
267 return (uint16x8_t) __a;
268 }
269
270 __extension__ extern __inline uint16x8_t
271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
272 __arm_vreinterpretq_u16_s64 (int64x2_t __a)
273 {
274 return (uint16x8_t) __a;
275 }
276
277 __extension__ extern __inline uint16x8_t
278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
279 __arm_vreinterpretq_u16_s8 (int8x16_t __a)
280 {
281 return (uint16x8_t) __a;
282 }
283
284 __extension__ extern __inline uint16x8_t
285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
286 __arm_vreinterpretq_u16_u32 (uint32x4_t __a)
287 {
288 return (uint16x8_t) __a;
289 }
290
291 __extension__ extern __inline uint16x8_t
292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
293 __arm_vreinterpretq_u16_u64 (uint64x2_t __a)
294 {
295 return (uint16x8_t) __a;
296 }
297
298 __extension__ extern __inline uint16x8_t
299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
300 __arm_vreinterpretq_u16_u8 (uint8x16_t __a)
301 {
302 return (uint16x8_t) __a;
303 }
304
305
306 __extension__ extern __inline uint32x4_t
307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
308 __arm_vreinterpretq_u32_s16 (int16x8_t __a)
309 {
310 return (uint32x4_t) __a;
311 }
312
313 __extension__ extern __inline uint32x4_t
314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
315 __arm_vreinterpretq_u32_s32 (int32x4_t __a)
316 {
317 return (uint32x4_t) __a;
318 }
319
320 __extension__ extern __inline uint32x4_t
321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
322 __arm_vreinterpretq_u32_s64 (int64x2_t __a)
323 {
324 return (uint32x4_t) __a;
325 }
326
327 __extension__ extern __inline uint32x4_t
328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
329 __arm_vreinterpretq_u32_s8 (int8x16_t __a)
330 {
331 return (uint32x4_t) __a;
332 }
333
334 __extension__ extern __inline uint32x4_t
335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
336 __arm_vreinterpretq_u32_u16 (uint16x8_t __a)
337 {
338 return (uint32x4_t) __a;
339 }
340
341 __extension__ extern __inline uint32x4_t
342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
343 __arm_vreinterpretq_u32_u64 (uint64x2_t __a)
344 {
345 return (uint32x4_t) __a;
346 }
347
348 __extension__ extern __inline uint32x4_t
349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
350 __arm_vreinterpretq_u32_u8 (uint8x16_t __a)
351 {
352 return (uint32x4_t) __a;
353 }
354
355 __extension__ extern __inline uint64x2_t
356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
357 __arm_vreinterpretq_u64_s16 (int16x8_t __a)
358 {
359 return (uint64x2_t) __a;
360 }
361
362 __extension__ extern __inline uint64x2_t
363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
364 __arm_vreinterpretq_u64_s32 (int32x4_t __a)
365 {
366 return (uint64x2_t) __a;
367 }
368
369 __extension__ extern __inline uint64x2_t
370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
371 __arm_vreinterpretq_u64_s64 (int64x2_t __a)
372 {
373 return (uint64x2_t) __a;
374 }
375
376 __extension__ extern __inline uint64x2_t
377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
378 __arm_vreinterpretq_u64_s8 (int8x16_t __a)
379 {
380 return (uint64x2_t) __a;
381 }
382
383 __extension__ extern __inline uint64x2_t
384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
385 __arm_vreinterpretq_u64_u16 (uint16x8_t __a)
386 {
387 return (uint64x2_t) __a;
388 }
389
390 __extension__ extern __inline uint64x2_t
391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
392 __arm_vreinterpretq_u64_u32 (uint32x4_t __a)
393 {
394 return (uint64x2_t) __a;
395 }
396
397 __extension__ extern __inline uint64x2_t
398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
399 __arm_vreinterpretq_u64_u8 (uint8x16_t __a)
400 {
401 return (uint64x2_t) __a;
402 }
403
404 __extension__ extern __inline uint8x16_t
405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
406 __arm_vreinterpretq_u8_s16 (int16x8_t __a)
407 {
408 return (uint8x16_t) __a;
409 }
410
411 __extension__ extern __inline uint8x16_t
412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
413 __arm_vreinterpretq_u8_s32 (int32x4_t __a)
414 {
415 return (uint8x16_t) __a;
416 }
417
418 __extension__ extern __inline uint8x16_t
419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
420 __arm_vreinterpretq_u8_s64 (int64x2_t __a)
421 {
422 return (uint8x16_t) __a;
423 }
424
425 __extension__ extern __inline uint8x16_t
426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
427 __arm_vreinterpretq_u8_s8 (int8x16_t __a)
428 {
429 return (uint8x16_t) __a;
430 }
431
432 __extension__ extern __inline uint8x16_t
433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
434 __arm_vreinterpretq_u8_u16 (uint16x8_t __a)
435 {
436 return (uint8x16_t) __a;
437 }
438
439 __extension__ extern __inline uint8x16_t
440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
441 __arm_vreinterpretq_u8_u32 (uint32x4_t __a)
442 {
443 return (uint8x16_t) __a;
444 }
445
446 __extension__ extern __inline uint8x16_t
447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
448 __arm_vreinterpretq_u8_u64 (uint64x2_t __a)
449 {
450 return (uint8x16_t) __a;
451 }
452
453 __extension__ extern __inline uint8x16_t
454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
455 __arm_vuninitializedq_u8 (void)
456 {
457 uint8x16_t __uninit;
458 __asm__ ("": "=w"(__uninit));
459 return __uninit;
460 }
461
462 __extension__ extern __inline uint16x8_t
463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
464 __arm_vuninitializedq_u16 (void)
465 {
466 uint16x8_t __uninit;
467 __asm__ ("": "=w"(__uninit));
468 return __uninit;
469 }
470
471 __extension__ extern __inline uint32x4_t
472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
473 __arm_vuninitializedq_u32 (void)
474 {
475 uint32x4_t __uninit;
476 __asm__ ("": "=w"(__uninit));
477 return __uninit;
478 }
479
480 __extension__ extern __inline uint64x2_t
481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
482 __arm_vuninitializedq_u64 (void)
483 {
484 uint64x2_t __uninit;
485 __asm__ ("": "=w"(__uninit));
486 return __uninit;
487 }
488
489 __extension__ extern __inline int8x16_t
490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
491 __arm_vuninitializedq_s8 (void)
492 {
493 int8x16_t __uninit;
494 __asm__ ("": "=w"(__uninit));
495 return __uninit;
496 }
497
498 __extension__ extern __inline int16x8_t
499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
500 __arm_vuninitializedq_s16 (void)
501 {
502 int16x8_t __uninit;
503 __asm__ ("": "=w"(__uninit));
504 return __uninit;
505 }
506
507 __extension__ extern __inline int32x4_t
508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
509 __arm_vuninitializedq_s32 (void)
510 {
511 int32x4_t __uninit;
512 __asm__ ("": "=w"(__uninit));
513 return __uninit;
514 }
515
516 __extension__ extern __inline int64x2_t
517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
518 __arm_vuninitializedq_s64 (void)
519 {
520 int64x2_t __uninit;
521 __asm__ ("": "=w"(__uninit));
522 return __uninit;
523 }
524
525 #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point. */
526
527 __extension__ extern __inline int32x4_t
528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
529 __arm_vreinterpretq_s32_f16 (float16x8_t __a)
530 {
531 return (int32x4_t) __a;
532 }
533
534 __extension__ extern __inline int32x4_t
535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
536 __arm_vreinterpretq_s32_f32 (float32x4_t __a)
537 {
538 return (int32x4_t) __a;
539 }
540
541 __extension__ extern __inline int16x8_t
542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
543 __arm_vreinterpretq_s16_f16 (float16x8_t __a)
544 {
545 return (int16x8_t) __a;
546 }
547
548 __extension__ extern __inline int16x8_t
549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
550 __arm_vreinterpretq_s16_f32 (float32x4_t __a)
551 {
552 return (int16x8_t) __a;
553 }
554
555 __extension__ extern __inline int64x2_t
556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
557 __arm_vreinterpretq_s64_f16 (float16x8_t __a)
558 {
559 return (int64x2_t) __a;
560 }
561
562 __extension__ extern __inline int64x2_t
563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
564 __arm_vreinterpretq_s64_f32 (float32x4_t __a)
565 {
566 return (int64x2_t) __a;
567 }
568
569 __extension__ extern __inline int8x16_t
570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
571 __arm_vreinterpretq_s8_f16 (float16x8_t __a)
572 {
573 return (int8x16_t) __a;
574 }
575
576 __extension__ extern __inline int8x16_t
577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
578 __arm_vreinterpretq_s8_f32 (float32x4_t __a)
579 {
580 return (int8x16_t) __a;
581 }
582
583 __extension__ extern __inline uint16x8_t
584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
585 __arm_vreinterpretq_u16_f16 (float16x8_t __a)
586 {
587 return (uint16x8_t) __a;
588 }
589
590 __extension__ extern __inline uint16x8_t
591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
592 __arm_vreinterpretq_u16_f32 (float32x4_t __a)
593 {
594 return (uint16x8_t) __a;
595 }
596
597 __extension__ extern __inline uint32x4_t
598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
599 __arm_vreinterpretq_u32_f16 (float16x8_t __a)
600 {
601 return (uint32x4_t) __a;
602 }
603
604 __extension__ extern __inline uint32x4_t
605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
606 __arm_vreinterpretq_u32_f32 (float32x4_t __a)
607 {
608 return (uint32x4_t) __a;
609 }
610
611 __extension__ extern __inline uint64x2_t
612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
613 __arm_vreinterpretq_u64_f16 (float16x8_t __a)
614 {
615 return (uint64x2_t) __a;
616 }
617
618 __extension__ extern __inline uint64x2_t
619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
620 __arm_vreinterpretq_u64_f32 (float32x4_t __a)
621 {
622 return (uint64x2_t) __a;
623 }
624
625 __extension__ extern __inline uint8x16_t
626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
627 __arm_vreinterpretq_u8_f16 (float16x8_t __a)
628 {
629 return (uint8x16_t) __a;
630 }
631
632 __extension__ extern __inline uint8x16_t
633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
634 __arm_vreinterpretq_u8_f32 (float32x4_t __a)
635 {
636 return (uint8x16_t) __a;
637 }
638
639 __extension__ extern __inline float16x8_t
640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
641 __arm_vreinterpretq_f16_f32 (float32x4_t __a)
642 {
643 return (float16x8_t) __a;
644 }
645
646 __extension__ extern __inline float16x8_t
647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
648 __arm_vreinterpretq_f16_s16 (int16x8_t __a)
649 {
650 return (float16x8_t) __a;
651 }
652
653 __extension__ extern __inline float16x8_t
654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
655 __arm_vreinterpretq_f16_s32 (int32x4_t __a)
656 {
657 return (float16x8_t) __a;
658 }
659
660 __extension__ extern __inline float16x8_t
661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
662 __arm_vreinterpretq_f16_s64 (int64x2_t __a)
663 {
664 return (float16x8_t) __a;
665 }
666
667 __extension__ extern __inline float16x8_t
668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
669 __arm_vreinterpretq_f16_s8 (int8x16_t __a)
670 {
671 return (float16x8_t) __a;
672 }
673
674 __extension__ extern __inline float16x8_t
675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
676 __arm_vreinterpretq_f16_u16 (uint16x8_t __a)
677 {
678 return (float16x8_t) __a;
679 }
680
681 __extension__ extern __inline float16x8_t
682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
683 __arm_vreinterpretq_f16_u32 (uint32x4_t __a)
684 {
685 return (float16x8_t) __a;
686 }
687
688 __extension__ extern __inline float16x8_t
689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
690 __arm_vreinterpretq_f16_u64 (uint64x2_t __a)
691 {
692 return (float16x8_t) __a;
693 }
694
695 __extension__ extern __inline float16x8_t
696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
697 __arm_vreinterpretq_f16_u8 (uint8x16_t __a)
698 {
699 return (float16x8_t) __a;
700 }
701
702 __extension__ extern __inline float32x4_t
703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
704 __arm_vreinterpretq_f32_f16 (float16x8_t __a)
705 {
706 return (float32x4_t) __a;
707 }
708
709 __extension__ extern __inline float32x4_t
710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
711 __arm_vreinterpretq_f32_s16 (int16x8_t __a)
712 {
713 return (float32x4_t) __a;
714 }
715
716 __extension__ extern __inline float32x4_t
717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
718 __arm_vreinterpretq_f32_s32 (int32x4_t __a)
719 {
720 return (float32x4_t) __a;
721 }
722
723 __extension__ extern __inline float32x4_t
724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
725 __arm_vreinterpretq_f32_s64 (int64x2_t __a)
726 {
727 return (float32x4_t) __a;
728 }
729
730 __extension__ extern __inline float32x4_t
731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
732 __arm_vreinterpretq_f32_s8 (int8x16_t __a)
733 {
734 return (float32x4_t) __a;
735 }
736
737 __extension__ extern __inline float32x4_t
738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
739 __arm_vreinterpretq_f32_u16 (uint16x8_t __a)
740 {
741 return (float32x4_t) __a;
742 }
743
744 __extension__ extern __inline float32x4_t
745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
746 __arm_vreinterpretq_f32_u32 (uint32x4_t __a)
747 {
748 return (float32x4_t) __a;
749 }
750
751 __extension__ extern __inline float32x4_t
752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
753 __arm_vreinterpretq_f32_u64 (uint64x2_t __a)
754 {
755 return (float32x4_t) __a;
756 }
757
758 __extension__ extern __inline float32x4_t
759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
760 __arm_vreinterpretq_f32_u8 (uint8x16_t __a)
761 {
762 return (float32x4_t) __a;
763 }
764
765 __extension__ extern __inline float16x8_t
766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
767 __arm_vuninitializedq_f16 (void)
768 {
769 float16x8_t __uninit;
770 __asm__ ("": "=w" (__uninit));
771 return __uninit;
772 }
773
774 __extension__ extern __inline float32x4_t
775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
776 __arm_vuninitializedq_f32 (void)
777 {
778 float32x4_t __uninit;
779 __asm__ ("": "=w" (__uninit));
780 return __uninit;
781 }
782
783 #endif
784
785 #ifdef __cplusplus
786
787 __extension__ extern __inline int16x8_t
788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
789 __arm_vreinterpretq_s16 (int32x4_t __a)
790 {
791 return __arm_vreinterpretq_s16_s32 (__a);
792 }
793
794 __extension__ extern __inline int16x8_t
795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
796 __arm_vreinterpretq_s16 (int64x2_t __a)
797 {
798 return __arm_vreinterpretq_s16_s64 (__a);
799 }
800
801 __extension__ extern __inline int16x8_t
802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
803 __arm_vreinterpretq_s16 (int8x16_t __a)
804 {
805 return __arm_vreinterpretq_s16_s8 (__a);
806 }
807
808 __extension__ extern __inline int16x8_t
809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
810 __arm_vreinterpretq_s16 (uint16x8_t __a)
811 {
812 return __arm_vreinterpretq_s16_u16 (__a);
813 }
814
815 __extension__ extern __inline int16x8_t
816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
817 __arm_vreinterpretq_s16 (uint32x4_t __a)
818 {
819 return __arm_vreinterpretq_s16_u32 (__a);
820 }
821
822 __extension__ extern __inline int16x8_t
823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
824 __arm_vreinterpretq_s16 (uint64x2_t __a)
825 {
826 return __arm_vreinterpretq_s16_u64 (__a);
827 }
828
829 __extension__ extern __inline int16x8_t
830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
831 __arm_vreinterpretq_s16 (uint8x16_t __a)
832 {
833 return __arm_vreinterpretq_s16_u8 (__a);
834 }
835
836 __extension__ extern __inline int32x4_t
837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
838 __arm_vreinterpretq_s32 (int16x8_t __a)
839 {
840 return __arm_vreinterpretq_s32_s16 (__a);
841 }
842
843 __extension__ extern __inline int32x4_t
844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
845 __arm_vreinterpretq_s32 (int64x2_t __a)
846 {
847 return __arm_vreinterpretq_s32_s64 (__a);
848 }
849
850 __extension__ extern __inline int32x4_t
851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
852 __arm_vreinterpretq_s32 (int8x16_t __a)
853 {
854 return __arm_vreinterpretq_s32_s8 (__a);
855 }
856
857 __extension__ extern __inline int32x4_t
858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
859 __arm_vreinterpretq_s32 (uint16x8_t __a)
860 {
861 return __arm_vreinterpretq_s32_u16 (__a);
862 }
863
864 __extension__ extern __inline int32x4_t
865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
866 __arm_vreinterpretq_s32 (uint32x4_t __a)
867 {
868 return __arm_vreinterpretq_s32_u32 (__a);
869 }
870
871 __extension__ extern __inline int32x4_t
872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
873 __arm_vreinterpretq_s32 (uint64x2_t __a)
874 {
875 return __arm_vreinterpretq_s32_u64 (__a);
876 }
877
878 __extension__ extern __inline int32x4_t
879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
880 __arm_vreinterpretq_s32 (uint8x16_t __a)
881 {
882 return __arm_vreinterpretq_s32_u8 (__a);
883 }
884
885 __extension__ extern __inline int64x2_t
886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
887 __arm_vreinterpretq_s64 (int16x8_t __a)
888 {
889 return __arm_vreinterpretq_s64_s16 (__a);
890 }
891
892 __extension__ extern __inline int64x2_t
893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
894 __arm_vreinterpretq_s64 (int32x4_t __a)
895 {
896 return __arm_vreinterpretq_s64_s32 (__a);
897 }
898
899 __extension__ extern __inline int64x2_t
900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
901 __arm_vreinterpretq_s64 (int8x16_t __a)
902 {
903 return __arm_vreinterpretq_s64_s8 (__a);
904 }
905
906 __extension__ extern __inline int64x2_t
907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
908 __arm_vreinterpretq_s64 (uint16x8_t __a)
909 {
910 return __arm_vreinterpretq_s64_u16 (__a);
911 }
912
913 __extension__ extern __inline int64x2_t
914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
915 __arm_vreinterpretq_s64 (uint32x4_t __a)
916 {
917 return __arm_vreinterpretq_s64_u32 (__a);
918 }
919
920 __extension__ extern __inline int64x2_t
921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
922 __arm_vreinterpretq_s64 (uint64x2_t __a)
923 {
924 return __arm_vreinterpretq_s64_u64 (__a);
925 }
926
927 __extension__ extern __inline int64x2_t
928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
929 __arm_vreinterpretq_s64 (uint8x16_t __a)
930 {
931 return __arm_vreinterpretq_s64_u8 (__a);
932 }
933
934 __extension__ extern __inline int8x16_t
935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
936 __arm_vreinterpretq_s8 (int16x8_t __a)
937 {
938 return __arm_vreinterpretq_s8_s16 (__a);
939 }
940
941 __extension__ extern __inline int8x16_t
942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
943 __arm_vreinterpretq_s8 (int32x4_t __a)
944 {
945 return __arm_vreinterpretq_s8_s32 (__a);
946 }
947
948 __extension__ extern __inline int8x16_t
949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
950 __arm_vreinterpretq_s8 (int64x2_t __a)
951 {
952 return __arm_vreinterpretq_s8_s64 (__a);
953 }
954
955 __extension__ extern __inline int8x16_t
956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
957 __arm_vreinterpretq_s8 (uint16x8_t __a)
958 {
959 return __arm_vreinterpretq_s8_u16 (__a);
960 }
961
962 __extension__ extern __inline int8x16_t
963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
964 __arm_vreinterpretq_s8 (uint32x4_t __a)
965 {
966 return __arm_vreinterpretq_s8_u32 (__a);
967 }
968
969 __extension__ extern __inline int8x16_t
970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
971 __arm_vreinterpretq_s8 (uint64x2_t __a)
972 {
973 return __arm_vreinterpretq_s8_u64 (__a);
974 }
975
976 __extension__ extern __inline int8x16_t
977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
978 __arm_vreinterpretq_s8 (uint8x16_t __a)
979 {
980 return __arm_vreinterpretq_s8_u8 (__a);
981 }
982
983 __extension__ extern __inline uint16x8_t
984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
985 __arm_vreinterpretq_u16 (int16x8_t __a)
986 {
987 return __arm_vreinterpretq_u16_s16 (__a);
988 }
989
990 __extension__ extern __inline uint16x8_t
991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
992 __arm_vreinterpretq_u16 (int32x4_t __a)
993 {
994 return __arm_vreinterpretq_u16_s32 (__a);
995 }
996
997 __extension__ extern __inline uint16x8_t
998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
999 __arm_vreinterpretq_u16 (int64x2_t __a)
1000 {
1001 return __arm_vreinterpretq_u16_s64 (__a);
1002 }
1003
1004 __extension__ extern __inline uint16x8_t
1005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1006 __arm_vreinterpretq_u16 (int8x16_t __a)
1007 {
1008 return __arm_vreinterpretq_u16_s8 (__a);
1009 }
1010
1011 __extension__ extern __inline uint16x8_t
1012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1013 __arm_vreinterpretq_u16 (uint32x4_t __a)
1014 {
1015 return __arm_vreinterpretq_u16_u32 (__a);
1016 }
1017
1018 __extension__ extern __inline uint16x8_t
1019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1020 __arm_vreinterpretq_u16 (uint64x2_t __a)
1021 {
1022 return __arm_vreinterpretq_u16_u64 (__a);
1023 }
1024
1025 __extension__ extern __inline uint16x8_t
1026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1027 __arm_vreinterpretq_u16 (uint8x16_t __a)
1028 {
1029 return __arm_vreinterpretq_u16_u8 (__a);
1030 }
1031
1032 __extension__ extern __inline uint32x4_t
1033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1034 __arm_vreinterpretq_u32 (int16x8_t __a)
1035 {
1036 return __arm_vreinterpretq_u32_s16 (__a);
1037 }
1038
1039 __extension__ extern __inline uint32x4_t
1040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1041 __arm_vreinterpretq_u32 (int32x4_t __a)
1042 {
1043 return __arm_vreinterpretq_u32_s32 (__a);
1044 }
1045
1046 __extension__ extern __inline uint32x4_t
1047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1048 __arm_vreinterpretq_u32 (int64x2_t __a)
1049 {
1050 return __arm_vreinterpretq_u32_s64 (__a);
1051 }
1052
1053 __extension__ extern __inline uint32x4_t
1054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1055 __arm_vreinterpretq_u32 (int8x16_t __a)
1056 {
1057 return __arm_vreinterpretq_u32_s8 (__a);
1058 }
1059
1060 __extension__ extern __inline uint32x4_t
1061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1062 __arm_vreinterpretq_u32 (uint16x8_t __a)
1063 {
1064 return __arm_vreinterpretq_u32_u16 (__a);
1065 }
1066
1067 __extension__ extern __inline uint32x4_t
1068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1069 __arm_vreinterpretq_u32 (uint64x2_t __a)
1070 {
1071 return __arm_vreinterpretq_u32_u64 (__a);
1072 }
1073
1074 __extension__ extern __inline uint32x4_t
1075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1076 __arm_vreinterpretq_u32 (uint8x16_t __a)
1077 {
1078 return __arm_vreinterpretq_u32_u8 (__a);
1079 }
1080
1081 __extension__ extern __inline uint64x2_t
1082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1083 __arm_vreinterpretq_u64 (int16x8_t __a)
1084 {
1085 return __arm_vreinterpretq_u64_s16 (__a);
1086 }
1087
1088 __extension__ extern __inline uint64x2_t
1089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1090 __arm_vreinterpretq_u64 (int32x4_t __a)
1091 {
1092 return __arm_vreinterpretq_u64_s32 (__a);
1093 }
1094
1095 __extension__ extern __inline uint64x2_t
1096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1097 __arm_vreinterpretq_u64 (int64x2_t __a)
1098 {
1099 return __arm_vreinterpretq_u64_s64 (__a);
1100 }
1101
1102 __extension__ extern __inline uint64x2_t
1103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1104 __arm_vreinterpretq_u64 (int8x16_t __a)
1105 {
1106 return __arm_vreinterpretq_u64_s8 (__a);
1107 }
1108
1109 __extension__ extern __inline uint64x2_t
1110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1111 __arm_vreinterpretq_u64 (uint16x8_t __a)
1112 {
1113 return __arm_vreinterpretq_u64_u16 (__a);
1114 }
1115
1116 __extension__ extern __inline uint64x2_t
1117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1118 __arm_vreinterpretq_u64 (uint32x4_t __a)
1119 {
1120 return __arm_vreinterpretq_u64_u32 (__a);
1121 }
1122
1123 __extension__ extern __inline uint64x2_t
1124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1125 __arm_vreinterpretq_u64 (uint8x16_t __a)
1126 {
1127 return __arm_vreinterpretq_u64_u8 (__a);
1128 }
1129
1130 __extension__ extern __inline uint8x16_t
1131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1132 __arm_vreinterpretq_u8 (int16x8_t __a)
1133 {
1134 return __arm_vreinterpretq_u8_s16 (__a);
1135 }
1136
1137 __extension__ extern __inline uint8x16_t
1138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1139 __arm_vreinterpretq_u8 (int32x4_t __a)
1140 {
1141 return __arm_vreinterpretq_u8_s32 (__a);
1142 }
1143
1144 __extension__ extern __inline uint8x16_t
1145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1146 __arm_vreinterpretq_u8 (int64x2_t __a)
1147 {
1148 return __arm_vreinterpretq_u8_s64 (__a);
1149 }
1150
1151 __extension__ extern __inline uint8x16_t
1152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1153 __arm_vreinterpretq_u8 (int8x16_t __a)
1154 {
1155 return __arm_vreinterpretq_u8_s8 (__a);
1156 }
1157
1158 __extension__ extern __inline uint8x16_t
1159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1160 __arm_vreinterpretq_u8 (uint16x8_t __a)
1161 {
1162 return __arm_vreinterpretq_u8_u16 (__a);
1163 }
1164
1165 __extension__ extern __inline uint8x16_t
1166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1167 __arm_vreinterpretq_u8 (uint32x4_t __a)
1168 {
1169 return __arm_vreinterpretq_u8_u32 (__a);
1170 }
1171
1172 __extension__ extern __inline uint8x16_t
1173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1174 __arm_vreinterpretq_u8 (uint64x2_t __a)
1175 {
1176 return __arm_vreinterpretq_u8_u64 (__a);
1177 }
1178
1179 __extension__ extern __inline uint8x16_t
1180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1181 __arm_vuninitializedq (uint8x16_t /* __v ATTRIBUTE UNUSED */)
1182 {
1183 return __arm_vuninitializedq_u8 ();
1184 }
1185
1186 __extension__ extern __inline uint16x8_t
1187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1188 __arm_vuninitializedq (uint16x8_t /* __v ATTRIBUTE UNUSED */)
1189 {
1190 return __arm_vuninitializedq_u16 ();
1191 }
1192
1193 __extension__ extern __inline uint32x4_t
1194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1195 __arm_vuninitializedq (uint32x4_t /* __v ATTRIBUTE UNUSED */)
1196 {
1197 return __arm_vuninitializedq_u32 ();
1198 }
1199
1200 __extension__ extern __inline uint64x2_t
1201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1202 __arm_vuninitializedq (uint64x2_t /* __v ATTRIBUTE UNUSED */)
1203 {
1204 return __arm_vuninitializedq_u64 ();
1205 }
1206
1207 __extension__ extern __inline int8x16_t
1208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1209 __arm_vuninitializedq (int8x16_t /* __v ATTRIBUTE UNUSED */)
1210 {
1211 return __arm_vuninitializedq_s8 ();
1212 }
1213
1214 __extension__ extern __inline int16x8_t
1215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1216 __arm_vuninitializedq (int16x8_t /* __v ATTRIBUTE UNUSED */)
1217 {
1218 return __arm_vuninitializedq_s16 ();
1219 }
1220
1221 __extension__ extern __inline int32x4_t
1222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1223 __arm_vuninitializedq (int32x4_t /* __v ATTRIBUTE UNUSED */)
1224 {
1225 return __arm_vuninitializedq_s32 ();
1226 }
1227
1228 __extension__ extern __inline int64x2_t
1229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1230 __arm_vuninitializedq (int64x2_t /* __v ATTRIBUTE UNUSED */)
1231 {
1232 return __arm_vuninitializedq_s64 ();
1233 }
1234
1235 #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point. */
1236 __extension__ extern __inline int32x4_t
1237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1238 __arm_vreinterpretq_s32 (float16x8_t __a)
1239 {
1240 return __arm_vreinterpretq_s32_f16 (__a);
1241 }
1242
1243 __extension__ extern __inline int32x4_t
1244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1245 __arm_vreinterpretq_s32 (float32x4_t __a)
1246 {
1247 return __arm_vreinterpretq_s32_f32 (__a);
1248 }
1249
1250 __extension__ extern __inline int16x8_t
1251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1252 __arm_vreinterpretq_s16 (float16x8_t __a)
1253 {
1254 return __arm_vreinterpretq_s16_f16 (__a);
1255 }
1256
1257 __extension__ extern __inline int16x8_t
1258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1259 __arm_vreinterpretq_s16 (float32x4_t __a)
1260 {
1261 return __arm_vreinterpretq_s16_f32 (__a);
1262 }
1263
1264 __extension__ extern __inline int64x2_t
1265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1266 __arm_vreinterpretq_s64 (float16x8_t __a)
1267 {
1268 return __arm_vreinterpretq_s64_f16 (__a);
1269 }
1270
1271 __extension__ extern __inline int64x2_t
1272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1273 __arm_vreinterpretq_s64 (float32x4_t __a)
1274 {
1275 return __arm_vreinterpretq_s64_f32 (__a);
1276 }
1277
1278 __extension__ extern __inline int8x16_t
1279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1280 __arm_vreinterpretq_s8 (float16x8_t __a)
1281 {
1282 return __arm_vreinterpretq_s8_f16 (__a);
1283 }
1284
1285 __extension__ extern __inline int8x16_t
1286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1287 __arm_vreinterpretq_s8 (float32x4_t __a)
1288 {
1289 return __arm_vreinterpretq_s8_f32 (__a);
1290 }
1291
1292 __extension__ extern __inline uint16x8_t
1293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1294 __arm_vreinterpretq_u16 (float16x8_t __a)
1295 {
1296 return __arm_vreinterpretq_u16_f16 (__a);
1297 }
1298
1299 __extension__ extern __inline uint16x8_t
1300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1301 __arm_vreinterpretq_u16 (float32x4_t __a)
1302 {
1303 return __arm_vreinterpretq_u16_f32 (__a);
1304 }
1305
1306 __extension__ extern __inline uint32x4_t
1307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1308 __arm_vreinterpretq_u32 (float16x8_t __a)
1309 {
1310 return __arm_vreinterpretq_u32_f16 (__a);
1311 }
1312
1313 __extension__ extern __inline uint32x4_t
1314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1315 __arm_vreinterpretq_u32 (float32x4_t __a)
1316 {
1317 return __arm_vreinterpretq_u32_f32 (__a);
1318 }
1319
1320 __extension__ extern __inline uint64x2_t
1321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1322 __arm_vreinterpretq_u64 (float16x8_t __a)
1323 {
1324 return __arm_vreinterpretq_u64_f16 (__a);
1325 }
1326
1327 __extension__ extern __inline uint64x2_t
1328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1329 __arm_vreinterpretq_u64 (float32x4_t __a)
1330 {
1331 return __arm_vreinterpretq_u64_f32 (__a);
1332 }
1333
1334 __extension__ extern __inline uint8x16_t
1335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1336 __arm_vreinterpretq_u8 (float16x8_t __a)
1337 {
1338 return __arm_vreinterpretq_u8_f16 (__a);
1339 }
1340
1341 __extension__ extern __inline uint8x16_t
1342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1343 __arm_vreinterpretq_u8 (float32x4_t __a)
1344 {
1345 return __arm_vreinterpretq_u8_f32 (__a);
1346 }
1347
1348 __extension__ extern __inline float16x8_t
1349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1350 __arm_vreinterpretq_f16 (float32x4_t __a)
1351 {
1352 return __arm_vreinterpretq_f16_f32 (__a);
1353 }
1354
1355 __extension__ extern __inline float16x8_t
1356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1357 __arm_vreinterpretq_f16 (int16x8_t __a)
1358 {
1359 return __arm_vreinterpretq_f16_s16 (__a);
1360 }
1361
1362 __extension__ extern __inline float16x8_t
1363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1364 __arm_vreinterpretq_f16 (int32x4_t __a)
1365 {
1366 return __arm_vreinterpretq_f16_s32 (__a);
1367 }
1368
1369 __extension__ extern __inline float16x8_t
1370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1371 __arm_vreinterpretq_f16 (int64x2_t __a)
1372 {
1373 return __arm_vreinterpretq_f16_s64 (__a);
1374 }
1375
1376 __extension__ extern __inline float16x8_t
1377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1378 __arm_vreinterpretq_f16 (int8x16_t __a)
1379 {
1380 return __arm_vreinterpretq_f16_s8 (__a);
1381 }
1382
1383 __extension__ extern __inline float16x8_t
1384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1385 __arm_vreinterpretq_f16 (uint16x8_t __a)
1386 {
1387 return __arm_vreinterpretq_f16_u16 (__a);
1388 }
1389
1390 __extension__ extern __inline float16x8_t
1391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1392 __arm_vreinterpretq_f16 (uint32x4_t __a)
1393 {
1394 return __arm_vreinterpretq_f16_u32 (__a);
1395 }
1396
1397 __extension__ extern __inline float16x8_t
1398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1399 __arm_vreinterpretq_f16 (uint64x2_t __a)
1400 {
1401 return __arm_vreinterpretq_f16_u64 (__a);
1402 }
1403
1404 __extension__ extern __inline float16x8_t
1405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1406 __arm_vreinterpretq_f16 (uint8x16_t __a)
1407 {
1408 return __arm_vreinterpretq_f16_u8 (__a);
1409 }
1410
1411 __extension__ extern __inline float32x4_t
1412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1413 __arm_vreinterpretq_f32 (float16x8_t __a)
1414 {
1415 return __arm_vreinterpretq_f32_f16 (__a);
1416 }
1417
1418 __extension__ extern __inline float32x4_t
1419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1420 __arm_vreinterpretq_f32 (int16x8_t __a)
1421 {
1422 return __arm_vreinterpretq_f32_s16 (__a);
1423 }
1424
1425 __extension__ extern __inline float32x4_t
1426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1427 __arm_vreinterpretq_f32 (int32x4_t __a)
1428 {
1429 return __arm_vreinterpretq_f32_s32 (__a);
1430 }
1431
1432 __extension__ extern __inline float32x4_t
1433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1434 __arm_vreinterpretq_f32 (int64x2_t __a)
1435 {
1436 return __arm_vreinterpretq_f32_s64 (__a);
1437 }
1438
1439 __extension__ extern __inline float32x4_t
1440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1441 __arm_vreinterpretq_f32 (int8x16_t __a)
1442 {
1443 return __arm_vreinterpretq_f32_s8 (__a);
1444 }
1445
1446 __extension__ extern __inline float32x4_t
1447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1448 __arm_vreinterpretq_f32 (uint16x8_t __a)
1449 {
1450 return __arm_vreinterpretq_f32_u16 (__a);
1451 }
1452
1453 __extension__ extern __inline float32x4_t
1454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1455 __arm_vreinterpretq_f32 (uint32x4_t __a)
1456 {
1457 return __arm_vreinterpretq_f32_u32 (__a);
1458 }
1459
1460 __extension__ extern __inline float32x4_t
1461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1462 __arm_vreinterpretq_f32 (uint64x2_t __a)
1463 {
1464 return __arm_vreinterpretq_f32_u64 (__a);
1465 }
1466
1467 __extension__ extern __inline float32x4_t
1468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1469 __arm_vreinterpretq_f32 (uint8x16_t __a)
1470 {
1471 return __arm_vreinterpretq_f32_u8 (__a);
1472 }
1473
1474 __extension__ extern __inline float16x8_t
1475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1476 __arm_vuninitializedq (float16x8_t /* __v ATTRIBUTE UNUSED */)
1477 {
1478 return __arm_vuninitializedq_f16 ();
1479 }
1480
1481 __extension__ extern __inline float32x4_t
1482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1483 __arm_vuninitializedq (float32x4_t /* __v ATTRIBUTE UNUSED */)
1484 {
1485 return __arm_vuninitializedq_f32 ();
1486 }
1487 #endif /* __ARM_FEATURE_MVE & 2 (MVE floating point) */
1488 #endif /* __cplusplus */
1489
1490 #endif /* _GCC_ARM_MVE_H. */