1 /* Arm MVE intrinsics include file.
3 Copyright (C) 2020-2021 Free Software Foundation, Inc.
6 This file is part of GCC.
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.
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.
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/>. */
22 #ifndef _GCC_ARM_MVE_TYPES_H
23 #define _GCC_ARM_MVE_TYPES_H
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
;
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
;
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
;
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
;
60 __extension__
extern __inline int16x8_t
61 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
62 __arm_vreinterpretq_s16_s32 (int32x4_t __a
)
64 return (int16x8_t
) __a
;
67 __extension__
extern __inline int16x8_t
68 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
69 __arm_vreinterpretq_s16_s64 (int64x2_t __a
)
71 return (int16x8_t
) __a
;
74 __extension__
extern __inline int16x8_t
75 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
76 __arm_vreinterpretq_s16_s8 (int8x16_t __a
)
78 return (int16x8_t
) __a
;
81 __extension__
extern __inline int16x8_t
82 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
83 __arm_vreinterpretq_s16_u16 (uint16x8_t __a
)
85 return (int16x8_t
) __a
;
88 __extension__
extern __inline int16x8_t
89 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
90 __arm_vreinterpretq_s16_u32 (uint32x4_t __a
)
92 return (int16x8_t
) __a
;
95 __extension__
extern __inline int16x8_t
96 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
97 __arm_vreinterpretq_s16_u64 (uint64x2_t __a
)
99 return (int16x8_t
) __a
;
102 __extension__
extern __inline int16x8_t
103 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
104 __arm_vreinterpretq_s16_u8 (uint8x16_t __a
)
106 return (int16x8_t
) __a
;
109 __extension__
extern __inline int32x4_t
110 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
111 __arm_vreinterpretq_s32_s16 (int16x8_t __a
)
113 return (int32x4_t
) __a
;
116 __extension__
extern __inline int32x4_t
117 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
118 __arm_vreinterpretq_s32_s64 (int64x2_t __a
)
120 return (int32x4_t
) __a
;
123 __extension__
extern __inline int32x4_t
124 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
125 __arm_vreinterpretq_s32_s8 (int8x16_t __a
)
127 return (int32x4_t
) __a
;
130 __extension__
extern __inline int32x4_t
131 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
132 __arm_vreinterpretq_s32_u16 (uint16x8_t __a
)
134 return (int32x4_t
) __a
;
137 __extension__
extern __inline int32x4_t
138 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
139 __arm_vreinterpretq_s32_u32 (uint32x4_t __a
)
141 return (int32x4_t
) __a
;
144 __extension__
extern __inline int32x4_t
145 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
146 __arm_vreinterpretq_s32_u64 (uint64x2_t __a
)
148 return (int32x4_t
) __a
;
151 __extension__
extern __inline int32x4_t
152 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
153 __arm_vreinterpretq_s32_u8 (uint8x16_t __a
)
155 return (int32x4_t
) __a
;
158 __extension__
extern __inline int64x2_t
159 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
160 __arm_vreinterpretq_s64_s16 (int16x8_t __a
)
162 return (int64x2_t
) __a
;
165 __extension__
extern __inline int64x2_t
166 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
167 __arm_vreinterpretq_s64_s32 (int32x4_t __a
)
169 return (int64x2_t
) __a
;
172 __extension__
extern __inline int64x2_t
173 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
174 __arm_vreinterpretq_s64_s8 (int8x16_t __a
)
176 return (int64x2_t
) __a
;
179 __extension__
extern __inline int64x2_t
180 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
181 __arm_vreinterpretq_s64_u16 (uint16x8_t __a
)
183 return (int64x2_t
) __a
;
186 __extension__
extern __inline int64x2_t
187 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
188 __arm_vreinterpretq_s64_u32 (uint32x4_t __a
)
190 return (int64x2_t
) __a
;
193 __extension__
extern __inline int64x2_t
194 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
195 __arm_vreinterpretq_s64_u64 (uint64x2_t __a
)
197 return (int64x2_t
) __a
;
200 __extension__
extern __inline int64x2_t
201 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
202 __arm_vreinterpretq_s64_u8 (uint8x16_t __a
)
204 return (int64x2_t
) __a
;
207 __extension__
extern __inline int8x16_t
208 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
209 __arm_vreinterpretq_s8_s16 (int16x8_t __a
)
211 return (int8x16_t
) __a
;
214 __extension__
extern __inline int8x16_t
215 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
216 __arm_vreinterpretq_s8_s32 (int32x4_t __a
)
218 return (int8x16_t
) __a
;
221 __extension__
extern __inline int8x16_t
222 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
223 __arm_vreinterpretq_s8_s64 (int64x2_t __a
)
225 return (int8x16_t
) __a
;
228 __extension__
extern __inline int8x16_t
229 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
230 __arm_vreinterpretq_s8_u16 (uint16x8_t __a
)
232 return (int8x16_t
) __a
;
235 __extension__
extern __inline int8x16_t
236 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
237 __arm_vreinterpretq_s8_u32 (uint32x4_t __a
)
239 return (int8x16_t
) __a
;
242 __extension__
extern __inline int8x16_t
243 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
244 __arm_vreinterpretq_s8_u64 (uint64x2_t __a
)
246 return (int8x16_t
) __a
;
249 __extension__
extern __inline int8x16_t
250 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
251 __arm_vreinterpretq_s8_u8 (uint8x16_t __a
)
253 return (int8x16_t
) __a
;
256 __extension__
extern __inline uint16x8_t
257 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
258 __arm_vreinterpretq_u16_s16 (int16x8_t __a
)
260 return (uint16x8_t
) __a
;
263 __extension__
extern __inline uint16x8_t
264 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
265 __arm_vreinterpretq_u16_s32 (int32x4_t __a
)
267 return (uint16x8_t
) __a
;
270 __extension__
extern __inline uint16x8_t
271 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
272 __arm_vreinterpretq_u16_s64 (int64x2_t __a
)
274 return (uint16x8_t
) __a
;
277 __extension__
extern __inline uint16x8_t
278 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
279 __arm_vreinterpretq_u16_s8 (int8x16_t __a
)
281 return (uint16x8_t
) __a
;
284 __extension__
extern __inline uint16x8_t
285 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
286 __arm_vreinterpretq_u16_u32 (uint32x4_t __a
)
288 return (uint16x8_t
) __a
;
291 __extension__
extern __inline uint16x8_t
292 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
293 __arm_vreinterpretq_u16_u64 (uint64x2_t __a
)
295 return (uint16x8_t
) __a
;
298 __extension__
extern __inline uint16x8_t
299 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
300 __arm_vreinterpretq_u16_u8 (uint8x16_t __a
)
302 return (uint16x8_t
) __a
;
306 __extension__
extern __inline uint32x4_t
307 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
308 __arm_vreinterpretq_u32_s16 (int16x8_t __a
)
310 return (uint32x4_t
) __a
;
313 __extension__
extern __inline uint32x4_t
314 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
315 __arm_vreinterpretq_u32_s32 (int32x4_t __a
)
317 return (uint32x4_t
) __a
;
320 __extension__
extern __inline uint32x4_t
321 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
322 __arm_vreinterpretq_u32_s64 (int64x2_t __a
)
324 return (uint32x4_t
) __a
;
327 __extension__
extern __inline uint32x4_t
328 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
329 __arm_vreinterpretq_u32_s8 (int8x16_t __a
)
331 return (uint32x4_t
) __a
;
334 __extension__
extern __inline uint32x4_t
335 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
336 __arm_vreinterpretq_u32_u16 (uint16x8_t __a
)
338 return (uint32x4_t
) __a
;
341 __extension__
extern __inline uint32x4_t
342 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
343 __arm_vreinterpretq_u32_u64 (uint64x2_t __a
)
345 return (uint32x4_t
) __a
;
348 __extension__
extern __inline uint32x4_t
349 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
350 __arm_vreinterpretq_u32_u8 (uint8x16_t __a
)
352 return (uint32x4_t
) __a
;
355 __extension__
extern __inline uint64x2_t
356 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
357 __arm_vreinterpretq_u64_s16 (int16x8_t __a
)
359 return (uint64x2_t
) __a
;
362 __extension__
extern __inline uint64x2_t
363 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
364 __arm_vreinterpretq_u64_s32 (int32x4_t __a
)
366 return (uint64x2_t
) __a
;
369 __extension__
extern __inline uint64x2_t
370 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
371 __arm_vreinterpretq_u64_s64 (int64x2_t __a
)
373 return (uint64x2_t
) __a
;
376 __extension__
extern __inline uint64x2_t
377 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
378 __arm_vreinterpretq_u64_s8 (int8x16_t __a
)
380 return (uint64x2_t
) __a
;
383 __extension__
extern __inline uint64x2_t
384 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
385 __arm_vreinterpretq_u64_u16 (uint16x8_t __a
)
387 return (uint64x2_t
) __a
;
390 __extension__
extern __inline uint64x2_t
391 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
392 __arm_vreinterpretq_u64_u32 (uint32x4_t __a
)
394 return (uint64x2_t
) __a
;
397 __extension__
extern __inline uint64x2_t
398 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
399 __arm_vreinterpretq_u64_u8 (uint8x16_t __a
)
401 return (uint64x2_t
) __a
;
404 __extension__
extern __inline uint8x16_t
405 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
406 __arm_vreinterpretq_u8_s16 (int16x8_t __a
)
408 return (uint8x16_t
) __a
;
411 __extension__
extern __inline uint8x16_t
412 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
413 __arm_vreinterpretq_u8_s32 (int32x4_t __a
)
415 return (uint8x16_t
) __a
;
418 __extension__
extern __inline uint8x16_t
419 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
420 __arm_vreinterpretq_u8_s64 (int64x2_t __a
)
422 return (uint8x16_t
) __a
;
425 __extension__
extern __inline uint8x16_t
426 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
427 __arm_vreinterpretq_u8_s8 (int8x16_t __a
)
429 return (uint8x16_t
) __a
;
432 __extension__
extern __inline uint8x16_t
433 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
434 __arm_vreinterpretq_u8_u16 (uint16x8_t __a
)
436 return (uint8x16_t
) __a
;
439 __extension__
extern __inline uint8x16_t
440 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
441 __arm_vreinterpretq_u8_u32 (uint32x4_t __a
)
443 return (uint8x16_t
) __a
;
446 __extension__
extern __inline uint8x16_t
447 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
448 __arm_vreinterpretq_u8_u64 (uint64x2_t __a
)
450 return (uint8x16_t
) __a
;
453 __extension__
extern __inline uint8x16_t
454 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
455 __arm_vuninitializedq_u8 (void)
458 __asm__ ("": "=w"(__uninit
));
462 __extension__
extern __inline uint16x8_t
463 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
464 __arm_vuninitializedq_u16 (void)
467 __asm__ ("": "=w"(__uninit
));
471 __extension__
extern __inline uint32x4_t
472 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
473 __arm_vuninitializedq_u32 (void)
476 __asm__ ("": "=w"(__uninit
));
480 __extension__
extern __inline uint64x2_t
481 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
482 __arm_vuninitializedq_u64 (void)
485 __asm__ ("": "=w"(__uninit
));
489 __extension__
extern __inline int8x16_t
490 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
491 __arm_vuninitializedq_s8 (void)
494 __asm__ ("": "=w"(__uninit
));
498 __extension__
extern __inline int16x8_t
499 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
500 __arm_vuninitializedq_s16 (void)
503 __asm__ ("": "=w"(__uninit
));
507 __extension__
extern __inline int32x4_t
508 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
509 __arm_vuninitializedq_s32 (void)
512 __asm__ ("": "=w"(__uninit
));
516 __extension__
extern __inline int64x2_t
517 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
518 __arm_vuninitializedq_s64 (void)
521 __asm__ ("": "=w"(__uninit
));
525 #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point. */
527 __extension__
extern __inline int32x4_t
528 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
529 __arm_vreinterpretq_s32_f16 (float16x8_t __a
)
531 return (int32x4_t
) __a
;
534 __extension__
extern __inline int32x4_t
535 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
536 __arm_vreinterpretq_s32_f32 (float32x4_t __a
)
538 return (int32x4_t
) __a
;
541 __extension__
extern __inline int16x8_t
542 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
543 __arm_vreinterpretq_s16_f16 (float16x8_t __a
)
545 return (int16x8_t
) __a
;
548 __extension__
extern __inline int16x8_t
549 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
550 __arm_vreinterpretq_s16_f32 (float32x4_t __a
)
552 return (int16x8_t
) __a
;
555 __extension__
extern __inline int64x2_t
556 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
557 __arm_vreinterpretq_s64_f16 (float16x8_t __a
)
559 return (int64x2_t
) __a
;
562 __extension__
extern __inline int64x2_t
563 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
564 __arm_vreinterpretq_s64_f32 (float32x4_t __a
)
566 return (int64x2_t
) __a
;
569 __extension__
extern __inline int8x16_t
570 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
571 __arm_vreinterpretq_s8_f16 (float16x8_t __a
)
573 return (int8x16_t
) __a
;
576 __extension__
extern __inline int8x16_t
577 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
578 __arm_vreinterpretq_s8_f32 (float32x4_t __a
)
580 return (int8x16_t
) __a
;
583 __extension__
extern __inline uint16x8_t
584 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
585 __arm_vreinterpretq_u16_f16 (float16x8_t __a
)
587 return (uint16x8_t
) __a
;
590 __extension__
extern __inline uint16x8_t
591 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
592 __arm_vreinterpretq_u16_f32 (float32x4_t __a
)
594 return (uint16x8_t
) __a
;
597 __extension__
extern __inline uint32x4_t
598 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
599 __arm_vreinterpretq_u32_f16 (float16x8_t __a
)
601 return (uint32x4_t
) __a
;
604 __extension__
extern __inline uint32x4_t
605 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
606 __arm_vreinterpretq_u32_f32 (float32x4_t __a
)
608 return (uint32x4_t
) __a
;
611 __extension__
extern __inline uint64x2_t
612 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
613 __arm_vreinterpretq_u64_f16 (float16x8_t __a
)
615 return (uint64x2_t
) __a
;
618 __extension__
extern __inline uint64x2_t
619 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
620 __arm_vreinterpretq_u64_f32 (float32x4_t __a
)
622 return (uint64x2_t
) __a
;
625 __extension__
extern __inline uint8x16_t
626 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
627 __arm_vreinterpretq_u8_f16 (float16x8_t __a
)
629 return (uint8x16_t
) __a
;
632 __extension__
extern __inline uint8x16_t
633 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
634 __arm_vreinterpretq_u8_f32 (float32x4_t __a
)
636 return (uint8x16_t
) __a
;
639 __extension__
extern __inline float16x8_t
640 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
641 __arm_vreinterpretq_f16_f32 (float32x4_t __a
)
643 return (float16x8_t
) __a
;
646 __extension__
extern __inline float16x8_t
647 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
648 __arm_vreinterpretq_f16_s16 (int16x8_t __a
)
650 return (float16x8_t
) __a
;
653 __extension__
extern __inline float16x8_t
654 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
655 __arm_vreinterpretq_f16_s32 (int32x4_t __a
)
657 return (float16x8_t
) __a
;
660 __extension__
extern __inline float16x8_t
661 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
662 __arm_vreinterpretq_f16_s64 (int64x2_t __a
)
664 return (float16x8_t
) __a
;
667 __extension__
extern __inline float16x8_t
668 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
669 __arm_vreinterpretq_f16_s8 (int8x16_t __a
)
671 return (float16x8_t
) __a
;
674 __extension__
extern __inline float16x8_t
675 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
676 __arm_vreinterpretq_f16_u16 (uint16x8_t __a
)
678 return (float16x8_t
) __a
;
681 __extension__
extern __inline float16x8_t
682 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
683 __arm_vreinterpretq_f16_u32 (uint32x4_t __a
)
685 return (float16x8_t
) __a
;
688 __extension__
extern __inline float16x8_t
689 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
690 __arm_vreinterpretq_f16_u64 (uint64x2_t __a
)
692 return (float16x8_t
) __a
;
695 __extension__
extern __inline float16x8_t
696 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
697 __arm_vreinterpretq_f16_u8 (uint8x16_t __a
)
699 return (float16x8_t
) __a
;
702 __extension__
extern __inline float32x4_t
703 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
704 __arm_vreinterpretq_f32_f16 (float16x8_t __a
)
706 return (float32x4_t
) __a
;
709 __extension__
extern __inline float32x4_t
710 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
711 __arm_vreinterpretq_f32_s16 (int16x8_t __a
)
713 return (float32x4_t
) __a
;
716 __extension__
extern __inline float32x4_t
717 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
718 __arm_vreinterpretq_f32_s32 (int32x4_t __a
)
720 return (float32x4_t
) __a
;
723 __extension__
extern __inline float32x4_t
724 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
725 __arm_vreinterpretq_f32_s64 (int64x2_t __a
)
727 return (float32x4_t
) __a
;
730 __extension__
extern __inline float32x4_t
731 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
732 __arm_vreinterpretq_f32_s8 (int8x16_t __a
)
734 return (float32x4_t
) __a
;
737 __extension__
extern __inline float32x4_t
738 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
739 __arm_vreinterpretq_f32_u16 (uint16x8_t __a
)
741 return (float32x4_t
) __a
;
744 __extension__
extern __inline float32x4_t
745 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
746 __arm_vreinterpretq_f32_u32 (uint32x4_t __a
)
748 return (float32x4_t
) __a
;
751 __extension__
extern __inline float32x4_t
752 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
753 __arm_vreinterpretq_f32_u64 (uint64x2_t __a
)
755 return (float32x4_t
) __a
;
758 __extension__
extern __inline float32x4_t
759 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
760 __arm_vreinterpretq_f32_u8 (uint8x16_t __a
)
762 return (float32x4_t
) __a
;
765 __extension__
extern __inline float16x8_t
766 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
767 __arm_vuninitializedq_f16 (void)
769 float16x8_t __uninit
;
770 __asm__ ("": "=w" (__uninit
));
774 __extension__
extern __inline float32x4_t
775 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
776 __arm_vuninitializedq_f32 (void)
778 float32x4_t __uninit
;
779 __asm__ ("": "=w" (__uninit
));
787 __extension__
extern __inline int16x8_t
788 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
789 __arm_vreinterpretq_s16 (int32x4_t __a
)
791 return __arm_vreinterpretq_s16_s32 (__a
);
794 __extension__
extern __inline int16x8_t
795 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
796 __arm_vreinterpretq_s16 (int64x2_t __a
)
798 return __arm_vreinterpretq_s16_s64 (__a
);
801 __extension__
extern __inline int16x8_t
802 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
803 __arm_vreinterpretq_s16 (int8x16_t __a
)
805 return __arm_vreinterpretq_s16_s8 (__a
);
808 __extension__
extern __inline int16x8_t
809 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
810 __arm_vreinterpretq_s16 (uint16x8_t __a
)
812 return __arm_vreinterpretq_s16_u16 (__a
);
815 __extension__
extern __inline int16x8_t
816 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
817 __arm_vreinterpretq_s16 (uint32x4_t __a
)
819 return __arm_vreinterpretq_s16_u32 (__a
);
822 __extension__
extern __inline int16x8_t
823 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
824 __arm_vreinterpretq_s16 (uint64x2_t __a
)
826 return __arm_vreinterpretq_s16_u64 (__a
);
829 __extension__
extern __inline int16x8_t
830 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
831 __arm_vreinterpretq_s16 (uint8x16_t __a
)
833 return __arm_vreinterpretq_s16_u8 (__a
);
836 __extension__
extern __inline int32x4_t
837 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
838 __arm_vreinterpretq_s32 (int16x8_t __a
)
840 return __arm_vreinterpretq_s32_s16 (__a
);
843 __extension__
extern __inline int32x4_t
844 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
845 __arm_vreinterpretq_s32 (int64x2_t __a
)
847 return __arm_vreinterpretq_s32_s64 (__a
);
850 __extension__
extern __inline int32x4_t
851 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
852 __arm_vreinterpretq_s32 (int8x16_t __a
)
854 return __arm_vreinterpretq_s32_s8 (__a
);
857 __extension__
extern __inline int32x4_t
858 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
859 __arm_vreinterpretq_s32 (uint16x8_t __a
)
861 return __arm_vreinterpretq_s32_u16 (__a
);
864 __extension__
extern __inline int32x4_t
865 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
866 __arm_vreinterpretq_s32 (uint32x4_t __a
)
868 return __arm_vreinterpretq_s32_u32 (__a
);
871 __extension__
extern __inline int32x4_t
872 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
873 __arm_vreinterpretq_s32 (uint64x2_t __a
)
875 return __arm_vreinterpretq_s32_u64 (__a
);
878 __extension__
extern __inline int32x4_t
879 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
880 __arm_vreinterpretq_s32 (uint8x16_t __a
)
882 return __arm_vreinterpretq_s32_u8 (__a
);
885 __extension__
extern __inline int64x2_t
886 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
887 __arm_vreinterpretq_s64 (int16x8_t __a
)
889 return __arm_vreinterpretq_s64_s16 (__a
);
892 __extension__
extern __inline int64x2_t
893 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
894 __arm_vreinterpretq_s64 (int32x4_t __a
)
896 return __arm_vreinterpretq_s64_s32 (__a
);
899 __extension__
extern __inline int64x2_t
900 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
901 __arm_vreinterpretq_s64 (int8x16_t __a
)
903 return __arm_vreinterpretq_s64_s8 (__a
);
906 __extension__
extern __inline int64x2_t
907 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
908 __arm_vreinterpretq_s64 (uint16x8_t __a
)
910 return __arm_vreinterpretq_s64_u16 (__a
);
913 __extension__
extern __inline int64x2_t
914 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
915 __arm_vreinterpretq_s64 (uint32x4_t __a
)
917 return __arm_vreinterpretq_s64_u32 (__a
);
920 __extension__
extern __inline int64x2_t
921 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
922 __arm_vreinterpretq_s64 (uint64x2_t __a
)
924 return __arm_vreinterpretq_s64_u64 (__a
);
927 __extension__
extern __inline int64x2_t
928 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
929 __arm_vreinterpretq_s64 (uint8x16_t __a
)
931 return __arm_vreinterpretq_s64_u8 (__a
);
934 __extension__
extern __inline int8x16_t
935 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
936 __arm_vreinterpretq_s8 (int16x8_t __a
)
938 return __arm_vreinterpretq_s8_s16 (__a
);
941 __extension__
extern __inline int8x16_t
942 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
943 __arm_vreinterpretq_s8 (int32x4_t __a
)
945 return __arm_vreinterpretq_s8_s32 (__a
);
948 __extension__
extern __inline int8x16_t
949 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
950 __arm_vreinterpretq_s8 (int64x2_t __a
)
952 return __arm_vreinterpretq_s8_s64 (__a
);
955 __extension__
extern __inline int8x16_t
956 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
957 __arm_vreinterpretq_s8 (uint16x8_t __a
)
959 return __arm_vreinterpretq_s8_u16 (__a
);
962 __extension__
extern __inline int8x16_t
963 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
964 __arm_vreinterpretq_s8 (uint32x4_t __a
)
966 return __arm_vreinterpretq_s8_u32 (__a
);
969 __extension__
extern __inline int8x16_t
970 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
971 __arm_vreinterpretq_s8 (uint64x2_t __a
)
973 return __arm_vreinterpretq_s8_u64 (__a
);
976 __extension__
extern __inline int8x16_t
977 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
978 __arm_vreinterpretq_s8 (uint8x16_t __a
)
980 return __arm_vreinterpretq_s8_u8 (__a
);
983 __extension__
extern __inline uint16x8_t
984 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
985 __arm_vreinterpretq_u16 (int16x8_t __a
)
987 return __arm_vreinterpretq_u16_s16 (__a
);
990 __extension__
extern __inline uint16x8_t
991 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
992 __arm_vreinterpretq_u16 (int32x4_t __a
)
994 return __arm_vreinterpretq_u16_s32 (__a
);
997 __extension__
extern __inline uint16x8_t
998 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
999 __arm_vreinterpretq_u16 (int64x2_t __a
)
1001 return __arm_vreinterpretq_u16_s64 (__a
);
1004 __extension__
extern __inline uint16x8_t
1005 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1006 __arm_vreinterpretq_u16 (int8x16_t __a
)
1008 return __arm_vreinterpretq_u16_s8 (__a
);
1011 __extension__
extern __inline uint16x8_t
1012 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1013 __arm_vreinterpretq_u16 (uint32x4_t __a
)
1015 return __arm_vreinterpretq_u16_u32 (__a
);
1018 __extension__
extern __inline uint16x8_t
1019 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1020 __arm_vreinterpretq_u16 (uint64x2_t __a
)
1022 return __arm_vreinterpretq_u16_u64 (__a
);
1025 __extension__
extern __inline uint16x8_t
1026 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1027 __arm_vreinterpretq_u16 (uint8x16_t __a
)
1029 return __arm_vreinterpretq_u16_u8 (__a
);
1032 __extension__
extern __inline uint32x4_t
1033 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1034 __arm_vreinterpretq_u32 (int16x8_t __a
)
1036 return __arm_vreinterpretq_u32_s16 (__a
);
1039 __extension__
extern __inline uint32x4_t
1040 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1041 __arm_vreinterpretq_u32 (int32x4_t __a
)
1043 return __arm_vreinterpretq_u32_s32 (__a
);
1046 __extension__
extern __inline uint32x4_t
1047 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1048 __arm_vreinterpretq_u32 (int64x2_t __a
)
1050 return __arm_vreinterpretq_u32_s64 (__a
);
1053 __extension__
extern __inline uint32x4_t
1054 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1055 __arm_vreinterpretq_u32 (int8x16_t __a
)
1057 return __arm_vreinterpretq_u32_s8 (__a
);
1060 __extension__
extern __inline uint32x4_t
1061 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1062 __arm_vreinterpretq_u32 (uint16x8_t __a
)
1064 return __arm_vreinterpretq_u32_u16 (__a
);
1067 __extension__
extern __inline uint32x4_t
1068 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1069 __arm_vreinterpretq_u32 (uint64x2_t __a
)
1071 return __arm_vreinterpretq_u32_u64 (__a
);
1074 __extension__
extern __inline uint32x4_t
1075 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1076 __arm_vreinterpretq_u32 (uint8x16_t __a
)
1078 return __arm_vreinterpretq_u32_u8 (__a
);
1081 __extension__
extern __inline uint64x2_t
1082 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1083 __arm_vreinterpretq_u64 (int16x8_t __a
)
1085 return __arm_vreinterpretq_u64_s16 (__a
);
1088 __extension__
extern __inline uint64x2_t
1089 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1090 __arm_vreinterpretq_u64 (int32x4_t __a
)
1092 return __arm_vreinterpretq_u64_s32 (__a
);
1095 __extension__
extern __inline uint64x2_t
1096 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1097 __arm_vreinterpretq_u64 (int64x2_t __a
)
1099 return __arm_vreinterpretq_u64_s64 (__a
);
1102 __extension__
extern __inline uint64x2_t
1103 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1104 __arm_vreinterpretq_u64 (int8x16_t __a
)
1106 return __arm_vreinterpretq_u64_s8 (__a
);
1109 __extension__
extern __inline uint64x2_t
1110 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1111 __arm_vreinterpretq_u64 (uint16x8_t __a
)
1113 return __arm_vreinterpretq_u64_u16 (__a
);
1116 __extension__
extern __inline uint64x2_t
1117 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1118 __arm_vreinterpretq_u64 (uint32x4_t __a
)
1120 return __arm_vreinterpretq_u64_u32 (__a
);
1123 __extension__
extern __inline uint64x2_t
1124 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1125 __arm_vreinterpretq_u64 (uint8x16_t __a
)
1127 return __arm_vreinterpretq_u64_u8 (__a
);
1130 __extension__
extern __inline uint8x16_t
1131 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1132 __arm_vreinterpretq_u8 (int16x8_t __a
)
1134 return __arm_vreinterpretq_u8_s16 (__a
);
1137 __extension__
extern __inline uint8x16_t
1138 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1139 __arm_vreinterpretq_u8 (int32x4_t __a
)
1141 return __arm_vreinterpretq_u8_s32 (__a
);
1144 __extension__
extern __inline uint8x16_t
1145 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1146 __arm_vreinterpretq_u8 (int64x2_t __a
)
1148 return __arm_vreinterpretq_u8_s64 (__a
);
1151 __extension__
extern __inline uint8x16_t
1152 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1153 __arm_vreinterpretq_u8 (int8x16_t __a
)
1155 return __arm_vreinterpretq_u8_s8 (__a
);
1158 __extension__
extern __inline uint8x16_t
1159 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1160 __arm_vreinterpretq_u8 (uint16x8_t __a
)
1162 return __arm_vreinterpretq_u8_u16 (__a
);
1165 __extension__
extern __inline uint8x16_t
1166 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1167 __arm_vreinterpretq_u8 (uint32x4_t __a
)
1169 return __arm_vreinterpretq_u8_u32 (__a
);
1172 __extension__
extern __inline uint8x16_t
1173 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1174 __arm_vreinterpretq_u8 (uint64x2_t __a
)
1176 return __arm_vreinterpretq_u8_u64 (__a
);
1179 __extension__
extern __inline uint8x16_t
1180 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1181 __arm_vuninitializedq (uint8x16_t
/* __v ATTRIBUTE UNUSED */)
1183 return __arm_vuninitializedq_u8 ();
1186 __extension__
extern __inline uint16x8_t
1187 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1188 __arm_vuninitializedq (uint16x8_t
/* __v ATTRIBUTE UNUSED */)
1190 return __arm_vuninitializedq_u16 ();
1193 __extension__
extern __inline uint32x4_t
1194 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1195 __arm_vuninitializedq (uint32x4_t
/* __v ATTRIBUTE UNUSED */)
1197 return __arm_vuninitializedq_u32 ();
1200 __extension__
extern __inline uint64x2_t
1201 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1202 __arm_vuninitializedq (uint64x2_t
/* __v ATTRIBUTE UNUSED */)
1204 return __arm_vuninitializedq_u64 ();
1207 __extension__
extern __inline int8x16_t
1208 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1209 __arm_vuninitializedq (int8x16_t
/* __v ATTRIBUTE UNUSED */)
1211 return __arm_vuninitializedq_s8 ();
1214 __extension__
extern __inline int16x8_t
1215 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1216 __arm_vuninitializedq (int16x8_t
/* __v ATTRIBUTE UNUSED */)
1218 return __arm_vuninitializedq_s16 ();
1221 __extension__
extern __inline int32x4_t
1222 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1223 __arm_vuninitializedq (int32x4_t
/* __v ATTRIBUTE UNUSED */)
1225 return __arm_vuninitializedq_s32 ();
1228 __extension__
extern __inline int64x2_t
1229 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1230 __arm_vuninitializedq (int64x2_t
/* __v ATTRIBUTE UNUSED */)
1232 return __arm_vuninitializedq_s64 ();
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
)
1240 return __arm_vreinterpretq_s32_f16 (__a
);
1243 __extension__
extern __inline int32x4_t
1244 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1245 __arm_vreinterpretq_s32 (float32x4_t __a
)
1247 return __arm_vreinterpretq_s32_f32 (__a
);
1250 __extension__
extern __inline int16x8_t
1251 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1252 __arm_vreinterpretq_s16 (float16x8_t __a
)
1254 return __arm_vreinterpretq_s16_f16 (__a
);
1257 __extension__
extern __inline int16x8_t
1258 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1259 __arm_vreinterpretq_s16 (float32x4_t __a
)
1261 return __arm_vreinterpretq_s16_f32 (__a
);
1264 __extension__
extern __inline int64x2_t
1265 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1266 __arm_vreinterpretq_s64 (float16x8_t __a
)
1268 return __arm_vreinterpretq_s64_f16 (__a
);
1271 __extension__
extern __inline int64x2_t
1272 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1273 __arm_vreinterpretq_s64 (float32x4_t __a
)
1275 return __arm_vreinterpretq_s64_f32 (__a
);
1278 __extension__
extern __inline int8x16_t
1279 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1280 __arm_vreinterpretq_s8 (float16x8_t __a
)
1282 return __arm_vreinterpretq_s8_f16 (__a
);
1285 __extension__
extern __inline int8x16_t
1286 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1287 __arm_vreinterpretq_s8 (float32x4_t __a
)
1289 return __arm_vreinterpretq_s8_f32 (__a
);
1292 __extension__
extern __inline uint16x8_t
1293 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1294 __arm_vreinterpretq_u16 (float16x8_t __a
)
1296 return __arm_vreinterpretq_u16_f16 (__a
);
1299 __extension__
extern __inline uint16x8_t
1300 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1301 __arm_vreinterpretq_u16 (float32x4_t __a
)
1303 return __arm_vreinterpretq_u16_f32 (__a
);
1306 __extension__
extern __inline uint32x4_t
1307 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1308 __arm_vreinterpretq_u32 (float16x8_t __a
)
1310 return __arm_vreinterpretq_u32_f16 (__a
);
1313 __extension__
extern __inline uint32x4_t
1314 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1315 __arm_vreinterpretq_u32 (float32x4_t __a
)
1317 return __arm_vreinterpretq_u32_f32 (__a
);
1320 __extension__
extern __inline uint64x2_t
1321 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1322 __arm_vreinterpretq_u64 (float16x8_t __a
)
1324 return __arm_vreinterpretq_u64_f16 (__a
);
1327 __extension__
extern __inline uint64x2_t
1328 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1329 __arm_vreinterpretq_u64 (float32x4_t __a
)
1331 return __arm_vreinterpretq_u64_f32 (__a
);
1334 __extension__
extern __inline uint8x16_t
1335 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1336 __arm_vreinterpretq_u8 (float16x8_t __a
)
1338 return __arm_vreinterpretq_u8_f16 (__a
);
1341 __extension__
extern __inline uint8x16_t
1342 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1343 __arm_vreinterpretq_u8 (float32x4_t __a
)
1345 return __arm_vreinterpretq_u8_f32 (__a
);
1348 __extension__
extern __inline float16x8_t
1349 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1350 __arm_vreinterpretq_f16 (float32x4_t __a
)
1352 return __arm_vreinterpretq_f16_f32 (__a
);
1355 __extension__
extern __inline float16x8_t
1356 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1357 __arm_vreinterpretq_f16 (int16x8_t __a
)
1359 return __arm_vreinterpretq_f16_s16 (__a
);
1362 __extension__
extern __inline float16x8_t
1363 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1364 __arm_vreinterpretq_f16 (int32x4_t __a
)
1366 return __arm_vreinterpretq_f16_s32 (__a
);
1369 __extension__
extern __inline float16x8_t
1370 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1371 __arm_vreinterpretq_f16 (int64x2_t __a
)
1373 return __arm_vreinterpretq_f16_s64 (__a
);
1376 __extension__
extern __inline float16x8_t
1377 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1378 __arm_vreinterpretq_f16 (int8x16_t __a
)
1380 return __arm_vreinterpretq_f16_s8 (__a
);
1383 __extension__
extern __inline float16x8_t
1384 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1385 __arm_vreinterpretq_f16 (uint16x8_t __a
)
1387 return __arm_vreinterpretq_f16_u16 (__a
);
1390 __extension__
extern __inline float16x8_t
1391 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1392 __arm_vreinterpretq_f16 (uint32x4_t __a
)
1394 return __arm_vreinterpretq_f16_u32 (__a
);
1397 __extension__
extern __inline float16x8_t
1398 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1399 __arm_vreinterpretq_f16 (uint64x2_t __a
)
1401 return __arm_vreinterpretq_f16_u64 (__a
);
1404 __extension__
extern __inline float16x8_t
1405 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1406 __arm_vreinterpretq_f16 (uint8x16_t __a
)
1408 return __arm_vreinterpretq_f16_u8 (__a
);
1411 __extension__
extern __inline float32x4_t
1412 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1413 __arm_vreinterpretq_f32 (float16x8_t __a
)
1415 return __arm_vreinterpretq_f32_f16 (__a
);
1418 __extension__
extern __inline float32x4_t
1419 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1420 __arm_vreinterpretq_f32 (int16x8_t __a
)
1422 return __arm_vreinterpretq_f32_s16 (__a
);
1425 __extension__
extern __inline float32x4_t
1426 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1427 __arm_vreinterpretq_f32 (int32x4_t __a
)
1429 return __arm_vreinterpretq_f32_s32 (__a
);
1432 __extension__
extern __inline float32x4_t
1433 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1434 __arm_vreinterpretq_f32 (int64x2_t __a
)
1436 return __arm_vreinterpretq_f32_s64 (__a
);
1439 __extension__
extern __inline float32x4_t
1440 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1441 __arm_vreinterpretq_f32 (int8x16_t __a
)
1443 return __arm_vreinterpretq_f32_s8 (__a
);
1446 __extension__
extern __inline float32x4_t
1447 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1448 __arm_vreinterpretq_f32 (uint16x8_t __a
)
1450 return __arm_vreinterpretq_f32_u16 (__a
);
1453 __extension__
extern __inline float32x4_t
1454 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1455 __arm_vreinterpretq_f32 (uint32x4_t __a
)
1457 return __arm_vreinterpretq_f32_u32 (__a
);
1460 __extension__
extern __inline float32x4_t
1461 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1462 __arm_vreinterpretq_f32 (uint64x2_t __a
)
1464 return __arm_vreinterpretq_f32_u64 (__a
);
1467 __extension__
extern __inline float32x4_t
1468 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1469 __arm_vreinterpretq_f32 (uint8x16_t __a
)
1471 return __arm_vreinterpretq_f32_u8 (__a
);
1474 __extension__
extern __inline float16x8_t
1475 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1476 __arm_vuninitializedq (float16x8_t
/* __v ATTRIBUTE UNUSED */)
1478 return __arm_vuninitializedq_f16 ();
1481 __extension__
extern __inline float32x4_t
1482 __attribute__ ((__always_inline__
, __gnu_inline__
, __artificial__
))
1483 __arm_vuninitializedq (float32x4_t
/* __v ATTRIBUTE UNUSED */)
1485 return __arm_vuninitializedq_f32 ();
1487 #endif /* __ARM_FEATURE_MVE & 2 (MVE floating point) */
1488 #endif /* __cplusplus */
1490 #endif /* _GCC_ARM_MVE_H. */