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__))
__arm_vreinterpretq_s16_s32(int32x4_t __a)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__))
__arm_vreinterpretq_s16_s64(int64x2_t __a)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__))
__arm_vreinterpretq_s16_s8(int8x16_t __a)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__))
__arm_vreinterpretq_s16_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_s16_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_s16_u64(uint64x2_t __a)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__))
__arm_vreinterpretq_s16_u8(uint8x16_t __a)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__))
__arm_vreinterpretq_s32_s16(int16x8_t __a)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__))
__arm_vreinterpretq_s32_s64(int64x2_t __a)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__))
__arm_vreinterpretq_s32_s8(int8x16_t __a)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__))
__arm_vreinterpretq_s32_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_s32_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_s32_u64(uint64x2_t __a)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__))
__arm_vreinterpretq_s32_u8(uint8x16_t __a)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__))
__arm_vreinterpretq_s64_s16(int16x8_t __a)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__))
__arm_vreinterpretq_s64_s32(int32x4_t __a)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__))
__arm_vreinterpretq_s64_s8(int8x16_t __a)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__))
__arm_vreinterpretq_s64_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_s64_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_s64_u64(uint64x2_t __a)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__))
__arm_vreinterpretq_s64_u8(uint8x16_t __a)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__))
__arm_vreinterpretq_s8_s16(int16x8_t __a)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__))
__arm_vreinterpretq_s8_s32(int32x4_t __a)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__))
__arm_vreinterpretq_s8_s64(int64x2_t __a)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__))
__arm_vreinterpretq_s8_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_s8_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_s8_u64(uint64x2_t __a)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__))
__arm_vreinterpretq_s8_u8(uint8x16_t __a)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__))
__arm_vreinterpretq_u16_s16(int16x8_t __a)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__))
__arm_vreinterpretq_u16_s32(int32x4_t __a)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__))
__arm_vreinterpretq_u16_s64(int64x2_t __a)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__))
__arm_vreinterpretq_u16_s8(int8x16_t __a)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__))
__arm_vreinterpretq_u16_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_u16_u64(uint64x2_t __a)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__))
__arm_vreinterpretq_u16_u8(uint8x16_t __a)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__))
__arm_vreinterpretq_u32_s16(int16x8_t __a)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__))
__arm_vreinterpretq_u32_s32(int32x4_t __a)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__))
__arm_vreinterpretq_u32_s64(int64x2_t __a)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__))
__arm_vreinterpretq_u32_s8(int8x16_t __a)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__))
__arm_vreinterpretq_u32_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_u32_u64(uint64x2_t __a)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__))
__arm_vreinterpretq_u32_u8(uint8x16_t __a)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__))
__arm_vreinterpretq_u64_s16(int16x8_t __a)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__))
__arm_vreinterpretq_u64_s32(int32x4_t __a)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__))
__arm_vreinterpretq_u64_s64(int64x2_t __a)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__))
__arm_vreinterpretq_u64_s8(int8x16_t __a)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__))
__arm_vreinterpretq_u64_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_u64_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_u64_u8(uint8x16_t __a)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__))
__arm_vreinterpretq_u8_s16(int16x8_t __a)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__))
__arm_vreinterpretq_u8_s32(int32x4_t __a)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__))
__arm_vreinterpretq_u8_s64(int64x2_t __a)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__))
__arm_vreinterpretq_u8_s8(int8x16_t __a)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__))
__arm_vreinterpretq_u8_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_u8_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_u8_u64(uint64x2_t __a)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__))
__arm_vuninitializedq_u8(void)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__))
__arm_vuninitializedq_u16(void)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__))
__arm_vuninitializedq_u32(void)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__))
__arm_vuninitializedq_u64(void)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__))
__arm_vuninitializedq_s8(void)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__))
__arm_vuninitializedq_s16(void)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__))
__arm_vuninitializedq_s32(void)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__))
__arm_vuninitializedq_s64(void)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__))
__arm_vreinterpretq_s32_f16(float16x8_t __a)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__))
__arm_vreinterpretq_s32_f32(float32x4_t __a)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__))
__arm_vreinterpretq_s16_f16(float16x8_t __a)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__))
__arm_vreinterpretq_s16_f32(float32x4_t __a)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__))
__arm_vreinterpretq_s64_f16(float16x8_t __a)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__))
__arm_vreinterpretq_s64_f32(float32x4_t __a)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__))
__arm_vreinterpretq_s8_f16(float16x8_t __a)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__))
__arm_vreinterpretq_s8_f32(float32x4_t __a)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__))
__arm_vreinterpretq_u16_f16(float16x8_t __a)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__))
__arm_vreinterpretq_u16_f32(float32x4_t __a)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__))
__arm_vreinterpretq_u32_f16(float16x8_t __a)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__))
__arm_vreinterpretq_u32_f32(float32x4_t __a)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__))
__arm_vreinterpretq_u64_f16(float16x8_t __a)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__))
__arm_vreinterpretq_u64_f32(float32x4_t __a)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__))
__arm_vreinterpretq_u8_f16(float16x8_t __a)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__))
__arm_vreinterpretq_u8_f32(float32x4_t __a)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__))
__arm_vreinterpretq_f16_f32(float32x4_t __a)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__))
__arm_vreinterpretq_f16_s16(int16x8_t __a)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__))
__arm_vreinterpretq_f16_s32(int32x4_t __a)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__))
__arm_vreinterpretq_f16_s64(int64x2_t __a)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__))
__arm_vreinterpretq_f16_s8(int8x16_t __a)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__))
__arm_vreinterpretq_f16_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_f16_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_f16_u64(uint64x2_t __a)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__))
__arm_vreinterpretq_f16_u8(uint8x16_t __a)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__))
__arm_vreinterpretq_f32_f16(float16x8_t __a)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__))
__arm_vreinterpretq_f32_s16(int16x8_t __a)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__))
__arm_vreinterpretq_f32_s32(int32x4_t __a)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__))
__arm_vreinterpretq_f32_s64(int64x2_t __a)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__))
__arm_vreinterpretq_f32_s8(int8x16_t __a)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__))
__arm_vreinterpretq_f32_u16(uint16x8_t __a)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__))
__arm_vreinterpretq_f32_u32(uint32x4_t __a)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__))
__arm_vreinterpretq_f32_u64(uint64x2_t __a)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__))
__arm_vreinterpretq_f32_u8(uint8x16_t __a)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__))
__arm_vuninitializedq_f16(void)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__))
__arm_vuninitializedq_f32(void)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__))
__arm_vreinterpretq_s16(int32x4_t __a)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__))
__arm_vreinterpretq_s16(int64x2_t __a)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__))
__arm_vreinterpretq_s16(int8x16_t __a)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__))
__arm_vreinterpretq_s16(uint16x8_t __a)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__))
__arm_vreinterpretq_s16(uint32x4_t __a)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__))
__arm_vreinterpretq_s16(uint64x2_t __a)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__))
__arm_vreinterpretq_s16(uint8x16_t __a)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__))
__arm_vreinterpretq_s32(int16x8_t __a)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__))
__arm_vreinterpretq_s32(int64x2_t __a)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__))
__arm_vreinterpretq_s32(int8x16_t __a)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__))
__arm_vreinterpretq_s32(uint16x8_t __a)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__))
__arm_vreinterpretq_s32(uint32x4_t __a)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__))
__arm_vreinterpretq_s32(uint64x2_t __a)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__))
__arm_vreinterpretq_s32(uint8x16_t __a)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__))
__arm_vreinterpretq_s64(int16x8_t __a)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__))
__arm_vreinterpretq_s64(int32x4_t __a)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__))
__arm_vreinterpretq_s64(int8x16_t __a)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__))
__arm_vreinterpretq_s64(uint16x8_t __a)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__))
__arm_vreinterpretq_s64(uint32x4_t __a)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__))
__arm_vreinterpretq_s64(uint64x2_t __a)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__))
__arm_vreinterpretq_s64(uint8x16_t __a)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__))
__arm_vreinterpretq_s8(int16x8_t __a)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__))
__arm_vreinterpretq_s8(int32x4_t __a)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__))
__arm_vreinterpretq_s8(int64x2_t __a)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__))
__arm_vreinterpretq_s8(uint16x8_t __a)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__))
__arm_vreinterpretq_s8(uint32x4_t __a)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__))
__arm_vreinterpretq_s8(uint64x2_t __a)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__))
__arm_vreinterpretq_s8(uint8x16_t __a)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__))
__arm_vreinterpretq_u16(int16x8_t __a)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__))
__arm_vreinterpretq_u16(int32x4_t __a)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__))
__arm_vreinterpretq_u16(int64x2_t __a)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__))
__arm_vreinterpretq_u16(int8x16_t __a)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__))
__arm_vreinterpretq_u16(uint32x4_t __a)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__))
__arm_vreinterpretq_u16(uint64x2_t __a)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__))
__arm_vreinterpretq_u16(uint8x16_t __a)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__))
__arm_vreinterpretq_u32(int16x8_t __a)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__))
__arm_vreinterpretq_u32(int32x4_t __a)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__))
__arm_vreinterpretq_u32(int64x2_t __a)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__))
__arm_vreinterpretq_u32(int8x16_t __a)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__))
__arm_vreinterpretq_u32(uint16x8_t __a)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__))
__arm_vreinterpretq_u32(uint64x2_t __a)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__))
__arm_vreinterpretq_u32(uint8x16_t __a)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__))
__arm_vreinterpretq_u64(int16x8_t __a)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__))
__arm_vreinterpretq_u64(int32x4_t __a)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__))
__arm_vreinterpretq_u64(int64x2_t __a)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__))
__arm_vreinterpretq_u64(int8x16_t __a)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__))
__arm_vreinterpretq_u64(uint16x8_t __a)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__))
__arm_vreinterpretq_u64(uint32x4_t __a)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__))
__arm_vreinterpretq_u64(uint8x16_t __a)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__))
__arm_vreinterpretq_u8(int16x8_t __a)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__))
__arm_vreinterpretq_u8(int32x4_t __a)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__))
__arm_vreinterpretq_u8(int64x2_t __a)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__))
__arm_vreinterpretq_u8(int8x16_t __a)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__))
__arm_vreinterpretq_u8(uint16x8_t __a)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__))
__arm_vreinterpretq_u8(uint32x4_t __a)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__))
__arm_vreinterpretq_u8(uint64x2_t __a)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__))
__arm_vuninitializedq(uint8x16_t)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__))
__arm_vuninitializedq(uint16x8_t)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__))
__arm_vuninitializedq(uint32x4_t)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__))
__arm_vuninitializedq(uint64x2_t)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__))
__arm_vuninitializedq(int8x16_t)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__))
__arm_vuninitializedq(int16x8_t)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__))
__arm_vuninitializedq(int32x4_t)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__))
__arm_vuninitializedq(int64x2_t)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__))
__arm_vreinterpretq_s32(float16x8_t __a)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__))
__arm_vreinterpretq_s32(float32x4_t __a)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__))
__arm_vreinterpretq_s16(float16x8_t __a)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__))
__arm_vreinterpretq_s16(float32x4_t __a)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__))
__arm_vreinterpretq_s64(float16x8_t __a)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__))
__arm_vreinterpretq_s64(float32x4_t __a)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__))
__arm_vreinterpretq_s8(float16x8_t __a)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__))
__arm_vreinterpretq_s8(float32x4_t __a)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__))
__arm_vreinterpretq_u16(float16x8_t __a)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__))
__arm_vreinterpretq_u16(float32x4_t __a)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__))
__arm_vreinterpretq_u32(float16x8_t __a)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__))
__arm_vreinterpretq_u32(float32x4_t __a)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__))
__arm_vreinterpretq_u64(float16x8_t __a)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__))
__arm_vreinterpretq_u64(float32x4_t __a)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__))
__arm_vreinterpretq_u8(float16x8_t __a)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__))
__arm_vreinterpretq_u8(float32x4_t __a)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__))
__arm_vreinterpretq_f16(float32x4_t __a)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__))
__arm_vreinterpretq_f16(int16x8_t __a)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__))
__arm_vreinterpretq_f16(int32x4_t __a)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__))
__arm_vreinterpretq_f16(int64x2_t __a)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__))
__arm_vreinterpretq_f16(int8x16_t __a)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__))
__arm_vreinterpretq_f16(uint16x8_t __a)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__))
__arm_vreinterpretq_f16(uint32x4_t __a)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__))
__arm_vreinterpretq_f16(uint64x2_t __a)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__))
__arm_vreinterpretq_f16(uint8x16_t __a)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__))
__arm_vreinterpretq_f32(float16x8_t __a)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__))
__arm_vreinterpretq_f32(int16x8_t __a)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__))
__arm_vreinterpretq_f32(int32x4_t __a)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__))
__arm_vreinterpretq_f32(int64x2_t __a)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__))
__arm_vreinterpretq_f32(int8x16_t __a)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__))
__arm_vreinterpretq_f32(uint16x8_t __a)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__))
__arm_vreinterpretq_f32(uint32x4_t __a)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__))
__arm_vreinterpretq_f32(uint64x2_t __a)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__))
__arm_vreinterpretq_f32(uint8x16_t __a)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__))
__arm_vuninitializedq(float16x8_t)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__))
__arm_vuninitializedq(float32x4_t)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.  */
1491