RISC-V: Error if function declared with different interrupt modes.
[official-gcc.git] / gcc / config / arm / arm_neon.h
blob6213a4aa0dabec756441523eee870e11485bb1c7
1 /* ARM NEON intrinsics include file.
3 Copyright (C) 2006-2018 Free Software Foundation, Inc.
4 Contributed by CodeSourcery.
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 Under Section 7 of GPL version 3, you are granted additional
19 permissions described in the GCC Runtime Library Exception, version
20 3.1, as published by the Free Software Foundation.
22 You should have received a copy of the GNU General Public License and
23 a copy of the GCC Runtime Library Exception along with this program;
24 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25 <http://www.gnu.org/licenses/>. */
27 #ifndef _GCC_ARM_NEON_H
28 #define _GCC_ARM_NEON_H 1
30 #ifndef __ARM_FP
31 #error "NEON intrinsics not available with the soft-float ABI. Please use -mfloat-abi=softfp or -mfloat-abi=hard"
32 #else
34 #pragma GCC push_options
35 #pragma GCC target ("fpu=neon")
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
41 #include <arm_fp16.h>
42 #include <stdint.h>
44 typedef __simd64_int8_t int8x8_t;
45 typedef __simd64_int16_t int16x4_t;
46 typedef __simd64_int32_t int32x2_t;
47 typedef __builtin_neon_di int64x1_t;
48 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
49 typedef __fp16 float16_t;
50 typedef __simd64_float16_t float16x4_t;
51 #endif
52 typedef __simd64_float32_t float32x2_t;
53 typedef __simd64_poly8_t poly8x8_t;
54 typedef __simd64_poly16_t poly16x4_t;
55 #pragma GCC push_options
56 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
57 typedef __builtin_neon_poly64 poly64x1_t;
58 #pragma GCC pop_options
59 typedef __simd64_uint8_t uint8x8_t;
60 typedef __simd64_uint16_t uint16x4_t;
61 typedef __simd64_uint32_t uint32x2_t;
62 typedef __builtin_neon_udi uint64x1_t;
64 typedef __simd128_int8_t int8x16_t;
65 typedef __simd128_int16_t int16x8_t;
66 typedef __simd128_int32_t int32x4_t;
67 typedef __simd128_int64_t int64x2_t;
68 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
69 typedef __simd128_float16_t float16x8_t;
70 #endif
71 typedef __simd128_float32_t float32x4_t;
72 typedef __simd128_poly8_t poly8x16_t;
73 typedef __simd128_poly16_t poly16x8_t;
74 #pragma GCC push_options
75 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
76 typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16)));
77 #pragma GCC pop_options
79 typedef __simd128_uint8_t uint8x16_t;
80 typedef __simd128_uint16_t uint16x8_t;
81 typedef __simd128_uint32_t uint32x4_t;
82 typedef __simd128_uint64_t uint64x2_t;
84 typedef float float32_t;
86 /* The Poly types are user visible and live in their own world,
87 keep them that way. */
88 typedef __builtin_neon_poly8 poly8_t;
89 typedef __builtin_neon_poly16 poly16_t;
90 #pragma GCC push_options
91 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
92 typedef __builtin_neon_poly64 poly64_t;
93 typedef __builtin_neon_poly128 poly128_t;
94 #pragma GCC pop_options
96 typedef struct int8x8x2_t
98 int8x8_t val[2];
99 } int8x8x2_t;
101 typedef struct int8x16x2_t
103 int8x16_t val[2];
104 } int8x16x2_t;
106 typedef struct int16x4x2_t
108 int16x4_t val[2];
109 } int16x4x2_t;
111 typedef struct int16x8x2_t
113 int16x8_t val[2];
114 } int16x8x2_t;
116 typedef struct int32x2x2_t
118 int32x2_t val[2];
119 } int32x2x2_t;
121 typedef struct int32x4x2_t
123 int32x4_t val[2];
124 } int32x4x2_t;
126 typedef struct int64x1x2_t
128 int64x1_t val[2];
129 } int64x1x2_t;
131 typedef struct int64x2x2_t
133 int64x2_t val[2];
134 } int64x2x2_t;
136 typedef struct uint8x8x2_t
138 uint8x8_t val[2];
139 } uint8x8x2_t;
141 typedef struct uint8x16x2_t
143 uint8x16_t val[2];
144 } uint8x16x2_t;
146 typedef struct uint16x4x2_t
148 uint16x4_t val[2];
149 } uint16x4x2_t;
151 typedef struct uint16x8x2_t
153 uint16x8_t val[2];
154 } uint16x8x2_t;
156 typedef struct uint32x2x2_t
158 uint32x2_t val[2];
159 } uint32x2x2_t;
161 typedef struct uint32x4x2_t
163 uint32x4_t val[2];
164 } uint32x4x2_t;
166 typedef struct uint64x1x2_t
168 uint64x1_t val[2];
169 } uint64x1x2_t;
171 typedef struct uint64x2x2_t
173 uint64x2_t val[2];
174 } uint64x2x2_t;
176 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
177 typedef struct float16x4x2_t
179 float16x4_t val[2];
180 } float16x4x2_t;
181 #endif
183 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
184 typedef struct float16x8x2_t
186 float16x8_t val[2];
187 } float16x8x2_t;
188 #endif
190 typedef struct float32x2x2_t
192 float32x2_t val[2];
193 } float32x2x2_t;
195 typedef struct float32x4x2_t
197 float32x4_t val[2];
198 } float32x4x2_t;
200 typedef struct poly8x8x2_t
202 poly8x8_t val[2];
203 } poly8x8x2_t;
205 typedef struct poly8x16x2_t
207 poly8x16_t val[2];
208 } poly8x16x2_t;
210 typedef struct poly16x4x2_t
212 poly16x4_t val[2];
213 } poly16x4x2_t;
215 typedef struct poly16x8x2_t
217 poly16x8_t val[2];
218 } poly16x8x2_t;
220 #pragma GCC push_options
221 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
222 typedef struct poly64x1x2_t
224 poly64x1_t val[2];
225 } poly64x1x2_t;
228 typedef struct poly64x2x2_t
230 poly64x2_t val[2];
231 } poly64x2x2_t;
232 #pragma GCC pop_options
235 typedef struct int8x8x3_t
237 int8x8_t val[3];
238 } int8x8x3_t;
240 typedef struct int8x16x3_t
242 int8x16_t val[3];
243 } int8x16x3_t;
245 typedef struct int16x4x3_t
247 int16x4_t val[3];
248 } int16x4x3_t;
250 typedef struct int16x8x3_t
252 int16x8_t val[3];
253 } int16x8x3_t;
255 typedef struct int32x2x3_t
257 int32x2_t val[3];
258 } int32x2x3_t;
260 typedef struct int32x4x3_t
262 int32x4_t val[3];
263 } int32x4x3_t;
265 typedef struct int64x1x3_t
267 int64x1_t val[3];
268 } int64x1x3_t;
270 typedef struct int64x2x3_t
272 int64x2_t val[3];
273 } int64x2x3_t;
275 typedef struct uint8x8x3_t
277 uint8x8_t val[3];
278 } uint8x8x3_t;
280 typedef struct uint8x16x3_t
282 uint8x16_t val[3];
283 } uint8x16x3_t;
285 typedef struct uint16x4x3_t
287 uint16x4_t val[3];
288 } uint16x4x3_t;
290 typedef struct uint16x8x3_t
292 uint16x8_t val[3];
293 } uint16x8x3_t;
295 typedef struct uint32x2x3_t
297 uint32x2_t val[3];
298 } uint32x2x3_t;
300 typedef struct uint32x4x3_t
302 uint32x4_t val[3];
303 } uint32x4x3_t;
305 typedef struct uint64x1x3_t
307 uint64x1_t val[3];
308 } uint64x1x3_t;
310 typedef struct uint64x2x3_t
312 uint64x2_t val[3];
313 } uint64x2x3_t;
315 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
316 typedef struct float16x4x3_t
318 float16x4_t val[3];
319 } float16x4x3_t;
320 #endif
322 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
323 typedef struct float16x8x3_t
325 float16x8_t val[3];
326 } float16x8x3_t;
327 #endif
329 typedef struct float32x2x3_t
331 float32x2_t val[3];
332 } float32x2x3_t;
334 typedef struct float32x4x3_t
336 float32x4_t val[3];
337 } float32x4x3_t;
339 typedef struct poly8x8x3_t
341 poly8x8_t val[3];
342 } poly8x8x3_t;
344 typedef struct poly8x16x3_t
346 poly8x16_t val[3];
347 } poly8x16x3_t;
349 typedef struct poly16x4x3_t
351 poly16x4_t val[3];
352 } poly16x4x3_t;
354 typedef struct poly16x8x3_t
356 poly16x8_t val[3];
357 } poly16x8x3_t;
359 #pragma GCC push_options
360 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
361 typedef struct poly64x1x3_t
363 poly64x1_t val[3];
364 } poly64x1x3_t;
367 typedef struct poly64x2x3_t
369 poly64x2_t val[3];
370 } poly64x2x3_t;
371 #pragma GCC pop_options
374 typedef struct int8x8x4_t
376 int8x8_t val[4];
377 } int8x8x4_t;
379 typedef struct int8x16x4_t
381 int8x16_t val[4];
382 } int8x16x4_t;
384 typedef struct int16x4x4_t
386 int16x4_t val[4];
387 } int16x4x4_t;
389 typedef struct int16x8x4_t
391 int16x8_t val[4];
392 } int16x8x4_t;
394 typedef struct int32x2x4_t
396 int32x2_t val[4];
397 } int32x2x4_t;
399 typedef struct int32x4x4_t
401 int32x4_t val[4];
402 } int32x4x4_t;
404 typedef struct int64x1x4_t
406 int64x1_t val[4];
407 } int64x1x4_t;
409 typedef struct int64x2x4_t
411 int64x2_t val[4];
412 } int64x2x4_t;
414 typedef struct uint8x8x4_t
416 uint8x8_t val[4];
417 } uint8x8x4_t;
419 typedef struct uint8x16x4_t
421 uint8x16_t val[4];
422 } uint8x16x4_t;
424 typedef struct uint16x4x4_t
426 uint16x4_t val[4];
427 } uint16x4x4_t;
429 typedef struct uint16x8x4_t
431 uint16x8_t val[4];
432 } uint16x8x4_t;
434 typedef struct uint32x2x4_t
436 uint32x2_t val[4];
437 } uint32x2x4_t;
439 typedef struct uint32x4x4_t
441 uint32x4_t val[4];
442 } uint32x4x4_t;
444 typedef struct uint64x1x4_t
446 uint64x1_t val[4];
447 } uint64x1x4_t;
449 typedef struct uint64x2x4_t
451 uint64x2_t val[4];
452 } uint64x2x4_t;
454 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
455 typedef struct float16x4x4_t
457 float16x4_t val[4];
458 } float16x4x4_t;
459 #endif
461 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
462 typedef struct float16x8x4_t
464 float16x8_t val[4];
465 } float16x8x4_t;
466 #endif
468 typedef struct float32x2x4_t
470 float32x2_t val[4];
471 } float32x2x4_t;
473 typedef struct float32x4x4_t
475 float32x4_t val[4];
476 } float32x4x4_t;
478 typedef struct poly8x8x4_t
480 poly8x8_t val[4];
481 } poly8x8x4_t;
483 typedef struct poly8x16x4_t
485 poly8x16_t val[4];
486 } poly8x16x4_t;
488 typedef struct poly16x4x4_t
490 poly16x4_t val[4];
491 } poly16x4x4_t;
493 typedef struct poly16x8x4_t
495 poly16x8_t val[4];
496 } poly16x8x4_t;
498 #pragma GCC push_options
499 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
500 typedef struct poly64x1x4_t
502 poly64x1_t val[4];
503 } poly64x1x4_t;
506 typedef struct poly64x2x4_t
508 poly64x2_t val[4];
509 } poly64x2x4_t;
510 #pragma GCC pop_options
512 /* vadd */
513 __extension__ extern __inline int8x8_t
514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
515 vadd_s8 (int8x8_t __a, int8x8_t __b)
517 return __a + __b;
520 __extension__ extern __inline int16x4_t
521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
522 vadd_s16 (int16x4_t __a, int16x4_t __b)
524 return __a + __b;
527 __extension__ extern __inline int32x2_t
528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
529 vadd_s32 (int32x2_t __a, int32x2_t __b)
531 return __a + __b;
534 __extension__ extern __inline float32x2_t
535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
536 vadd_f32 (float32x2_t __a, float32x2_t __b)
538 #ifdef __FAST_MATH__
539 return __a + __b;
540 #else
541 return (float32x2_t) __builtin_neon_vaddv2sf (__a, __b);
542 #endif
545 __extension__ extern __inline uint8x8_t
546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
547 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
549 return __a + __b;
552 __extension__ extern __inline uint16x4_t
553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
554 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
556 return __a + __b;
559 __extension__ extern __inline uint32x2_t
560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
561 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
563 return __a + __b;
566 __extension__ extern __inline int64x1_t
567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
568 vadd_s64 (int64x1_t __a, int64x1_t __b)
570 return __a + __b;
573 __extension__ extern __inline uint64x1_t
574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
575 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
577 return __a + __b;
580 __extension__ extern __inline int8x16_t
581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
582 vaddq_s8 (int8x16_t __a, int8x16_t __b)
584 return __a + __b;
587 __extension__ extern __inline int16x8_t
588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
589 vaddq_s16 (int16x8_t __a, int16x8_t __b)
591 return __a + __b;
594 __extension__ extern __inline int32x4_t
595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
596 vaddq_s32 (int32x4_t __a, int32x4_t __b)
598 return __a + __b;
601 __extension__ extern __inline int64x2_t
602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
603 vaddq_s64 (int64x2_t __a, int64x2_t __b)
605 return __a + __b;
608 __extension__ extern __inline float32x4_t
609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
610 vaddq_f32 (float32x4_t __a, float32x4_t __b)
612 #ifdef __FAST_MATH__
613 return __a + __b;
614 #else
615 return (float32x4_t) __builtin_neon_vaddv4sf (__a, __b);
616 #endif
619 __extension__ extern __inline uint8x16_t
620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
621 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
623 return __a + __b;
626 __extension__ extern __inline uint16x8_t
627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
628 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
630 return __a + __b;
633 __extension__ extern __inline uint32x4_t
634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
635 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
637 return __a + __b;
640 __extension__ extern __inline uint64x2_t
641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
642 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
644 return __a + __b;
647 __extension__ extern __inline int16x8_t
648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
649 vaddl_s8 (int8x8_t __a, int8x8_t __b)
651 return (int16x8_t)__builtin_neon_vaddlsv8qi (__a, __b);
654 __extension__ extern __inline int32x4_t
655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
656 vaddl_s16 (int16x4_t __a, int16x4_t __b)
658 return (int32x4_t)__builtin_neon_vaddlsv4hi (__a, __b);
661 __extension__ extern __inline int64x2_t
662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
663 vaddl_s32 (int32x2_t __a, int32x2_t __b)
665 return (int64x2_t)__builtin_neon_vaddlsv2si (__a, __b);
668 __extension__ extern __inline uint16x8_t
669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
670 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
672 return (uint16x8_t)__builtin_neon_vaddluv8qi ((int8x8_t) __a, (int8x8_t) __b);
675 __extension__ extern __inline uint32x4_t
676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
677 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
679 return (uint32x4_t)__builtin_neon_vaddluv4hi ((int16x4_t) __a, (int16x4_t) __b);
682 __extension__ extern __inline uint64x2_t
683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
684 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
686 return (uint64x2_t)__builtin_neon_vaddluv2si ((int32x2_t) __a, (int32x2_t) __b);
689 __extension__ extern __inline int16x8_t
690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
691 vaddw_s8 (int16x8_t __a, int8x8_t __b)
693 return (int16x8_t)__builtin_neon_vaddwsv8qi (__a, __b);
696 __extension__ extern __inline int32x4_t
697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
698 vaddw_s16 (int32x4_t __a, int16x4_t __b)
700 return (int32x4_t)__builtin_neon_vaddwsv4hi (__a, __b);
703 __extension__ extern __inline int64x2_t
704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
705 vaddw_s32 (int64x2_t __a, int32x2_t __b)
707 return (int64x2_t)__builtin_neon_vaddwsv2si (__a, __b);
710 __extension__ extern __inline uint16x8_t
711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
712 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
714 return (uint16x8_t)__builtin_neon_vaddwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
717 __extension__ extern __inline uint32x4_t
718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
719 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
721 return (uint32x4_t)__builtin_neon_vaddwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
724 __extension__ extern __inline uint64x2_t
725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
726 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
728 return (uint64x2_t)__builtin_neon_vaddwuv2si ((int64x2_t) __a, (int32x2_t) __b);
731 __extension__ extern __inline int8x8_t
732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
733 vhadd_s8 (int8x8_t __a, int8x8_t __b)
735 return (int8x8_t)__builtin_neon_vhaddsv8qi (__a, __b);
738 __extension__ extern __inline int16x4_t
739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
740 vhadd_s16 (int16x4_t __a, int16x4_t __b)
742 return (int16x4_t)__builtin_neon_vhaddsv4hi (__a, __b);
745 __extension__ extern __inline int32x2_t
746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
747 vhadd_s32 (int32x2_t __a, int32x2_t __b)
749 return (int32x2_t)__builtin_neon_vhaddsv2si (__a, __b);
752 __extension__ extern __inline uint8x8_t
753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
754 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
756 return (uint8x8_t)__builtin_neon_vhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
759 __extension__ extern __inline uint16x4_t
760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
761 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
763 return (uint16x4_t)__builtin_neon_vhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
766 __extension__ extern __inline uint32x2_t
767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
768 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
770 return (uint32x2_t)__builtin_neon_vhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
773 __extension__ extern __inline int8x16_t
774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
775 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
777 return (int8x16_t)__builtin_neon_vhaddsv16qi (__a, __b);
780 __extension__ extern __inline int16x8_t
781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
782 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
784 return (int16x8_t)__builtin_neon_vhaddsv8hi (__a, __b);
787 __extension__ extern __inline int32x4_t
788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
789 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
791 return (int32x4_t)__builtin_neon_vhaddsv4si (__a, __b);
794 __extension__ extern __inline uint8x16_t
795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
796 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
798 return (uint8x16_t)__builtin_neon_vhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
801 __extension__ extern __inline uint16x8_t
802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
803 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
805 return (uint16x8_t)__builtin_neon_vhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
808 __extension__ extern __inline uint32x4_t
809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
810 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
812 return (uint32x4_t)__builtin_neon_vhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
815 __extension__ extern __inline int8x8_t
816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
817 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
819 return (int8x8_t)__builtin_neon_vrhaddsv8qi (__a, __b);
822 __extension__ extern __inline int16x4_t
823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
824 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
826 return (int16x4_t)__builtin_neon_vrhaddsv4hi (__a, __b);
829 __extension__ extern __inline int32x2_t
830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
831 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
833 return (int32x2_t)__builtin_neon_vrhaddsv2si (__a, __b);
836 __extension__ extern __inline uint8x8_t
837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
838 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
840 return (uint8x8_t)__builtin_neon_vrhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
843 __extension__ extern __inline uint16x4_t
844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
845 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
847 return (uint16x4_t)__builtin_neon_vrhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
850 __extension__ extern __inline uint32x2_t
851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
852 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
854 return (uint32x2_t)__builtin_neon_vrhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
857 __extension__ extern __inline int8x16_t
858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
859 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
861 return (int8x16_t)__builtin_neon_vrhaddsv16qi (__a, __b);
864 __extension__ extern __inline int16x8_t
865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
866 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
868 return (int16x8_t)__builtin_neon_vrhaddsv8hi (__a, __b);
871 __extension__ extern __inline int32x4_t
872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
873 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
875 return (int32x4_t)__builtin_neon_vrhaddsv4si (__a, __b);
878 __extension__ extern __inline uint8x16_t
879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
880 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
882 return (uint8x16_t)__builtin_neon_vrhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
885 __extension__ extern __inline uint16x8_t
886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
887 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
889 return (uint16x8_t)__builtin_neon_vrhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
892 __extension__ extern __inline uint32x4_t
893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
894 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
896 return (uint32x4_t)__builtin_neon_vrhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
899 __extension__ extern __inline int8x8_t
900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
901 vqadd_s8 (int8x8_t __a, int8x8_t __b)
903 return (int8x8_t)__builtin_neon_vqaddsv8qi (__a, __b);
906 __extension__ extern __inline int16x4_t
907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
908 vqadd_s16 (int16x4_t __a, int16x4_t __b)
910 return (int16x4_t)__builtin_neon_vqaddsv4hi (__a, __b);
913 __extension__ extern __inline int32x2_t
914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
915 vqadd_s32 (int32x2_t __a, int32x2_t __b)
917 return (int32x2_t)__builtin_neon_vqaddsv2si (__a, __b);
920 __extension__ extern __inline int64x1_t
921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
922 vqadd_s64 (int64x1_t __a, int64x1_t __b)
924 return (int64x1_t)__builtin_neon_vqaddsdi (__a, __b);
927 __extension__ extern __inline uint8x8_t
928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
929 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
931 return (uint8x8_t)__builtin_neon_vqadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
934 __extension__ extern __inline uint16x4_t
935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
936 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
938 return (uint16x4_t)__builtin_neon_vqadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
941 __extension__ extern __inline uint32x2_t
942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
943 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
945 return (uint32x2_t)__builtin_neon_vqadduv2si ((int32x2_t) __a, (int32x2_t) __b);
948 __extension__ extern __inline uint64x1_t
949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
950 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
952 return (uint64x1_t)__builtin_neon_vqaddudi ((int64x1_t) __a, (int64x1_t) __b);
955 __extension__ extern __inline int8x16_t
956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
957 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
959 return (int8x16_t)__builtin_neon_vqaddsv16qi (__a, __b);
962 __extension__ extern __inline int16x8_t
963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
964 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
966 return (int16x8_t)__builtin_neon_vqaddsv8hi (__a, __b);
969 __extension__ extern __inline int32x4_t
970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
971 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
973 return (int32x4_t)__builtin_neon_vqaddsv4si (__a, __b);
976 __extension__ extern __inline int64x2_t
977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
978 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
980 return (int64x2_t)__builtin_neon_vqaddsv2di (__a, __b);
983 __extension__ extern __inline uint8x16_t
984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
985 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
987 return (uint8x16_t)__builtin_neon_vqadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
990 __extension__ extern __inline uint16x8_t
991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
992 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
994 return (uint16x8_t)__builtin_neon_vqadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
997 __extension__ extern __inline uint32x4_t
998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
999 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1001 return (uint32x4_t)__builtin_neon_vqadduv4si ((int32x4_t) __a, (int32x4_t) __b);
1004 __extension__ extern __inline uint64x2_t
1005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1006 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
1008 return (uint64x2_t)__builtin_neon_vqadduv2di ((int64x2_t) __a, (int64x2_t) __b);
1011 __extension__ extern __inline int8x8_t
1012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1013 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1015 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b);
1018 __extension__ extern __inline int16x4_t
1019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1020 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1022 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b);
1025 __extension__ extern __inline int32x2_t
1026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1027 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1029 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b);
1032 __extension__ extern __inline uint8x8_t
1033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1034 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1036 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1039 __extension__ extern __inline uint16x4_t
1040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1041 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1043 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1046 __extension__ extern __inline uint32x2_t
1047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1048 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1050 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1053 __extension__ extern __inline int8x8_t
1054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1055 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1057 return (int8x8_t)__builtin_neon_vraddhnv8hi (__a, __b);
1060 __extension__ extern __inline int16x4_t
1061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1062 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1064 return (int16x4_t)__builtin_neon_vraddhnv4si (__a, __b);
1067 __extension__ extern __inline int32x2_t
1068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1069 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1071 return (int32x2_t)__builtin_neon_vraddhnv2di (__a, __b);
1074 __extension__ extern __inline uint8x8_t
1075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1076 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1078 return (uint8x8_t)__builtin_neon_vraddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1081 __extension__ extern __inline uint16x4_t
1082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1083 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1085 return (uint16x4_t)__builtin_neon_vraddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1088 __extension__ extern __inline uint32x2_t
1089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1090 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1092 return (uint32x2_t)__builtin_neon_vraddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1095 __extension__ extern __inline int8x8_t
1096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1097 vmul_s8 (int8x8_t __a, int8x8_t __b)
1099 return __a * __b;
1102 __extension__ extern __inline int16x4_t
1103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1104 vmul_s16 (int16x4_t __a, int16x4_t __b)
1106 return __a * __b;
1109 __extension__ extern __inline int32x2_t
1110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1111 vmul_s32 (int32x2_t __a, int32x2_t __b)
1113 return __a * __b;
1116 __extension__ extern __inline float32x2_t
1117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1118 vmul_f32 (float32x2_t __a, float32x2_t __b)
1120 #ifdef __FAST_MATH__
1121 return __a * __b;
1122 #else
1123 return (float32x2_t) __builtin_neon_vmulfv2sf (__a, __b);
1124 #endif
1128 __extension__ extern __inline uint8x8_t
1129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1130 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1132 return __a * __b;
1135 __extension__ extern __inline uint16x4_t
1136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1137 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1139 return __a * __b;
1142 __extension__ extern __inline uint32x2_t
1143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1144 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1146 return __a * __b;
1149 __extension__ extern __inline int8x16_t
1150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1151 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1153 return __a * __b;
1156 __extension__ extern __inline int16x8_t
1157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1158 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1160 return __a * __b;
1163 __extension__ extern __inline int32x4_t
1164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1165 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1167 return __a * __b;
1170 __extension__ extern __inline float32x4_t
1171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1172 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1174 #ifdef __FAST_MATH__
1175 return __a * __b;
1176 #else
1177 return (float32x4_t) __builtin_neon_vmulfv4sf (__a, __b);
1178 #endif
1181 __extension__ extern __inline uint8x16_t
1182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1183 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1185 return __a * __b;
1188 __extension__ extern __inline uint16x8_t
1189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1190 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1192 return __a * __b;
1195 __extension__ extern __inline uint32x4_t
1196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1197 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1199 return __a * __b;
1202 __extension__ extern __inline poly8x8_t
1203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1204 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1206 return (poly8x8_t)__builtin_neon_vmulpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1209 __extension__ extern __inline poly8x16_t
1210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1211 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1213 return (poly8x16_t)__builtin_neon_vmulpv16qi ((int8x16_t) __a, (int8x16_t) __b);
1216 __extension__ extern __inline int16x4_t
1217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1218 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
1220 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b);
1223 __extension__ extern __inline int32x2_t
1224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1225 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
1227 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b);
1230 __extension__ extern __inline int16x8_t
1231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1232 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1234 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b);
1237 __extension__ extern __inline int32x4_t
1238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1239 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1241 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b);
1244 __extension__ extern __inline int16x4_t
1245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1246 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1248 return (int16x4_t)__builtin_neon_vqrdmulhv4hi (__a, __b);
1251 __extension__ extern __inline int32x2_t
1252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1253 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1255 return (int32x2_t)__builtin_neon_vqrdmulhv2si (__a, __b);
1258 __extension__ extern __inline int16x8_t
1259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1260 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1262 return (int16x8_t)__builtin_neon_vqrdmulhv8hi (__a, __b);
1265 __extension__ extern __inline int32x4_t
1266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1267 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1269 return (int32x4_t)__builtin_neon_vqrdmulhv4si (__a, __b);
1272 #ifdef __ARM_FEATURE_QRDMX
1273 __extension__ extern __inline int16x4_t
1274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1275 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1277 return (int16x4_t)__builtin_neon_vqrdmlahv4hi (__a, __b, __c);
1280 __extension__ extern __inline int32x2_t
1281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1282 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1284 return (int32x2_t)__builtin_neon_vqrdmlahv2si (__a, __b, __c);
1287 __extension__ extern __inline int16x8_t
1288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1289 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1291 return (int16x8_t)__builtin_neon_vqrdmlahv8hi (__a, __b, __c);
1294 __extension__ extern __inline int32x4_t
1295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1296 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1298 return (int32x4_t)__builtin_neon_vqrdmlahv4si (__a, __b, __c);
1301 __extension__ extern __inline int16x4_t
1302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1303 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1305 return (int16x4_t)__builtin_neon_vqrdmlshv4hi (__a, __b, __c);
1308 __extension__ extern __inline int32x2_t
1309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1310 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1312 return (int32x2_t)__builtin_neon_vqrdmlshv2si (__a, __b, __c);
1315 __extension__ extern __inline int16x8_t
1316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1317 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1319 return (int16x8_t)__builtin_neon_vqrdmlshv8hi (__a, __b, __c);
1322 __extension__ extern __inline int32x4_t
1323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1324 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1326 return (int32x4_t)__builtin_neon_vqrdmlshv4si (__a, __b, __c);
1328 #endif
1330 __extension__ extern __inline int16x8_t
1331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1332 vmull_s8 (int8x8_t __a, int8x8_t __b)
1334 return (int16x8_t)__builtin_neon_vmullsv8qi (__a, __b);
1337 __extension__ extern __inline int32x4_t
1338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1339 vmull_s16 (int16x4_t __a, int16x4_t __b)
1341 return (int32x4_t)__builtin_neon_vmullsv4hi (__a, __b);
1344 __extension__ extern __inline int64x2_t
1345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1346 vmull_s32 (int32x2_t __a, int32x2_t __b)
1348 return (int64x2_t)__builtin_neon_vmullsv2si (__a, __b);
1351 __extension__ extern __inline uint16x8_t
1352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1353 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1355 return (uint16x8_t)__builtin_neon_vmulluv8qi ((int8x8_t) __a, (int8x8_t) __b);
1358 __extension__ extern __inline uint32x4_t
1359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1360 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1362 return (uint32x4_t)__builtin_neon_vmulluv4hi ((int16x4_t) __a, (int16x4_t) __b);
1365 __extension__ extern __inline uint64x2_t
1366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1367 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1369 return (uint64x2_t)__builtin_neon_vmulluv2si ((int32x2_t) __a, (int32x2_t) __b);
1372 __extension__ extern __inline poly16x8_t
1373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1374 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1376 return (poly16x8_t)__builtin_neon_vmullpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1379 __extension__ extern __inline int32x4_t
1380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1381 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1383 return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b);
1386 __extension__ extern __inline int64x2_t
1387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1388 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1390 return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b);
1393 __extension__ extern __inline int8x8_t
1394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1395 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1397 return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c);
1400 __extension__ extern __inline int16x4_t
1401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1402 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1404 return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c);
1407 __extension__ extern __inline int32x2_t
1408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1409 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1411 return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c);
1414 __extension__ extern __inline float32x2_t
1415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1416 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1418 return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c);
1421 __extension__ extern __inline uint8x8_t
1422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1423 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1425 return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1428 __extension__ extern __inline uint16x4_t
1429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1430 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1432 return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1435 __extension__ extern __inline uint32x2_t
1436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1437 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1439 return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1442 __extension__ extern __inline int8x16_t
1443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1444 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1446 return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c);
1449 __extension__ extern __inline int16x8_t
1450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1451 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1453 return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c);
1456 __extension__ extern __inline int32x4_t
1457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1458 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1460 return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c);
1463 __extension__ extern __inline float32x4_t
1464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1465 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1467 return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c);
1470 __extension__ extern __inline uint8x16_t
1471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1472 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1474 return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1477 __extension__ extern __inline uint16x8_t
1478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1479 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1481 return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1484 __extension__ extern __inline uint32x4_t
1485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1486 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1488 return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1491 __extension__ extern __inline int16x8_t
1492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1493 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1495 return (int16x8_t)__builtin_neon_vmlalsv8qi (__a, __b, __c);
1498 __extension__ extern __inline int32x4_t
1499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1500 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1502 return (int32x4_t)__builtin_neon_vmlalsv4hi (__a, __b, __c);
1505 __extension__ extern __inline int64x2_t
1506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1507 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1509 return (int64x2_t)__builtin_neon_vmlalsv2si (__a, __b, __c);
1512 __extension__ extern __inline uint16x8_t
1513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1514 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1516 return (uint16x8_t)__builtin_neon_vmlaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1519 __extension__ extern __inline uint32x4_t
1520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1521 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1523 return (uint32x4_t)__builtin_neon_vmlaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1526 __extension__ extern __inline uint64x2_t
1527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1528 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1530 return (uint64x2_t)__builtin_neon_vmlaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1533 __extension__ extern __inline int32x4_t
1534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1535 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1537 return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c);
1540 __extension__ extern __inline int64x2_t
1541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1542 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1544 return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c);
1547 __extension__ extern __inline int8x8_t
1548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1549 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1551 return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c);
1554 __extension__ extern __inline int16x4_t
1555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1556 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1558 return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c);
1561 __extension__ extern __inline int32x2_t
1562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1563 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1565 return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c);
1568 __extension__ extern __inline float32x2_t
1569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1570 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1572 return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c);
1575 __extension__ extern __inline uint8x8_t
1576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1577 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1579 return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1582 __extension__ extern __inline uint16x4_t
1583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1584 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1586 return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1589 __extension__ extern __inline uint32x2_t
1590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1591 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1593 return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1596 __extension__ extern __inline int8x16_t
1597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1598 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1600 return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c);
1603 __extension__ extern __inline int16x8_t
1604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1605 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1607 return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c);
1610 __extension__ extern __inline int32x4_t
1611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1612 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1614 return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c);
1617 __extension__ extern __inline float32x4_t
1618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1619 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1621 return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c);
1624 __extension__ extern __inline uint8x16_t
1625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1626 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1628 return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1631 __extension__ extern __inline uint16x8_t
1632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1633 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1635 return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1638 __extension__ extern __inline uint32x4_t
1639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1640 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1642 return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1645 __extension__ extern __inline int16x8_t
1646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1647 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1649 return (int16x8_t)__builtin_neon_vmlslsv8qi (__a, __b, __c);
1652 __extension__ extern __inline int32x4_t
1653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1654 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1656 return (int32x4_t)__builtin_neon_vmlslsv4hi (__a, __b, __c);
1659 __extension__ extern __inline int64x2_t
1660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1661 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1663 return (int64x2_t)__builtin_neon_vmlslsv2si (__a, __b, __c);
1666 __extension__ extern __inline uint16x8_t
1667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1668 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1670 return (uint16x8_t)__builtin_neon_vmlsluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1673 __extension__ extern __inline uint32x4_t
1674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1675 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1677 return (uint32x4_t)__builtin_neon_vmlsluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1680 __extension__ extern __inline uint64x2_t
1681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1682 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1684 return (uint64x2_t)__builtin_neon_vmlsluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1687 __extension__ extern __inline int32x4_t
1688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1689 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1691 return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c);
1694 __extension__ extern __inline int64x2_t
1695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1696 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1698 return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c);
1701 #pragma GCC push_options
1702 #pragma GCC target ("fpu=neon-vfpv4")
1703 __extension__ extern __inline float32x2_t
1704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1705 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1707 return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c);
1710 __extension__ extern __inline float32x4_t
1711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1712 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1714 return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c);
1717 __extension__ extern __inline float32x2_t
1718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1719 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1721 return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c);
1724 __extension__ extern __inline float32x4_t
1725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1726 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1728 return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c);
1730 #pragma GCC pop_options
1732 #if __ARM_ARCH >= 8
1733 __extension__ extern __inline float32x2_t
1734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1735 vrndn_f32 (float32x2_t __a)
1737 return (float32x2_t)__builtin_neon_vrintnv2sf (__a);
1740 #endif
1741 #if __ARM_ARCH >= 8
1742 __extension__ extern __inline float32x4_t
1743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1744 vrndnq_f32 (float32x4_t __a)
1746 return (float32x4_t)__builtin_neon_vrintnv4sf (__a);
1749 #endif
1750 #if __ARM_ARCH >= 8
1751 __extension__ extern __inline float32x2_t
1752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1753 vrnda_f32 (float32x2_t __a)
1755 return (float32x2_t)__builtin_neon_vrintav2sf (__a);
1758 #endif
1759 #if __ARM_ARCH >= 8
1760 __extension__ extern __inline float32x4_t
1761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1762 vrndaq_f32 (float32x4_t __a)
1764 return (float32x4_t)__builtin_neon_vrintav4sf (__a);
1767 #endif
1768 #if __ARM_ARCH >= 8
1769 __extension__ extern __inline float32x2_t
1770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1771 vrndp_f32 (float32x2_t __a)
1773 return (float32x2_t)__builtin_neon_vrintpv2sf (__a);
1776 #endif
1777 #if __ARM_ARCH >= 8
1778 __extension__ extern __inline float32x4_t
1779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1780 vrndpq_f32 (float32x4_t __a)
1782 return (float32x4_t)__builtin_neon_vrintpv4sf (__a);
1785 #endif
1786 #if __ARM_ARCH >= 8
1787 __extension__ extern __inline float32x2_t
1788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1789 vrndm_f32 (float32x2_t __a)
1791 return (float32x2_t)__builtin_neon_vrintmv2sf (__a);
1794 #endif
1795 #if __ARM_ARCH >= 8
1796 __extension__ extern __inline float32x4_t
1797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1798 vrndmq_f32 (float32x4_t __a)
1800 return (float32x4_t)__builtin_neon_vrintmv4sf (__a);
1803 #endif
1805 #if __ARM_ARCH >= 8
1806 __extension__ extern __inline float32x2_t
1807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1808 vrndx_f32 (float32x2_t __a)
1810 return (float32x2_t)__builtin_neon_vrintxv2sf (__a);
1813 #endif
1815 #if __ARM_ARCH >= 8
1816 __extension__ extern __inline float32x4_t
1817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1818 vrndxq_f32 (float32x4_t __a)
1820 return (float32x4_t)__builtin_neon_vrintxv4sf (__a);
1823 #endif
1825 #if __ARM_ARCH >= 8
1826 __extension__ extern __inline float32x2_t
1827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1828 vrnd_f32 (float32x2_t __a)
1830 return (float32x2_t)__builtin_neon_vrintzv2sf (__a);
1833 #endif
1834 #if __ARM_ARCH >= 8
1835 __extension__ extern __inline float32x4_t
1836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1837 vrndq_f32 (float32x4_t __a)
1839 return (float32x4_t)__builtin_neon_vrintzv4sf (__a);
1842 #endif
1844 __extension__ extern __inline int8x8_t
1845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1846 vsub_s8 (int8x8_t __a, int8x8_t __b)
1848 return __a - __b;
1851 __extension__ extern __inline int16x4_t
1852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1853 vsub_s16 (int16x4_t __a, int16x4_t __b)
1855 return __a - __b;
1858 __extension__ extern __inline int32x2_t
1859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1860 vsub_s32 (int32x2_t __a, int32x2_t __b)
1862 return __a - __b;
1865 __extension__ extern __inline float32x2_t
1866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1867 vsub_f32 (float32x2_t __a, float32x2_t __b)
1869 #ifdef __FAST_MATH__
1870 return __a - __b;
1871 #else
1872 return (float32x2_t) __builtin_neon_vsubv2sf (__a, __b);
1873 #endif
1876 __extension__ extern __inline uint8x8_t
1877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1878 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1880 return __a - __b;
1883 __extension__ extern __inline uint16x4_t
1884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1885 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1887 return __a - __b;
1890 __extension__ extern __inline uint32x2_t
1891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1892 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1894 return __a - __b;
1897 __extension__ extern __inline int64x1_t
1898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1899 vsub_s64 (int64x1_t __a, int64x1_t __b)
1901 return __a - __b;
1904 __extension__ extern __inline uint64x1_t
1905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1906 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1908 return __a - __b;
1911 __extension__ extern __inline int8x16_t
1912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1913 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1915 return __a - __b;
1918 __extension__ extern __inline int16x8_t
1919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1920 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1922 return __a - __b;
1925 __extension__ extern __inline int32x4_t
1926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1927 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1929 return __a - __b;
1932 __extension__ extern __inline int64x2_t
1933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1934 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1936 return __a - __b;
1939 __extension__ extern __inline float32x4_t
1940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1941 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1943 #ifdef __FAST_MATH__
1944 return __a - __b;
1945 #else
1946 return (float32x4_t) __builtin_neon_vsubv4sf (__a, __b);
1947 #endif
1950 __extension__ extern __inline uint8x16_t
1951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1952 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1954 return __a - __b;
1957 __extension__ extern __inline uint16x8_t
1958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1959 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1961 return __a - __b;
1964 __extension__ extern __inline uint32x4_t
1965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1966 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1968 return __a - __b;
1971 __extension__ extern __inline uint64x2_t
1972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1973 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1975 return __a - __b;
1978 __extension__ extern __inline int16x8_t
1979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1980 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1982 return (int16x8_t)__builtin_neon_vsublsv8qi (__a, __b);
1985 __extension__ extern __inline int32x4_t
1986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1987 vsubl_s16 (int16x4_t __a, int16x4_t __b)
1989 return (int32x4_t)__builtin_neon_vsublsv4hi (__a, __b);
1992 __extension__ extern __inline int64x2_t
1993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1994 vsubl_s32 (int32x2_t __a, int32x2_t __b)
1996 return (int64x2_t)__builtin_neon_vsublsv2si (__a, __b);
1999 __extension__ extern __inline uint16x8_t
2000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2001 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2003 return (uint16x8_t)__builtin_neon_vsubluv8qi ((int8x8_t) __a, (int8x8_t) __b);
2006 __extension__ extern __inline uint32x4_t
2007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2008 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2010 return (uint32x4_t)__builtin_neon_vsubluv4hi ((int16x4_t) __a, (int16x4_t) __b);
2013 __extension__ extern __inline uint64x2_t
2014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2015 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2017 return (uint64x2_t)__builtin_neon_vsubluv2si ((int32x2_t) __a, (int32x2_t) __b);
2020 __extension__ extern __inline int16x8_t
2021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2022 vsubw_s8 (int16x8_t __a, int8x8_t __b)
2024 return (int16x8_t)__builtin_neon_vsubwsv8qi (__a, __b);
2027 __extension__ extern __inline int32x4_t
2028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2029 vsubw_s16 (int32x4_t __a, int16x4_t __b)
2031 return (int32x4_t)__builtin_neon_vsubwsv4hi (__a, __b);
2034 __extension__ extern __inline int64x2_t
2035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2036 vsubw_s32 (int64x2_t __a, int32x2_t __b)
2038 return (int64x2_t)__builtin_neon_vsubwsv2si (__a, __b);
2041 __extension__ extern __inline uint16x8_t
2042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2043 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2045 return (uint16x8_t)__builtin_neon_vsubwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
2048 __extension__ extern __inline uint32x4_t
2049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2050 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2052 return (uint32x4_t)__builtin_neon_vsubwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
2055 __extension__ extern __inline uint64x2_t
2056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2057 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2059 return (uint64x2_t)__builtin_neon_vsubwuv2si ((int64x2_t) __a, (int32x2_t) __b);
2062 __extension__ extern __inline int8x8_t
2063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2064 vhsub_s8 (int8x8_t __a, int8x8_t __b)
2066 return (int8x8_t)__builtin_neon_vhsubsv8qi (__a, __b);
2069 __extension__ extern __inline int16x4_t
2070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2071 vhsub_s16 (int16x4_t __a, int16x4_t __b)
2073 return (int16x4_t)__builtin_neon_vhsubsv4hi (__a, __b);
2076 __extension__ extern __inline int32x2_t
2077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2078 vhsub_s32 (int32x2_t __a, int32x2_t __b)
2080 return (int32x2_t)__builtin_neon_vhsubsv2si (__a, __b);
2083 __extension__ extern __inline uint8x8_t
2084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2085 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2087 return (uint8x8_t)__builtin_neon_vhsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2090 __extension__ extern __inline uint16x4_t
2091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2092 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2094 return (uint16x4_t)__builtin_neon_vhsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2097 __extension__ extern __inline uint32x2_t
2098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2099 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2101 return (uint32x2_t)__builtin_neon_vhsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2104 __extension__ extern __inline int8x16_t
2105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2106 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2108 return (int8x16_t)__builtin_neon_vhsubsv16qi (__a, __b);
2111 __extension__ extern __inline int16x8_t
2112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2113 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2115 return (int16x8_t)__builtin_neon_vhsubsv8hi (__a, __b);
2118 __extension__ extern __inline int32x4_t
2119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2120 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2122 return (int32x4_t)__builtin_neon_vhsubsv4si (__a, __b);
2125 __extension__ extern __inline uint8x16_t
2126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2127 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2129 return (uint8x16_t)__builtin_neon_vhsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2132 __extension__ extern __inline uint16x8_t
2133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2134 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2136 return (uint16x8_t)__builtin_neon_vhsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2139 __extension__ extern __inline uint32x4_t
2140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2141 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2143 return (uint32x4_t)__builtin_neon_vhsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2146 __extension__ extern __inline int8x8_t
2147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2148 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2150 return (int8x8_t)__builtin_neon_vqsubsv8qi (__a, __b);
2153 __extension__ extern __inline int16x4_t
2154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2155 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2157 return (int16x4_t)__builtin_neon_vqsubsv4hi (__a, __b);
2160 __extension__ extern __inline int32x2_t
2161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2162 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2164 return (int32x2_t)__builtin_neon_vqsubsv2si (__a, __b);
2167 __extension__ extern __inline int64x1_t
2168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2169 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2171 return (int64x1_t)__builtin_neon_vqsubsdi (__a, __b);
2174 __extension__ extern __inline uint8x8_t
2175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2176 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2178 return (uint8x8_t)__builtin_neon_vqsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2181 __extension__ extern __inline uint16x4_t
2182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2183 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2185 return (uint16x4_t)__builtin_neon_vqsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2188 __extension__ extern __inline uint32x2_t
2189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2190 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2192 return (uint32x2_t)__builtin_neon_vqsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2195 __extension__ extern __inline uint64x1_t
2196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2197 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2199 return (uint64x1_t)__builtin_neon_vqsubudi ((int64x1_t) __a, (int64x1_t) __b);
2202 __extension__ extern __inline int8x16_t
2203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2204 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2206 return (int8x16_t)__builtin_neon_vqsubsv16qi (__a, __b);
2209 __extension__ extern __inline int16x8_t
2210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2211 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2213 return (int16x8_t)__builtin_neon_vqsubsv8hi (__a, __b);
2216 __extension__ extern __inline int32x4_t
2217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2218 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2220 return (int32x4_t)__builtin_neon_vqsubsv4si (__a, __b);
2223 __extension__ extern __inline int64x2_t
2224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2225 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2227 return (int64x2_t)__builtin_neon_vqsubsv2di (__a, __b);
2230 __extension__ extern __inline uint8x16_t
2231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2232 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2234 return (uint8x16_t)__builtin_neon_vqsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2237 __extension__ extern __inline uint16x8_t
2238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2239 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2241 return (uint16x8_t)__builtin_neon_vqsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2244 __extension__ extern __inline uint32x4_t
2245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2246 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2248 return (uint32x4_t)__builtin_neon_vqsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2251 __extension__ extern __inline uint64x2_t
2252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2253 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2255 return (uint64x2_t)__builtin_neon_vqsubuv2di ((int64x2_t) __a, (int64x2_t) __b);
2258 __extension__ extern __inline int8x8_t
2259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2260 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2262 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b);
2265 __extension__ extern __inline int16x4_t
2266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2267 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2269 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b);
2272 __extension__ extern __inline int32x2_t
2273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2274 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2276 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b);
2279 __extension__ extern __inline uint8x8_t
2280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2281 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2283 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2286 __extension__ extern __inline uint16x4_t
2287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2288 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2290 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2293 __extension__ extern __inline uint32x2_t
2294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2295 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2297 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2300 __extension__ extern __inline int8x8_t
2301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2302 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2304 return (int8x8_t)__builtin_neon_vrsubhnv8hi (__a, __b);
2307 __extension__ extern __inline int16x4_t
2308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2309 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2311 return (int16x4_t)__builtin_neon_vrsubhnv4si (__a, __b);
2314 __extension__ extern __inline int32x2_t
2315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2316 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2318 return (int32x2_t)__builtin_neon_vrsubhnv2di (__a, __b);
2321 __extension__ extern __inline uint8x8_t
2322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2323 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2325 return (uint8x8_t)__builtin_neon_vrsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2328 __extension__ extern __inline uint16x4_t
2329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2330 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2332 return (uint16x4_t)__builtin_neon_vrsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2335 __extension__ extern __inline uint32x2_t
2336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2337 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2339 return (uint32x2_t)__builtin_neon_vrsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2342 __extension__ extern __inline uint8x8_t
2343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2344 vceq_s8 (int8x8_t __a, int8x8_t __b)
2346 return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b);
2349 __extension__ extern __inline uint16x4_t
2350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2351 vceq_s16 (int16x4_t __a, int16x4_t __b)
2353 return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b);
2356 __extension__ extern __inline uint32x2_t
2357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2358 vceq_s32 (int32x2_t __a, int32x2_t __b)
2360 return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b);
2363 __extension__ extern __inline uint32x2_t
2364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2365 vceq_f32 (float32x2_t __a, float32x2_t __b)
2367 return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b);
2370 __extension__ extern __inline uint8x8_t
2371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2372 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
2374 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2377 __extension__ extern __inline uint16x4_t
2378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2379 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
2381 return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b);
2384 __extension__ extern __inline uint32x2_t
2385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2386 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
2388 return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b);
2391 __extension__ extern __inline uint8x8_t
2392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2393 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
2395 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2398 __extension__ extern __inline uint8x16_t
2399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2400 vceqq_s8 (int8x16_t __a, int8x16_t __b)
2402 return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b);
2405 __extension__ extern __inline uint16x8_t
2406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2407 vceqq_s16 (int16x8_t __a, int16x8_t __b)
2409 return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b);
2412 __extension__ extern __inline uint32x4_t
2413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2414 vceqq_s32 (int32x4_t __a, int32x4_t __b)
2416 return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b);
2419 __extension__ extern __inline uint32x4_t
2420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2421 vceqq_f32 (float32x4_t __a, float32x4_t __b)
2423 return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b);
2426 __extension__ extern __inline uint8x16_t
2427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2428 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
2430 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2433 __extension__ extern __inline uint16x8_t
2434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2435 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
2437 return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b);
2440 __extension__ extern __inline uint32x4_t
2441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2442 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
2444 return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b);
2447 __extension__ extern __inline uint8x16_t
2448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2449 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
2451 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2454 __extension__ extern __inline uint8x8_t
2455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2456 vcge_s8 (int8x8_t __a, int8x8_t __b)
2458 return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b);
2461 __extension__ extern __inline uint16x4_t
2462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2463 vcge_s16 (int16x4_t __a, int16x4_t __b)
2465 return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b);
2468 __extension__ extern __inline uint32x2_t
2469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2470 vcge_s32 (int32x2_t __a, int32x2_t __b)
2472 return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b);
2475 __extension__ extern __inline uint32x2_t
2476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2477 vcge_f32 (float32x2_t __a, float32x2_t __b)
2479 return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b);
2482 __extension__ extern __inline uint8x8_t
2483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2484 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
2486 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2489 __extension__ extern __inline uint16x4_t
2490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2491 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
2493 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2496 __extension__ extern __inline uint32x2_t
2497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2498 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
2500 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b);
2503 __extension__ extern __inline uint8x16_t
2504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2505 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
2507 return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b);
2510 __extension__ extern __inline uint16x8_t
2511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2512 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
2514 return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b);
2517 __extension__ extern __inline uint32x4_t
2518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2519 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
2521 return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b);
2524 __extension__ extern __inline uint32x4_t
2525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2526 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
2528 return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b);
2531 __extension__ extern __inline uint8x16_t
2532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2533 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
2535 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2538 __extension__ extern __inline uint16x8_t
2539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2540 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
2542 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2545 __extension__ extern __inline uint32x4_t
2546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2547 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
2549 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b);
2552 __extension__ extern __inline uint8x8_t
2553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2554 vcle_s8 (int8x8_t __a, int8x8_t __b)
2556 return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a);
2559 __extension__ extern __inline uint16x4_t
2560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2561 vcle_s16 (int16x4_t __a, int16x4_t __b)
2563 return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a);
2566 __extension__ extern __inline uint32x2_t
2567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2568 vcle_s32 (int32x2_t __a, int32x2_t __b)
2570 return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a);
2573 __extension__ extern __inline uint32x2_t
2574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2575 vcle_f32 (float32x2_t __a, float32x2_t __b)
2577 return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a);
2580 __extension__ extern __inline uint8x8_t
2581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2582 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
2584 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2587 __extension__ extern __inline uint16x4_t
2588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2589 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
2591 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2594 __extension__ extern __inline uint32x2_t
2595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2596 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
2598 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a);
2601 __extension__ extern __inline uint8x16_t
2602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2603 vcleq_s8 (int8x16_t __a, int8x16_t __b)
2605 return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a);
2608 __extension__ extern __inline uint16x8_t
2609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2610 vcleq_s16 (int16x8_t __a, int16x8_t __b)
2612 return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a);
2615 __extension__ extern __inline uint32x4_t
2616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2617 vcleq_s32 (int32x4_t __a, int32x4_t __b)
2619 return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a);
2622 __extension__ extern __inline uint32x4_t
2623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2624 vcleq_f32 (float32x4_t __a, float32x4_t __b)
2626 return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a);
2629 __extension__ extern __inline uint8x16_t
2630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2631 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2633 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2636 __extension__ extern __inline uint16x8_t
2637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2638 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2640 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2643 __extension__ extern __inline uint32x4_t
2644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2645 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2647 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a);
2650 __extension__ extern __inline uint8x8_t
2651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2652 vcgt_s8 (int8x8_t __a, int8x8_t __b)
2654 return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b);
2657 __extension__ extern __inline uint16x4_t
2658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2659 vcgt_s16 (int16x4_t __a, int16x4_t __b)
2661 return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b);
2664 __extension__ extern __inline uint32x2_t
2665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2666 vcgt_s32 (int32x2_t __a, int32x2_t __b)
2668 return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b);
2671 __extension__ extern __inline uint32x2_t
2672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2673 vcgt_f32 (float32x2_t __a, float32x2_t __b)
2675 return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b);
2678 __extension__ extern __inline uint8x8_t
2679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2680 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2682 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2685 __extension__ extern __inline uint16x4_t
2686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2687 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2689 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2692 __extension__ extern __inline uint32x2_t
2693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2694 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2696 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __a, (int32x2_t) __b);
2699 __extension__ extern __inline uint8x16_t
2700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2701 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2703 return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b);
2706 __extension__ extern __inline uint16x8_t
2707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2708 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2710 return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b);
2713 __extension__ extern __inline uint32x4_t
2714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2715 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2717 return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b);
2720 __extension__ extern __inline uint32x4_t
2721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2722 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2724 return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b);
2727 __extension__ extern __inline uint8x16_t
2728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2729 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2731 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2734 __extension__ extern __inline uint16x8_t
2735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2736 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2738 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2741 __extension__ extern __inline uint32x4_t
2742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2743 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2745 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __a, (int32x4_t) __b);
2748 __extension__ extern __inline uint8x8_t
2749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2750 vclt_s8 (int8x8_t __a, int8x8_t __b)
2752 return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a);
2755 __extension__ extern __inline uint16x4_t
2756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2757 vclt_s16 (int16x4_t __a, int16x4_t __b)
2759 return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a);
2762 __extension__ extern __inline uint32x2_t
2763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2764 vclt_s32 (int32x2_t __a, int32x2_t __b)
2766 return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a);
2769 __extension__ extern __inline uint32x2_t
2770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2771 vclt_f32 (float32x2_t __a, float32x2_t __b)
2773 return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a);
2776 __extension__ extern __inline uint8x8_t
2777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2778 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2780 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2783 __extension__ extern __inline uint16x4_t
2784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2785 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2787 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2790 __extension__ extern __inline uint32x2_t
2791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2792 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2794 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __b, (int32x2_t) __a);
2797 __extension__ extern __inline uint8x16_t
2798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2799 vcltq_s8 (int8x16_t __a, int8x16_t __b)
2801 return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a);
2804 __extension__ extern __inline uint16x8_t
2805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2806 vcltq_s16 (int16x8_t __a, int16x8_t __b)
2808 return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a);
2811 __extension__ extern __inline uint32x4_t
2812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2813 vcltq_s32 (int32x4_t __a, int32x4_t __b)
2815 return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a);
2818 __extension__ extern __inline uint32x4_t
2819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2820 vcltq_f32 (float32x4_t __a, float32x4_t __b)
2822 return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a);
2825 __extension__ extern __inline uint8x16_t
2826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2827 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2829 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2832 __extension__ extern __inline uint16x8_t
2833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2834 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2836 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2839 __extension__ extern __inline uint32x4_t
2840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2841 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2843 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __b, (int32x4_t) __a);
2846 __extension__ extern __inline uint32x2_t
2847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2848 vcage_f32 (float32x2_t __a, float32x2_t __b)
2850 return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b);
2853 __extension__ extern __inline uint32x4_t
2854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2855 vcageq_f32 (float32x4_t __a, float32x4_t __b)
2857 return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b);
2860 __extension__ extern __inline uint32x2_t
2861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2862 vcale_f32 (float32x2_t __a, float32x2_t __b)
2864 return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a);
2867 __extension__ extern __inline uint32x4_t
2868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2869 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
2871 return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a);
2874 __extension__ extern __inline uint32x2_t
2875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2876 vcagt_f32 (float32x2_t __a, float32x2_t __b)
2878 return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b);
2881 __extension__ extern __inline uint32x4_t
2882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2883 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
2885 return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b);
2888 __extension__ extern __inline uint32x2_t
2889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2890 vcalt_f32 (float32x2_t __a, float32x2_t __b)
2892 return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a);
2895 __extension__ extern __inline uint32x4_t
2896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2897 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
2899 return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a);
2902 __extension__ extern __inline uint8x8_t
2903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2904 vtst_s8 (int8x8_t __a, int8x8_t __b)
2906 return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b);
2909 __extension__ extern __inline uint16x4_t
2910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2911 vtst_s16 (int16x4_t __a, int16x4_t __b)
2913 return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b);
2916 __extension__ extern __inline uint32x2_t
2917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2918 vtst_s32 (int32x2_t __a, int32x2_t __b)
2920 return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b);
2923 __extension__ extern __inline uint8x8_t
2924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2925 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
2927 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2930 __extension__ extern __inline uint16x4_t
2931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2932 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
2934 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2937 __extension__ extern __inline uint32x2_t
2938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2939 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
2941 return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b);
2944 __extension__ extern __inline uint8x8_t
2945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2946 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
2948 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2951 __extension__ extern __inline uint16x4_t
2952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2953 vtst_p16 (poly16x4_t __a, poly16x4_t __b)
2955 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2958 __extension__ extern __inline uint8x16_t
2959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2960 vtstq_s8 (int8x16_t __a, int8x16_t __b)
2962 return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b);
2965 __extension__ extern __inline uint16x8_t
2966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2967 vtstq_s16 (int16x8_t __a, int16x8_t __b)
2969 return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b);
2972 __extension__ extern __inline uint32x4_t
2973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2974 vtstq_s32 (int32x4_t __a, int32x4_t __b)
2976 return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b);
2979 __extension__ extern __inline uint8x16_t
2980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2981 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
2983 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
2986 __extension__ extern __inline uint16x8_t
2987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2988 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
2990 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
2993 __extension__ extern __inline uint32x4_t
2994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2995 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
2997 return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b);
3000 __extension__ extern __inline uint8x16_t
3001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3002 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
3004 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
3007 __extension__ extern __inline uint16x8_t
3008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3009 vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
3011 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
3014 __extension__ extern __inline int8x8_t
3015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3016 vabd_s8 (int8x8_t __a, int8x8_t __b)
3018 return (int8x8_t)__builtin_neon_vabdsv8qi (__a, __b);
3021 __extension__ extern __inline int16x4_t
3022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3023 vabd_s16 (int16x4_t __a, int16x4_t __b)
3025 return (int16x4_t)__builtin_neon_vabdsv4hi (__a, __b);
3028 __extension__ extern __inline int32x2_t
3029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3030 vabd_s32 (int32x2_t __a, int32x2_t __b)
3032 return (int32x2_t)__builtin_neon_vabdsv2si (__a, __b);
3035 __extension__ extern __inline float32x2_t
3036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3037 vabd_f32 (float32x2_t __a, float32x2_t __b)
3039 return (float32x2_t)__builtin_neon_vabdfv2sf (__a, __b);
3042 __extension__ extern __inline uint8x8_t
3043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3044 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
3046 return (uint8x8_t)__builtin_neon_vabduv8qi ((int8x8_t) __a, (int8x8_t) __b);
3049 __extension__ extern __inline uint16x4_t
3050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3051 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
3053 return (uint16x4_t)__builtin_neon_vabduv4hi ((int16x4_t) __a, (int16x4_t) __b);
3056 __extension__ extern __inline uint32x2_t
3057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3058 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
3060 return (uint32x2_t)__builtin_neon_vabduv2si ((int32x2_t) __a, (int32x2_t) __b);
3063 __extension__ extern __inline int8x16_t
3064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3065 vabdq_s8 (int8x16_t __a, int8x16_t __b)
3067 return (int8x16_t)__builtin_neon_vabdsv16qi (__a, __b);
3070 __extension__ extern __inline int16x8_t
3071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3072 vabdq_s16 (int16x8_t __a, int16x8_t __b)
3074 return (int16x8_t)__builtin_neon_vabdsv8hi (__a, __b);
3077 __extension__ extern __inline int32x4_t
3078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3079 vabdq_s32 (int32x4_t __a, int32x4_t __b)
3081 return (int32x4_t)__builtin_neon_vabdsv4si (__a, __b);
3084 __extension__ extern __inline float32x4_t
3085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3086 vabdq_f32 (float32x4_t __a, float32x4_t __b)
3088 return (float32x4_t)__builtin_neon_vabdfv4sf (__a, __b);
3091 __extension__ extern __inline uint8x16_t
3092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3093 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
3095 return (uint8x16_t)__builtin_neon_vabduv16qi ((int8x16_t) __a, (int8x16_t) __b);
3098 __extension__ extern __inline uint16x8_t
3099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3100 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
3102 return (uint16x8_t)__builtin_neon_vabduv8hi ((int16x8_t) __a, (int16x8_t) __b);
3105 __extension__ extern __inline uint32x4_t
3106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3107 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
3109 return (uint32x4_t)__builtin_neon_vabduv4si ((int32x4_t) __a, (int32x4_t) __b);
3112 __extension__ extern __inline int16x8_t
3113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3114 vabdl_s8 (int8x8_t __a, int8x8_t __b)
3116 return (int16x8_t)__builtin_neon_vabdlsv8qi (__a, __b);
3119 __extension__ extern __inline int32x4_t
3120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3121 vabdl_s16 (int16x4_t __a, int16x4_t __b)
3123 return (int32x4_t)__builtin_neon_vabdlsv4hi (__a, __b);
3126 __extension__ extern __inline int64x2_t
3127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3128 vabdl_s32 (int32x2_t __a, int32x2_t __b)
3130 return (int64x2_t)__builtin_neon_vabdlsv2si (__a, __b);
3133 __extension__ extern __inline uint16x8_t
3134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3135 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
3137 return (uint16x8_t)__builtin_neon_vabdluv8qi ((int8x8_t) __a, (int8x8_t) __b);
3140 __extension__ extern __inline uint32x4_t
3141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3142 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
3144 return (uint32x4_t)__builtin_neon_vabdluv4hi ((int16x4_t) __a, (int16x4_t) __b);
3147 __extension__ extern __inline uint64x2_t
3148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3149 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
3151 return (uint64x2_t)__builtin_neon_vabdluv2si ((int32x2_t) __a, (int32x2_t) __b);
3154 __extension__ extern __inline int8x8_t
3155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3156 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
3158 return (int8x8_t)__builtin_neon_vabasv8qi (__a, __b, __c);
3161 __extension__ extern __inline int16x4_t
3162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3163 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
3165 return (int16x4_t)__builtin_neon_vabasv4hi (__a, __b, __c);
3168 __extension__ extern __inline int32x2_t
3169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3170 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
3172 return (int32x2_t)__builtin_neon_vabasv2si (__a, __b, __c);
3175 __extension__ extern __inline uint8x8_t
3176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3177 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
3179 return (uint8x8_t)__builtin_neon_vabauv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3182 __extension__ extern __inline uint16x4_t
3183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3184 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
3186 return (uint16x4_t)__builtin_neon_vabauv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3189 __extension__ extern __inline uint32x2_t
3190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3191 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
3193 return (uint32x2_t)__builtin_neon_vabauv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3196 __extension__ extern __inline int8x16_t
3197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3198 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
3200 return (int8x16_t)__builtin_neon_vabasv16qi (__a, __b, __c);
3203 __extension__ extern __inline int16x8_t
3204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3205 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
3207 return (int16x8_t)__builtin_neon_vabasv8hi (__a, __b, __c);
3210 __extension__ extern __inline int32x4_t
3211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3212 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
3214 return (int32x4_t)__builtin_neon_vabasv4si (__a, __b, __c);
3217 __extension__ extern __inline uint8x16_t
3218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3219 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
3221 return (uint8x16_t)__builtin_neon_vabauv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
3224 __extension__ extern __inline uint16x8_t
3225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3226 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
3228 return (uint16x8_t)__builtin_neon_vabauv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
3231 __extension__ extern __inline uint32x4_t
3232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3233 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
3235 return (uint32x4_t)__builtin_neon_vabauv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
3238 __extension__ extern __inline int16x8_t
3239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3240 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
3242 return (int16x8_t)__builtin_neon_vabalsv8qi (__a, __b, __c);
3245 __extension__ extern __inline int32x4_t
3246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3247 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
3249 return (int32x4_t)__builtin_neon_vabalsv4hi (__a, __b, __c);
3252 __extension__ extern __inline int64x2_t
3253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3254 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
3256 return (int64x2_t)__builtin_neon_vabalsv2si (__a, __b, __c);
3259 __extension__ extern __inline uint16x8_t
3260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3261 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
3263 return (uint16x8_t)__builtin_neon_vabaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3266 __extension__ extern __inline uint32x4_t
3267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3268 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
3270 return (uint32x4_t)__builtin_neon_vabaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3273 __extension__ extern __inline uint64x2_t
3274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3275 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
3277 return (uint64x2_t)__builtin_neon_vabaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3280 __extension__ extern __inline int8x8_t
3281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3282 vmax_s8 (int8x8_t __a, int8x8_t __b)
3284 return (int8x8_t)__builtin_neon_vmaxsv8qi (__a, __b);
3287 __extension__ extern __inline int16x4_t
3288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3289 vmax_s16 (int16x4_t __a, int16x4_t __b)
3291 return (int16x4_t)__builtin_neon_vmaxsv4hi (__a, __b);
3294 __extension__ extern __inline int32x2_t
3295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3296 vmax_s32 (int32x2_t __a, int32x2_t __b)
3298 return (int32x2_t)__builtin_neon_vmaxsv2si (__a, __b);
3301 __extension__ extern __inline float32x2_t
3302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3303 vmax_f32 (float32x2_t __a, float32x2_t __b)
3305 return (float32x2_t)__builtin_neon_vmaxfv2sf (__a, __b);
3308 __extension__ extern __inline uint8x8_t
3309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3310 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
3312 return (uint8x8_t)__builtin_neon_vmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3315 __extension__ extern __inline uint16x4_t
3316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3317 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
3319 return (uint16x4_t)__builtin_neon_vmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3322 __extension__ extern __inline uint32x2_t
3323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3324 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
3326 return (uint32x2_t)__builtin_neon_vmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3329 __extension__ extern __inline int8x16_t
3330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3331 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
3333 return (int8x16_t)__builtin_neon_vmaxsv16qi (__a, __b);
3336 __extension__ extern __inline int16x8_t
3337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3338 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
3340 return (int16x8_t)__builtin_neon_vmaxsv8hi (__a, __b);
3343 __extension__ extern __inline int32x4_t
3344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3345 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
3347 return (int32x4_t)__builtin_neon_vmaxsv4si (__a, __b);
3350 __extension__ extern __inline float32x4_t
3351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3352 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
3354 return (float32x4_t)__builtin_neon_vmaxfv4sf (__a, __b);
3357 #pragma GCC push_options
3358 #pragma GCC target ("fpu=neon-fp-armv8")
3359 __extension__ extern __inline float32x2_t
3360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3361 vmaxnm_f32 (float32x2_t a, float32x2_t b)
3363 return (float32x2_t)__builtin_neon_vmaxnmv2sf (a, b);
3366 __extension__ extern __inline float32x4_t
3367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3368 vmaxnmq_f32 (float32x4_t a, float32x4_t b)
3370 return (float32x4_t)__builtin_neon_vmaxnmv4sf (a, b);
3373 __extension__ extern __inline float32x2_t
3374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3375 vminnm_f32 (float32x2_t a, float32x2_t b)
3377 return (float32x2_t)__builtin_neon_vminnmv2sf (a, b);
3380 __extension__ extern __inline float32x4_t
3381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3382 vminnmq_f32 (float32x4_t a, float32x4_t b)
3384 return (float32x4_t)__builtin_neon_vminnmv4sf (a, b);
3386 #pragma GCC pop_options
3389 __extension__ extern __inline uint8x16_t
3390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3391 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
3393 return (uint8x16_t)__builtin_neon_vmaxuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3396 __extension__ extern __inline uint16x8_t
3397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3398 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
3400 return (uint16x8_t)__builtin_neon_vmaxuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3403 __extension__ extern __inline uint32x4_t
3404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3405 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
3407 return (uint32x4_t)__builtin_neon_vmaxuv4si ((int32x4_t) __a, (int32x4_t) __b);
3410 __extension__ extern __inline int8x8_t
3411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3412 vmin_s8 (int8x8_t __a, int8x8_t __b)
3414 return (int8x8_t)__builtin_neon_vminsv8qi (__a, __b);
3417 __extension__ extern __inline int16x4_t
3418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3419 vmin_s16 (int16x4_t __a, int16x4_t __b)
3421 return (int16x4_t)__builtin_neon_vminsv4hi (__a, __b);
3424 __extension__ extern __inline int32x2_t
3425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3426 vmin_s32 (int32x2_t __a, int32x2_t __b)
3428 return (int32x2_t)__builtin_neon_vminsv2si (__a, __b);
3431 __extension__ extern __inline float32x2_t
3432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3433 vmin_f32 (float32x2_t __a, float32x2_t __b)
3435 return (float32x2_t)__builtin_neon_vminfv2sf (__a, __b);
3438 __extension__ extern __inline uint8x8_t
3439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3440 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
3442 return (uint8x8_t)__builtin_neon_vminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3445 __extension__ extern __inline uint16x4_t
3446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3447 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
3449 return (uint16x4_t)__builtin_neon_vminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3452 __extension__ extern __inline uint32x2_t
3453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3454 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
3456 return (uint32x2_t)__builtin_neon_vminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3459 __extension__ extern __inline int8x16_t
3460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3461 vminq_s8 (int8x16_t __a, int8x16_t __b)
3463 return (int8x16_t)__builtin_neon_vminsv16qi (__a, __b);
3466 __extension__ extern __inline int16x8_t
3467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3468 vminq_s16 (int16x8_t __a, int16x8_t __b)
3470 return (int16x8_t)__builtin_neon_vminsv8hi (__a, __b);
3473 __extension__ extern __inline int32x4_t
3474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3475 vminq_s32 (int32x4_t __a, int32x4_t __b)
3477 return (int32x4_t)__builtin_neon_vminsv4si (__a, __b);
3480 __extension__ extern __inline float32x4_t
3481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3482 vminq_f32 (float32x4_t __a, float32x4_t __b)
3484 return (float32x4_t)__builtin_neon_vminfv4sf (__a, __b);
3487 __extension__ extern __inline uint8x16_t
3488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3489 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
3491 return (uint8x16_t)__builtin_neon_vminuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3494 __extension__ extern __inline uint16x8_t
3495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3496 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
3498 return (uint16x8_t)__builtin_neon_vminuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3501 __extension__ extern __inline uint32x4_t
3502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3503 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
3505 return (uint32x4_t)__builtin_neon_vminuv4si ((int32x4_t) __a, (int32x4_t) __b);
3508 __extension__ extern __inline int8x8_t
3509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3510 vpadd_s8 (int8x8_t __a, int8x8_t __b)
3512 return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b);
3515 __extension__ extern __inline int16x4_t
3516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3517 vpadd_s16 (int16x4_t __a, int16x4_t __b)
3519 return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b);
3522 __extension__ extern __inline int32x2_t
3523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3524 vpadd_s32 (int32x2_t __a, int32x2_t __b)
3526 return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b);
3529 __extension__ extern __inline float32x2_t
3530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3531 vpadd_f32 (float32x2_t __a, float32x2_t __b)
3533 return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b);
3536 __extension__ extern __inline uint8x8_t
3537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3538 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
3540 return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b);
3543 __extension__ extern __inline uint16x4_t
3544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3545 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
3547 return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b);
3550 __extension__ extern __inline uint32x2_t
3551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3552 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
3554 return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b);
3557 __extension__ extern __inline int16x4_t
3558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3559 vpaddl_s8 (int8x8_t __a)
3561 return (int16x4_t)__builtin_neon_vpaddlsv8qi (__a);
3564 __extension__ extern __inline int32x2_t
3565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3566 vpaddl_s16 (int16x4_t __a)
3568 return (int32x2_t)__builtin_neon_vpaddlsv4hi (__a);
3571 __extension__ extern __inline int64x1_t
3572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3573 vpaddl_s32 (int32x2_t __a)
3575 return (int64x1_t)__builtin_neon_vpaddlsv2si (__a);
3578 __extension__ extern __inline uint16x4_t
3579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3580 vpaddl_u8 (uint8x8_t __a)
3582 return (uint16x4_t)__builtin_neon_vpaddluv8qi ((int8x8_t) __a);
3585 __extension__ extern __inline uint32x2_t
3586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3587 vpaddl_u16 (uint16x4_t __a)
3589 return (uint32x2_t)__builtin_neon_vpaddluv4hi ((int16x4_t) __a);
3592 __extension__ extern __inline uint64x1_t
3593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3594 vpaddl_u32 (uint32x2_t __a)
3596 return (uint64x1_t)__builtin_neon_vpaddluv2si ((int32x2_t) __a);
3599 __extension__ extern __inline int16x8_t
3600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3601 vpaddlq_s8 (int8x16_t __a)
3603 return (int16x8_t)__builtin_neon_vpaddlsv16qi (__a);
3606 __extension__ extern __inline int32x4_t
3607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3608 vpaddlq_s16 (int16x8_t __a)
3610 return (int32x4_t)__builtin_neon_vpaddlsv8hi (__a);
3613 __extension__ extern __inline int64x2_t
3614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3615 vpaddlq_s32 (int32x4_t __a)
3617 return (int64x2_t)__builtin_neon_vpaddlsv4si (__a);
3620 __extension__ extern __inline uint16x8_t
3621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3622 vpaddlq_u8 (uint8x16_t __a)
3624 return (uint16x8_t)__builtin_neon_vpaddluv16qi ((int8x16_t) __a);
3627 __extension__ extern __inline uint32x4_t
3628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3629 vpaddlq_u16 (uint16x8_t __a)
3631 return (uint32x4_t)__builtin_neon_vpaddluv8hi ((int16x8_t) __a);
3634 __extension__ extern __inline uint64x2_t
3635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3636 vpaddlq_u32 (uint32x4_t __a)
3638 return (uint64x2_t)__builtin_neon_vpaddluv4si ((int32x4_t) __a);
3641 __extension__ extern __inline int16x4_t
3642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3643 vpadal_s8 (int16x4_t __a, int8x8_t __b)
3645 return (int16x4_t)__builtin_neon_vpadalsv8qi (__a, __b);
3648 __extension__ extern __inline int32x2_t
3649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3650 vpadal_s16 (int32x2_t __a, int16x4_t __b)
3652 return (int32x2_t)__builtin_neon_vpadalsv4hi (__a, __b);
3655 __extension__ extern __inline int64x1_t
3656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3657 vpadal_s32 (int64x1_t __a, int32x2_t __b)
3659 return (int64x1_t)__builtin_neon_vpadalsv2si (__a, __b);
3662 __extension__ extern __inline uint16x4_t
3663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3664 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
3666 return (uint16x4_t)__builtin_neon_vpadaluv8qi ((int16x4_t) __a, (int8x8_t) __b);
3669 __extension__ extern __inline uint32x2_t
3670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3671 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
3673 return (uint32x2_t)__builtin_neon_vpadaluv4hi ((int32x2_t) __a, (int16x4_t) __b);
3676 __extension__ extern __inline uint64x1_t
3677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3678 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
3680 return (uint64x1_t)__builtin_neon_vpadaluv2si ((int64x1_t) __a, (int32x2_t) __b);
3683 __extension__ extern __inline int16x8_t
3684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3685 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
3687 return (int16x8_t)__builtin_neon_vpadalsv16qi (__a, __b);
3690 __extension__ extern __inline int32x4_t
3691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3692 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
3694 return (int32x4_t)__builtin_neon_vpadalsv8hi (__a, __b);
3697 __extension__ extern __inline int64x2_t
3698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3699 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
3701 return (int64x2_t)__builtin_neon_vpadalsv4si (__a, __b);
3704 __extension__ extern __inline uint16x8_t
3705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3706 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
3708 return (uint16x8_t)__builtin_neon_vpadaluv16qi ((int16x8_t) __a, (int8x16_t) __b);
3711 __extension__ extern __inline uint32x4_t
3712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3713 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
3715 return (uint32x4_t)__builtin_neon_vpadaluv8hi ((int32x4_t) __a, (int16x8_t) __b);
3718 __extension__ extern __inline uint64x2_t
3719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3720 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
3722 return (uint64x2_t)__builtin_neon_vpadaluv4si ((int64x2_t) __a, (int32x4_t) __b);
3725 __extension__ extern __inline int8x8_t
3726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3727 vpmax_s8 (int8x8_t __a, int8x8_t __b)
3729 return (int8x8_t)__builtin_neon_vpmaxsv8qi (__a, __b);
3732 __extension__ extern __inline int16x4_t
3733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3734 vpmax_s16 (int16x4_t __a, int16x4_t __b)
3736 return (int16x4_t)__builtin_neon_vpmaxsv4hi (__a, __b);
3739 __extension__ extern __inline int32x2_t
3740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3741 vpmax_s32 (int32x2_t __a, int32x2_t __b)
3743 return (int32x2_t)__builtin_neon_vpmaxsv2si (__a, __b);
3746 __extension__ extern __inline float32x2_t
3747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3748 vpmax_f32 (float32x2_t __a, float32x2_t __b)
3750 return (float32x2_t)__builtin_neon_vpmaxfv2sf (__a, __b);
3753 __extension__ extern __inline uint8x8_t
3754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3755 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
3757 return (uint8x8_t)__builtin_neon_vpmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3760 __extension__ extern __inline uint16x4_t
3761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3762 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
3764 return (uint16x4_t)__builtin_neon_vpmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3767 __extension__ extern __inline uint32x2_t
3768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3769 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
3771 return (uint32x2_t)__builtin_neon_vpmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3774 __extension__ extern __inline int8x8_t
3775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3776 vpmin_s8 (int8x8_t __a, int8x8_t __b)
3778 return (int8x8_t)__builtin_neon_vpminsv8qi (__a, __b);
3781 __extension__ extern __inline int16x4_t
3782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3783 vpmin_s16 (int16x4_t __a, int16x4_t __b)
3785 return (int16x4_t)__builtin_neon_vpminsv4hi (__a, __b);
3788 __extension__ extern __inline int32x2_t
3789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3790 vpmin_s32 (int32x2_t __a, int32x2_t __b)
3792 return (int32x2_t)__builtin_neon_vpminsv2si (__a, __b);
3795 __extension__ extern __inline float32x2_t
3796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3797 vpmin_f32 (float32x2_t __a, float32x2_t __b)
3799 return (float32x2_t)__builtin_neon_vpminfv2sf (__a, __b);
3802 __extension__ extern __inline uint8x8_t
3803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3804 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
3806 return (uint8x8_t)__builtin_neon_vpminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3809 __extension__ extern __inline uint16x4_t
3810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3811 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
3813 return (uint16x4_t)__builtin_neon_vpminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3816 __extension__ extern __inline uint32x2_t
3817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3818 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
3820 return (uint32x2_t)__builtin_neon_vpminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3823 __extension__ extern __inline float32x2_t
3824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3825 vrecps_f32 (float32x2_t __a, float32x2_t __b)
3827 return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b);
3830 __extension__ extern __inline float32x4_t
3831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3832 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3834 return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b);
3837 __extension__ extern __inline float32x2_t
3838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3839 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3841 return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b);
3844 __extension__ extern __inline float32x4_t
3845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3846 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
3848 return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b);
3851 __extension__ extern __inline int8x8_t
3852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3853 vshl_s8 (int8x8_t __a, int8x8_t __b)
3855 return (int8x8_t)__builtin_neon_vshlsv8qi (__a, __b);
3858 __extension__ extern __inline int16x4_t
3859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3860 vshl_s16 (int16x4_t __a, int16x4_t __b)
3862 return (int16x4_t)__builtin_neon_vshlsv4hi (__a, __b);
3865 __extension__ extern __inline int32x2_t
3866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3867 vshl_s32 (int32x2_t __a, int32x2_t __b)
3869 return (int32x2_t)__builtin_neon_vshlsv2si (__a, __b);
3872 __extension__ extern __inline int64x1_t
3873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3874 vshl_s64 (int64x1_t __a, int64x1_t __b)
3876 return (int64x1_t)__builtin_neon_vshlsdi (__a, __b);
3879 __extension__ extern __inline uint8x8_t
3880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3881 vshl_u8 (uint8x8_t __a, int8x8_t __b)
3883 return (uint8x8_t)__builtin_neon_vshluv8qi ((int8x8_t) __a, __b);
3886 __extension__ extern __inline uint16x4_t
3887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3888 vshl_u16 (uint16x4_t __a, int16x4_t __b)
3890 return (uint16x4_t)__builtin_neon_vshluv4hi ((int16x4_t) __a, __b);
3893 __extension__ extern __inline uint32x2_t
3894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3895 vshl_u32 (uint32x2_t __a, int32x2_t __b)
3897 return (uint32x2_t)__builtin_neon_vshluv2si ((int32x2_t) __a, __b);
3900 __extension__ extern __inline uint64x1_t
3901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3902 vshl_u64 (uint64x1_t __a, int64x1_t __b)
3904 return (uint64x1_t)__builtin_neon_vshludi ((int64x1_t) __a, __b);
3907 __extension__ extern __inline int8x16_t
3908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3909 vshlq_s8 (int8x16_t __a, int8x16_t __b)
3911 return (int8x16_t)__builtin_neon_vshlsv16qi (__a, __b);
3914 __extension__ extern __inline int16x8_t
3915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3916 vshlq_s16 (int16x8_t __a, int16x8_t __b)
3918 return (int16x8_t)__builtin_neon_vshlsv8hi (__a, __b);
3921 __extension__ extern __inline int32x4_t
3922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3923 vshlq_s32 (int32x4_t __a, int32x4_t __b)
3925 return (int32x4_t)__builtin_neon_vshlsv4si (__a, __b);
3928 __extension__ extern __inline int64x2_t
3929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3930 vshlq_s64 (int64x2_t __a, int64x2_t __b)
3932 return (int64x2_t)__builtin_neon_vshlsv2di (__a, __b);
3935 __extension__ extern __inline uint8x16_t
3936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3937 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
3939 return (uint8x16_t)__builtin_neon_vshluv16qi ((int8x16_t) __a, __b);
3942 __extension__ extern __inline uint16x8_t
3943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3944 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
3946 return (uint16x8_t)__builtin_neon_vshluv8hi ((int16x8_t) __a, __b);
3949 __extension__ extern __inline uint32x4_t
3950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3951 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
3953 return (uint32x4_t)__builtin_neon_vshluv4si ((int32x4_t) __a, __b);
3956 __extension__ extern __inline uint64x2_t
3957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3958 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
3960 return (uint64x2_t)__builtin_neon_vshluv2di ((int64x2_t) __a, __b);
3963 __extension__ extern __inline int8x8_t
3964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3965 vrshl_s8 (int8x8_t __a, int8x8_t __b)
3967 return (int8x8_t)__builtin_neon_vrshlsv8qi (__a, __b);
3970 __extension__ extern __inline int16x4_t
3971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3972 vrshl_s16 (int16x4_t __a, int16x4_t __b)
3974 return (int16x4_t)__builtin_neon_vrshlsv4hi (__a, __b);
3977 __extension__ extern __inline int32x2_t
3978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3979 vrshl_s32 (int32x2_t __a, int32x2_t __b)
3981 return (int32x2_t)__builtin_neon_vrshlsv2si (__a, __b);
3984 __extension__ extern __inline int64x1_t
3985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3986 vrshl_s64 (int64x1_t __a, int64x1_t __b)
3988 return (int64x1_t)__builtin_neon_vrshlsdi (__a, __b);
3991 __extension__ extern __inline uint8x8_t
3992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3993 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
3995 return (uint8x8_t)__builtin_neon_vrshluv8qi ((int8x8_t) __a, __b);
3998 __extension__ extern __inline uint16x4_t
3999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4000 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
4002 return (uint16x4_t)__builtin_neon_vrshluv4hi ((int16x4_t) __a, __b);
4005 __extension__ extern __inline uint32x2_t
4006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4007 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
4009 return (uint32x2_t)__builtin_neon_vrshluv2si ((int32x2_t) __a, __b);
4012 __extension__ extern __inline uint64x1_t
4013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4014 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
4016 return (uint64x1_t)__builtin_neon_vrshludi ((int64x1_t) __a, __b);
4019 __extension__ extern __inline int8x16_t
4020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4021 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
4023 return (int8x16_t)__builtin_neon_vrshlsv16qi (__a, __b);
4026 __extension__ extern __inline int16x8_t
4027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4028 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
4030 return (int16x8_t)__builtin_neon_vrshlsv8hi (__a, __b);
4033 __extension__ extern __inline int32x4_t
4034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4035 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
4037 return (int32x4_t)__builtin_neon_vrshlsv4si (__a, __b);
4040 __extension__ extern __inline int64x2_t
4041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4042 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
4044 return (int64x2_t)__builtin_neon_vrshlsv2di (__a, __b);
4047 __extension__ extern __inline uint8x16_t
4048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4049 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4051 return (uint8x16_t)__builtin_neon_vrshluv16qi ((int8x16_t) __a, __b);
4054 __extension__ extern __inline uint16x8_t
4055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4056 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4058 return (uint16x8_t)__builtin_neon_vrshluv8hi ((int16x8_t) __a, __b);
4061 __extension__ extern __inline uint32x4_t
4062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4063 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4065 return (uint32x4_t)__builtin_neon_vrshluv4si ((int32x4_t) __a, __b);
4068 __extension__ extern __inline uint64x2_t
4069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4070 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4072 return (uint64x2_t)__builtin_neon_vrshluv2di ((int64x2_t) __a, __b);
4075 __extension__ extern __inline int8x8_t
4076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4077 vqshl_s8 (int8x8_t __a, int8x8_t __b)
4079 return (int8x8_t)__builtin_neon_vqshlsv8qi (__a, __b);
4082 __extension__ extern __inline int16x4_t
4083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4084 vqshl_s16 (int16x4_t __a, int16x4_t __b)
4086 return (int16x4_t)__builtin_neon_vqshlsv4hi (__a, __b);
4089 __extension__ extern __inline int32x2_t
4090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4091 vqshl_s32 (int32x2_t __a, int32x2_t __b)
4093 return (int32x2_t)__builtin_neon_vqshlsv2si (__a, __b);
4096 __extension__ extern __inline int64x1_t
4097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4098 vqshl_s64 (int64x1_t __a, int64x1_t __b)
4100 return (int64x1_t)__builtin_neon_vqshlsdi (__a, __b);
4103 __extension__ extern __inline uint8x8_t
4104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4105 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
4107 return (uint8x8_t)__builtin_neon_vqshluv8qi ((int8x8_t) __a, __b);
4110 __extension__ extern __inline uint16x4_t
4111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4112 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
4114 return (uint16x4_t)__builtin_neon_vqshluv4hi ((int16x4_t) __a, __b);
4117 __extension__ extern __inline uint32x2_t
4118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4119 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
4121 return (uint32x2_t)__builtin_neon_vqshluv2si ((int32x2_t) __a, __b);
4124 __extension__ extern __inline uint64x1_t
4125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4126 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
4128 return (uint64x1_t)__builtin_neon_vqshludi ((int64x1_t) __a, __b);
4131 __extension__ extern __inline int8x16_t
4132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4133 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
4135 return (int8x16_t)__builtin_neon_vqshlsv16qi (__a, __b);
4138 __extension__ extern __inline int16x8_t
4139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4140 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
4142 return (int16x8_t)__builtin_neon_vqshlsv8hi (__a, __b);
4145 __extension__ extern __inline int32x4_t
4146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4147 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
4149 return (int32x4_t)__builtin_neon_vqshlsv4si (__a, __b);
4152 __extension__ extern __inline int64x2_t
4153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4154 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
4156 return (int64x2_t)__builtin_neon_vqshlsv2di (__a, __b);
4159 __extension__ extern __inline uint8x16_t
4160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4161 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
4163 return (uint8x16_t)__builtin_neon_vqshluv16qi ((int8x16_t) __a, __b);
4166 __extension__ extern __inline uint16x8_t
4167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4168 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
4170 return (uint16x8_t)__builtin_neon_vqshluv8hi ((int16x8_t) __a, __b);
4173 __extension__ extern __inline uint32x4_t
4174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4175 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
4177 return (uint32x4_t)__builtin_neon_vqshluv4si ((int32x4_t) __a, __b);
4180 __extension__ extern __inline uint64x2_t
4181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4182 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
4184 return (uint64x2_t)__builtin_neon_vqshluv2di ((int64x2_t) __a, __b);
4187 __extension__ extern __inline int8x8_t
4188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4189 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
4191 return (int8x8_t)__builtin_neon_vqrshlsv8qi (__a, __b);
4194 __extension__ extern __inline int16x4_t
4195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4196 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
4198 return (int16x4_t)__builtin_neon_vqrshlsv4hi (__a, __b);
4201 __extension__ extern __inline int32x2_t
4202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4203 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
4205 return (int32x2_t)__builtin_neon_vqrshlsv2si (__a, __b);
4208 __extension__ extern __inline int64x1_t
4209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4210 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
4212 return (int64x1_t)__builtin_neon_vqrshlsdi (__a, __b);
4215 __extension__ extern __inline uint8x8_t
4216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4217 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
4219 return (uint8x8_t)__builtin_neon_vqrshluv8qi ((int8x8_t) __a, __b);
4222 __extension__ extern __inline uint16x4_t
4223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4224 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
4226 return (uint16x4_t)__builtin_neon_vqrshluv4hi ((int16x4_t) __a, __b);
4229 __extension__ extern __inline uint32x2_t
4230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4231 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
4233 return (uint32x2_t)__builtin_neon_vqrshluv2si ((int32x2_t) __a, __b);
4236 __extension__ extern __inline uint64x1_t
4237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4238 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
4240 return (uint64x1_t)__builtin_neon_vqrshludi ((int64x1_t) __a, __b);
4243 __extension__ extern __inline int8x16_t
4244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4245 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
4247 return (int8x16_t)__builtin_neon_vqrshlsv16qi (__a, __b);
4250 __extension__ extern __inline int16x8_t
4251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4252 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
4254 return (int16x8_t)__builtin_neon_vqrshlsv8hi (__a, __b);
4257 __extension__ extern __inline int32x4_t
4258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4259 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
4261 return (int32x4_t)__builtin_neon_vqrshlsv4si (__a, __b);
4264 __extension__ extern __inline int64x2_t
4265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4266 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
4268 return (int64x2_t)__builtin_neon_vqrshlsv2di (__a, __b);
4271 __extension__ extern __inline uint8x16_t
4272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4273 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4275 return (uint8x16_t)__builtin_neon_vqrshluv16qi ((int8x16_t) __a, __b);
4278 __extension__ extern __inline uint16x8_t
4279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4280 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4282 return (uint16x8_t)__builtin_neon_vqrshluv8hi ((int16x8_t) __a, __b);
4285 __extension__ extern __inline uint32x4_t
4286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4287 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4289 return (uint32x4_t)__builtin_neon_vqrshluv4si ((int32x4_t) __a, __b);
4292 __extension__ extern __inline uint64x2_t
4293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4294 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4296 return (uint64x2_t)__builtin_neon_vqrshluv2di ((int64x2_t) __a, __b);
4299 __extension__ extern __inline int8x8_t
4300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4301 vshr_n_s8 (int8x8_t __a, const int __b)
4303 return (int8x8_t)__builtin_neon_vshrs_nv8qi (__a, __b);
4306 __extension__ extern __inline int16x4_t
4307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4308 vshr_n_s16 (int16x4_t __a, const int __b)
4310 return (int16x4_t)__builtin_neon_vshrs_nv4hi (__a, __b);
4313 __extension__ extern __inline int32x2_t
4314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4315 vshr_n_s32 (int32x2_t __a, const int __b)
4317 return (int32x2_t)__builtin_neon_vshrs_nv2si (__a, __b);
4320 __extension__ extern __inline int64x1_t
4321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4322 vshr_n_s64 (int64x1_t __a, const int __b)
4324 return (int64x1_t)__builtin_neon_vshrs_ndi (__a, __b);
4327 __extension__ extern __inline uint8x8_t
4328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4329 vshr_n_u8 (uint8x8_t __a, const int __b)
4331 return (uint8x8_t)__builtin_neon_vshru_nv8qi ((int8x8_t) __a, __b);
4334 __extension__ extern __inline uint16x4_t
4335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4336 vshr_n_u16 (uint16x4_t __a, const int __b)
4338 return (uint16x4_t)__builtin_neon_vshru_nv4hi ((int16x4_t) __a, __b);
4341 __extension__ extern __inline uint32x2_t
4342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4343 vshr_n_u32 (uint32x2_t __a, const int __b)
4345 return (uint32x2_t)__builtin_neon_vshru_nv2si ((int32x2_t) __a, __b);
4348 __extension__ extern __inline uint64x1_t
4349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4350 vshr_n_u64 (uint64x1_t __a, const int __b)
4352 return (uint64x1_t)__builtin_neon_vshru_ndi ((int64x1_t) __a, __b);
4355 __extension__ extern __inline int8x16_t
4356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4357 vshrq_n_s8 (int8x16_t __a, const int __b)
4359 return (int8x16_t)__builtin_neon_vshrs_nv16qi (__a, __b);
4362 __extension__ extern __inline int16x8_t
4363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4364 vshrq_n_s16 (int16x8_t __a, const int __b)
4366 return (int16x8_t)__builtin_neon_vshrs_nv8hi (__a, __b);
4369 __extension__ extern __inline int32x4_t
4370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4371 vshrq_n_s32 (int32x4_t __a, const int __b)
4373 return (int32x4_t)__builtin_neon_vshrs_nv4si (__a, __b);
4376 __extension__ extern __inline int64x2_t
4377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4378 vshrq_n_s64 (int64x2_t __a, const int __b)
4380 return (int64x2_t)__builtin_neon_vshrs_nv2di (__a, __b);
4383 __extension__ extern __inline uint8x16_t
4384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4385 vshrq_n_u8 (uint8x16_t __a, const int __b)
4387 return (uint8x16_t)__builtin_neon_vshru_nv16qi ((int8x16_t) __a, __b);
4390 __extension__ extern __inline uint16x8_t
4391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4392 vshrq_n_u16 (uint16x8_t __a, const int __b)
4394 return (uint16x8_t)__builtin_neon_vshru_nv8hi ((int16x8_t) __a, __b);
4397 __extension__ extern __inline uint32x4_t
4398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4399 vshrq_n_u32 (uint32x4_t __a, const int __b)
4401 return (uint32x4_t)__builtin_neon_vshru_nv4si ((int32x4_t) __a, __b);
4404 __extension__ extern __inline uint64x2_t
4405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4406 vshrq_n_u64 (uint64x2_t __a, const int __b)
4408 return (uint64x2_t)__builtin_neon_vshru_nv2di ((int64x2_t) __a, __b);
4411 __extension__ extern __inline int8x8_t
4412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4413 vrshr_n_s8 (int8x8_t __a, const int __b)
4415 return (int8x8_t)__builtin_neon_vrshrs_nv8qi (__a, __b);
4418 __extension__ extern __inline int16x4_t
4419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4420 vrshr_n_s16 (int16x4_t __a, const int __b)
4422 return (int16x4_t)__builtin_neon_vrshrs_nv4hi (__a, __b);
4425 __extension__ extern __inline int32x2_t
4426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4427 vrshr_n_s32 (int32x2_t __a, const int __b)
4429 return (int32x2_t)__builtin_neon_vrshrs_nv2si (__a, __b);
4432 __extension__ extern __inline int64x1_t
4433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4434 vrshr_n_s64 (int64x1_t __a, const int __b)
4436 return (int64x1_t)__builtin_neon_vrshrs_ndi (__a, __b);
4439 __extension__ extern __inline uint8x8_t
4440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4441 vrshr_n_u8 (uint8x8_t __a, const int __b)
4443 return (uint8x8_t)__builtin_neon_vrshru_nv8qi ((int8x8_t) __a, __b);
4446 __extension__ extern __inline uint16x4_t
4447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4448 vrshr_n_u16 (uint16x4_t __a, const int __b)
4450 return (uint16x4_t)__builtin_neon_vrshru_nv4hi ((int16x4_t) __a, __b);
4453 __extension__ extern __inline uint32x2_t
4454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4455 vrshr_n_u32 (uint32x2_t __a, const int __b)
4457 return (uint32x2_t)__builtin_neon_vrshru_nv2si ((int32x2_t) __a, __b);
4460 __extension__ extern __inline uint64x1_t
4461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4462 vrshr_n_u64 (uint64x1_t __a, const int __b)
4464 return (uint64x1_t)__builtin_neon_vrshru_ndi ((int64x1_t) __a, __b);
4467 __extension__ extern __inline int8x16_t
4468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4469 vrshrq_n_s8 (int8x16_t __a, const int __b)
4471 return (int8x16_t)__builtin_neon_vrshrs_nv16qi (__a, __b);
4474 __extension__ extern __inline int16x8_t
4475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4476 vrshrq_n_s16 (int16x8_t __a, const int __b)
4478 return (int16x8_t)__builtin_neon_vrshrs_nv8hi (__a, __b);
4481 __extension__ extern __inline int32x4_t
4482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4483 vrshrq_n_s32 (int32x4_t __a, const int __b)
4485 return (int32x4_t)__builtin_neon_vrshrs_nv4si (__a, __b);
4488 __extension__ extern __inline int64x2_t
4489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4490 vrshrq_n_s64 (int64x2_t __a, const int __b)
4492 return (int64x2_t)__builtin_neon_vrshrs_nv2di (__a, __b);
4495 __extension__ extern __inline uint8x16_t
4496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4497 vrshrq_n_u8 (uint8x16_t __a, const int __b)
4499 return (uint8x16_t)__builtin_neon_vrshru_nv16qi ((int8x16_t) __a, __b);
4502 __extension__ extern __inline uint16x8_t
4503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4504 vrshrq_n_u16 (uint16x8_t __a, const int __b)
4506 return (uint16x8_t)__builtin_neon_vrshru_nv8hi ((int16x8_t) __a, __b);
4509 __extension__ extern __inline uint32x4_t
4510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4511 vrshrq_n_u32 (uint32x4_t __a, const int __b)
4513 return (uint32x4_t)__builtin_neon_vrshru_nv4si ((int32x4_t) __a, __b);
4516 __extension__ extern __inline uint64x2_t
4517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4518 vrshrq_n_u64 (uint64x2_t __a, const int __b)
4520 return (uint64x2_t)__builtin_neon_vrshru_nv2di ((int64x2_t) __a, __b);
4523 __extension__ extern __inline int8x8_t
4524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4525 vshrn_n_s16 (int16x8_t __a, const int __b)
4527 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b);
4530 __extension__ extern __inline int16x4_t
4531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4532 vshrn_n_s32 (int32x4_t __a, const int __b)
4534 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b);
4537 __extension__ extern __inline int32x2_t
4538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4539 vshrn_n_s64 (int64x2_t __a, const int __b)
4541 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b);
4544 __extension__ extern __inline uint8x8_t
4545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4546 vshrn_n_u16 (uint16x8_t __a, const int __b)
4548 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b);
4551 __extension__ extern __inline uint16x4_t
4552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4553 vshrn_n_u32 (uint32x4_t __a, const int __b)
4555 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b);
4558 __extension__ extern __inline uint32x2_t
4559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4560 vshrn_n_u64 (uint64x2_t __a, const int __b)
4562 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b);
4565 __extension__ extern __inline int8x8_t
4566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4567 vrshrn_n_s16 (int16x8_t __a, const int __b)
4569 return (int8x8_t)__builtin_neon_vrshrn_nv8hi (__a, __b);
4572 __extension__ extern __inline int16x4_t
4573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4574 vrshrn_n_s32 (int32x4_t __a, const int __b)
4576 return (int16x4_t)__builtin_neon_vrshrn_nv4si (__a, __b);
4579 __extension__ extern __inline int32x2_t
4580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4581 vrshrn_n_s64 (int64x2_t __a, const int __b)
4583 return (int32x2_t)__builtin_neon_vrshrn_nv2di (__a, __b);
4586 __extension__ extern __inline uint8x8_t
4587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4588 vrshrn_n_u16 (uint16x8_t __a, const int __b)
4590 return (uint8x8_t)__builtin_neon_vrshrn_nv8hi ((int16x8_t) __a, __b);
4593 __extension__ extern __inline uint16x4_t
4594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4595 vrshrn_n_u32 (uint32x4_t __a, const int __b)
4597 return (uint16x4_t)__builtin_neon_vrshrn_nv4si ((int32x4_t) __a, __b);
4600 __extension__ extern __inline uint32x2_t
4601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4602 vrshrn_n_u64 (uint64x2_t __a, const int __b)
4604 return (uint32x2_t)__builtin_neon_vrshrn_nv2di ((int64x2_t) __a, __b);
4607 __extension__ extern __inline int8x8_t
4608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4609 vqshrn_n_s16 (int16x8_t __a, const int __b)
4611 return (int8x8_t)__builtin_neon_vqshrns_nv8hi (__a, __b);
4614 __extension__ extern __inline int16x4_t
4615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4616 vqshrn_n_s32 (int32x4_t __a, const int __b)
4618 return (int16x4_t)__builtin_neon_vqshrns_nv4si (__a, __b);
4621 __extension__ extern __inline int32x2_t
4622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4623 vqshrn_n_s64 (int64x2_t __a, const int __b)
4625 return (int32x2_t)__builtin_neon_vqshrns_nv2di (__a, __b);
4628 __extension__ extern __inline uint8x8_t
4629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4630 vqshrn_n_u16 (uint16x8_t __a, const int __b)
4632 return (uint8x8_t)__builtin_neon_vqshrnu_nv8hi ((int16x8_t) __a, __b);
4635 __extension__ extern __inline uint16x4_t
4636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4637 vqshrn_n_u32 (uint32x4_t __a, const int __b)
4639 return (uint16x4_t)__builtin_neon_vqshrnu_nv4si ((int32x4_t) __a, __b);
4642 __extension__ extern __inline uint32x2_t
4643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4644 vqshrn_n_u64 (uint64x2_t __a, const int __b)
4646 return (uint32x2_t)__builtin_neon_vqshrnu_nv2di ((int64x2_t) __a, __b);
4649 __extension__ extern __inline int8x8_t
4650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4651 vqrshrn_n_s16 (int16x8_t __a, const int __b)
4653 return (int8x8_t)__builtin_neon_vqrshrns_nv8hi (__a, __b);
4656 __extension__ extern __inline int16x4_t
4657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4658 vqrshrn_n_s32 (int32x4_t __a, const int __b)
4660 return (int16x4_t)__builtin_neon_vqrshrns_nv4si (__a, __b);
4663 __extension__ extern __inline int32x2_t
4664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4665 vqrshrn_n_s64 (int64x2_t __a, const int __b)
4667 return (int32x2_t)__builtin_neon_vqrshrns_nv2di (__a, __b);
4670 __extension__ extern __inline uint8x8_t
4671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4672 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
4674 return (uint8x8_t)__builtin_neon_vqrshrnu_nv8hi ((int16x8_t) __a, __b);
4677 __extension__ extern __inline uint16x4_t
4678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4679 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
4681 return (uint16x4_t)__builtin_neon_vqrshrnu_nv4si ((int32x4_t) __a, __b);
4684 __extension__ extern __inline uint32x2_t
4685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4686 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
4688 return (uint32x2_t)__builtin_neon_vqrshrnu_nv2di ((int64x2_t) __a, __b);
4691 __extension__ extern __inline uint8x8_t
4692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4693 vqshrun_n_s16 (int16x8_t __a, const int __b)
4695 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b);
4698 __extension__ extern __inline uint16x4_t
4699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4700 vqshrun_n_s32 (int32x4_t __a, const int __b)
4702 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b);
4705 __extension__ extern __inline uint32x2_t
4706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4707 vqshrun_n_s64 (int64x2_t __a, const int __b)
4709 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b);
4712 __extension__ extern __inline uint8x8_t
4713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4714 vqrshrun_n_s16 (int16x8_t __a, const int __b)
4716 return (uint8x8_t)__builtin_neon_vqrshrun_nv8hi (__a, __b);
4719 __extension__ extern __inline uint16x4_t
4720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4721 vqrshrun_n_s32 (int32x4_t __a, const int __b)
4723 return (uint16x4_t)__builtin_neon_vqrshrun_nv4si (__a, __b);
4726 __extension__ extern __inline uint32x2_t
4727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4728 vqrshrun_n_s64 (int64x2_t __a, const int __b)
4730 return (uint32x2_t)__builtin_neon_vqrshrun_nv2di (__a, __b);
4733 __extension__ extern __inline int8x8_t
4734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4735 vshl_n_s8 (int8x8_t __a, const int __b)
4737 return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b);
4740 __extension__ extern __inline int16x4_t
4741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4742 vshl_n_s16 (int16x4_t __a, const int __b)
4744 return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b);
4747 __extension__ extern __inline int32x2_t
4748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4749 vshl_n_s32 (int32x2_t __a, const int __b)
4751 return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b);
4754 __extension__ extern __inline int64x1_t
4755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4756 vshl_n_s64 (int64x1_t __a, const int __b)
4758 return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b);
4761 __extension__ extern __inline uint8x8_t
4762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4763 vshl_n_u8 (uint8x8_t __a, const int __b)
4765 return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b);
4768 __extension__ extern __inline uint16x4_t
4769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4770 vshl_n_u16 (uint16x4_t __a, const int __b)
4772 return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b);
4775 __extension__ extern __inline uint32x2_t
4776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4777 vshl_n_u32 (uint32x2_t __a, const int __b)
4779 return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b);
4782 __extension__ extern __inline uint64x1_t
4783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4784 vshl_n_u64 (uint64x1_t __a, const int __b)
4786 return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b);
4789 __extension__ extern __inline int8x16_t
4790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4791 vshlq_n_s8 (int8x16_t __a, const int __b)
4793 return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b);
4796 __extension__ extern __inline int16x8_t
4797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4798 vshlq_n_s16 (int16x8_t __a, const int __b)
4800 return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b);
4803 __extension__ extern __inline int32x4_t
4804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4805 vshlq_n_s32 (int32x4_t __a, const int __b)
4807 return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b);
4810 __extension__ extern __inline int64x2_t
4811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4812 vshlq_n_s64 (int64x2_t __a, const int __b)
4814 return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b);
4817 __extension__ extern __inline uint8x16_t
4818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4819 vshlq_n_u8 (uint8x16_t __a, const int __b)
4821 return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b);
4824 __extension__ extern __inline uint16x8_t
4825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4826 vshlq_n_u16 (uint16x8_t __a, const int __b)
4828 return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b);
4831 __extension__ extern __inline uint32x4_t
4832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4833 vshlq_n_u32 (uint32x4_t __a, const int __b)
4835 return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b);
4838 __extension__ extern __inline uint64x2_t
4839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4840 vshlq_n_u64 (uint64x2_t __a, const int __b)
4842 return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b);
4845 __extension__ extern __inline int8x8_t
4846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4847 vqshl_n_s8 (int8x8_t __a, const int __b)
4849 return (int8x8_t)__builtin_neon_vqshl_s_nv8qi (__a, __b);
4852 __extension__ extern __inline int16x4_t
4853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4854 vqshl_n_s16 (int16x4_t __a, const int __b)
4856 return (int16x4_t)__builtin_neon_vqshl_s_nv4hi (__a, __b);
4859 __extension__ extern __inline int32x2_t
4860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4861 vqshl_n_s32 (int32x2_t __a, const int __b)
4863 return (int32x2_t)__builtin_neon_vqshl_s_nv2si (__a, __b);
4866 __extension__ extern __inline int64x1_t
4867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4868 vqshl_n_s64 (int64x1_t __a, const int __b)
4870 return (int64x1_t)__builtin_neon_vqshl_s_ndi (__a, __b);
4873 __extension__ extern __inline uint8x8_t
4874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4875 vqshl_n_u8 (uint8x8_t __a, const int __b)
4877 return (uint8x8_t)__builtin_neon_vqshl_u_nv8qi ((int8x8_t) __a, __b);
4880 __extension__ extern __inline uint16x4_t
4881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4882 vqshl_n_u16 (uint16x4_t __a, const int __b)
4884 return (uint16x4_t)__builtin_neon_vqshl_u_nv4hi ((int16x4_t) __a, __b);
4887 __extension__ extern __inline uint32x2_t
4888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4889 vqshl_n_u32 (uint32x2_t __a, const int __b)
4891 return (uint32x2_t)__builtin_neon_vqshl_u_nv2si ((int32x2_t) __a, __b);
4894 __extension__ extern __inline uint64x1_t
4895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4896 vqshl_n_u64 (uint64x1_t __a, const int __b)
4898 return (uint64x1_t)__builtin_neon_vqshl_u_ndi ((int64x1_t) __a, __b);
4901 __extension__ extern __inline int8x16_t
4902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4903 vqshlq_n_s8 (int8x16_t __a, const int __b)
4905 return (int8x16_t)__builtin_neon_vqshl_s_nv16qi (__a, __b);
4908 __extension__ extern __inline int16x8_t
4909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4910 vqshlq_n_s16 (int16x8_t __a, const int __b)
4912 return (int16x8_t)__builtin_neon_vqshl_s_nv8hi (__a, __b);
4915 __extension__ extern __inline int32x4_t
4916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4917 vqshlq_n_s32 (int32x4_t __a, const int __b)
4919 return (int32x4_t)__builtin_neon_vqshl_s_nv4si (__a, __b);
4922 __extension__ extern __inline int64x2_t
4923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4924 vqshlq_n_s64 (int64x2_t __a, const int __b)
4926 return (int64x2_t)__builtin_neon_vqshl_s_nv2di (__a, __b);
4929 __extension__ extern __inline uint8x16_t
4930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4931 vqshlq_n_u8 (uint8x16_t __a, const int __b)
4933 return (uint8x16_t)__builtin_neon_vqshl_u_nv16qi ((int8x16_t) __a, __b);
4936 __extension__ extern __inline uint16x8_t
4937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4938 vqshlq_n_u16 (uint16x8_t __a, const int __b)
4940 return (uint16x8_t)__builtin_neon_vqshl_u_nv8hi ((int16x8_t) __a, __b);
4943 __extension__ extern __inline uint32x4_t
4944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4945 vqshlq_n_u32 (uint32x4_t __a, const int __b)
4947 return (uint32x4_t)__builtin_neon_vqshl_u_nv4si ((int32x4_t) __a, __b);
4950 __extension__ extern __inline uint64x2_t
4951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4952 vqshlq_n_u64 (uint64x2_t __a, const int __b)
4954 return (uint64x2_t)__builtin_neon_vqshl_u_nv2di ((int64x2_t) __a, __b);
4957 __extension__ extern __inline uint8x8_t
4958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4959 vqshlu_n_s8 (int8x8_t __a, const int __b)
4961 return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b);
4964 __extension__ extern __inline uint16x4_t
4965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4966 vqshlu_n_s16 (int16x4_t __a, const int __b)
4968 return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b);
4971 __extension__ extern __inline uint32x2_t
4972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4973 vqshlu_n_s32 (int32x2_t __a, const int __b)
4975 return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b);
4978 __extension__ extern __inline uint64x1_t
4979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4980 vqshlu_n_s64 (int64x1_t __a, const int __b)
4982 return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b);
4985 __extension__ extern __inline uint8x16_t
4986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4987 vqshluq_n_s8 (int8x16_t __a, const int __b)
4989 return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b);
4992 __extension__ extern __inline uint16x8_t
4993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4994 vqshluq_n_s16 (int16x8_t __a, const int __b)
4996 return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b);
4999 __extension__ extern __inline uint32x4_t
5000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5001 vqshluq_n_s32 (int32x4_t __a, const int __b)
5003 return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b);
5006 __extension__ extern __inline uint64x2_t
5007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5008 vqshluq_n_s64 (int64x2_t __a, const int __b)
5010 return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b);
5013 __extension__ extern __inline int16x8_t
5014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5015 vshll_n_s8 (int8x8_t __a, const int __b)
5017 return (int16x8_t)__builtin_neon_vshlls_nv8qi (__a, __b);
5020 __extension__ extern __inline int32x4_t
5021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5022 vshll_n_s16 (int16x4_t __a, const int __b)
5024 return (int32x4_t)__builtin_neon_vshlls_nv4hi (__a, __b);
5027 __extension__ extern __inline int64x2_t
5028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5029 vshll_n_s32 (int32x2_t __a, const int __b)
5031 return (int64x2_t)__builtin_neon_vshlls_nv2si (__a, __b);
5034 __extension__ extern __inline uint16x8_t
5035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5036 vshll_n_u8 (uint8x8_t __a, const int __b)
5038 return (uint16x8_t)__builtin_neon_vshllu_nv8qi ((int8x8_t) __a, __b);
5041 __extension__ extern __inline uint32x4_t
5042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5043 vshll_n_u16 (uint16x4_t __a, const int __b)
5045 return (uint32x4_t)__builtin_neon_vshllu_nv4hi ((int16x4_t) __a, __b);
5048 __extension__ extern __inline uint64x2_t
5049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5050 vshll_n_u32 (uint32x2_t __a, const int __b)
5052 return (uint64x2_t)__builtin_neon_vshllu_nv2si ((int32x2_t) __a, __b);
5055 __extension__ extern __inline int8x8_t
5056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5057 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5059 return (int8x8_t)__builtin_neon_vsras_nv8qi (__a, __b, __c);
5062 __extension__ extern __inline int16x4_t
5063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5064 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5066 return (int16x4_t)__builtin_neon_vsras_nv4hi (__a, __b, __c);
5069 __extension__ extern __inline int32x2_t
5070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5071 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5073 return (int32x2_t)__builtin_neon_vsras_nv2si (__a, __b, __c);
5076 __extension__ extern __inline int64x1_t
5077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5078 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5080 return (int64x1_t)__builtin_neon_vsras_ndi (__a, __b, __c);
5083 __extension__ extern __inline uint8x8_t
5084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5085 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5087 return (uint8x8_t)__builtin_neon_vsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5090 __extension__ extern __inline uint16x4_t
5091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5092 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5094 return (uint16x4_t)__builtin_neon_vsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5097 __extension__ extern __inline uint32x2_t
5098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5099 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5101 return (uint32x2_t)__builtin_neon_vsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5104 __extension__ extern __inline uint64x1_t
5105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5106 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5108 return (uint64x1_t)__builtin_neon_vsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5111 __extension__ extern __inline int8x16_t
5112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5113 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5115 return (int8x16_t)__builtin_neon_vsras_nv16qi (__a, __b, __c);
5118 __extension__ extern __inline int16x8_t
5119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5120 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5122 return (int16x8_t)__builtin_neon_vsras_nv8hi (__a, __b, __c);
5125 __extension__ extern __inline int32x4_t
5126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5127 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5129 return (int32x4_t)__builtin_neon_vsras_nv4si (__a, __b, __c);
5132 __extension__ extern __inline int64x2_t
5133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5134 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5136 return (int64x2_t)__builtin_neon_vsras_nv2di (__a, __b, __c);
5139 __extension__ extern __inline uint8x16_t
5140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5141 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5143 return (uint8x16_t)__builtin_neon_vsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5146 __extension__ extern __inline uint16x8_t
5147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5148 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5150 return (uint16x8_t)__builtin_neon_vsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5153 __extension__ extern __inline uint32x4_t
5154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5155 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5157 return (uint32x4_t)__builtin_neon_vsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5160 __extension__ extern __inline uint64x2_t
5161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5162 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5164 return (uint64x2_t)__builtin_neon_vsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5167 __extension__ extern __inline int8x8_t
5168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5169 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5171 return (int8x8_t)__builtin_neon_vrsras_nv8qi (__a, __b, __c);
5174 __extension__ extern __inline int16x4_t
5175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5176 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5178 return (int16x4_t)__builtin_neon_vrsras_nv4hi (__a, __b, __c);
5181 __extension__ extern __inline int32x2_t
5182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5183 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5185 return (int32x2_t)__builtin_neon_vrsras_nv2si (__a, __b, __c);
5188 __extension__ extern __inline int64x1_t
5189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5190 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5192 return (int64x1_t)__builtin_neon_vrsras_ndi (__a, __b, __c);
5195 __extension__ extern __inline uint8x8_t
5196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5197 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5199 return (uint8x8_t)__builtin_neon_vrsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5202 __extension__ extern __inline uint16x4_t
5203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5204 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5206 return (uint16x4_t)__builtin_neon_vrsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5209 __extension__ extern __inline uint32x2_t
5210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5211 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5213 return (uint32x2_t)__builtin_neon_vrsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5216 __extension__ extern __inline uint64x1_t
5217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5218 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5220 return (uint64x1_t)__builtin_neon_vrsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5223 __extension__ extern __inline int8x16_t
5224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5225 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5227 return (int8x16_t)__builtin_neon_vrsras_nv16qi (__a, __b, __c);
5230 __extension__ extern __inline int16x8_t
5231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5232 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5234 return (int16x8_t)__builtin_neon_vrsras_nv8hi (__a, __b, __c);
5237 __extension__ extern __inline int32x4_t
5238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5239 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5241 return (int32x4_t)__builtin_neon_vrsras_nv4si (__a, __b, __c);
5244 __extension__ extern __inline int64x2_t
5245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5246 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5248 return (int64x2_t)__builtin_neon_vrsras_nv2di (__a, __b, __c);
5251 __extension__ extern __inline uint8x16_t
5252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5253 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5255 return (uint8x16_t)__builtin_neon_vrsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5258 __extension__ extern __inline uint16x8_t
5259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5260 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5262 return (uint16x8_t)__builtin_neon_vrsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5265 __extension__ extern __inline uint32x4_t
5266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5267 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5269 return (uint32x4_t)__builtin_neon_vrsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5272 __extension__ extern __inline uint64x2_t
5273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5274 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5276 return (uint64x2_t)__builtin_neon_vrsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5279 #pragma GCC push_options
5280 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5281 __extension__ extern __inline poly64x1_t
5282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5283 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5285 return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5288 #pragma GCC pop_options
5289 __extension__ extern __inline int8x8_t
5290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5291 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5293 return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
5296 __extension__ extern __inline int16x4_t
5297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5298 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5300 return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
5303 __extension__ extern __inline int32x2_t
5304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5305 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5307 return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
5310 __extension__ extern __inline int64x1_t
5311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5312 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5314 return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5317 __extension__ extern __inline uint8x8_t
5318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5319 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5321 return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5324 __extension__ extern __inline uint16x4_t
5325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5326 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5328 return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5331 __extension__ extern __inline uint32x2_t
5332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5333 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5335 return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5338 __extension__ extern __inline uint64x1_t
5339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5340 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5342 return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5345 __extension__ extern __inline poly8x8_t
5346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5347 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5349 return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5352 __extension__ extern __inline poly16x4_t
5353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5354 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5356 return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5359 #pragma GCC push_options
5360 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5361 __extension__ extern __inline poly64x2_t
5362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5363 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5365 return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5368 #pragma GCC pop_options
5369 __extension__ extern __inline int8x16_t
5370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5371 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5373 return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
5376 __extension__ extern __inline int16x8_t
5377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5378 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5380 return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
5383 __extension__ extern __inline int32x4_t
5384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5385 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5387 return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
5390 __extension__ extern __inline int64x2_t
5391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5392 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5394 return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
5397 __extension__ extern __inline uint8x16_t
5398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5399 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5401 return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5404 __extension__ extern __inline uint16x8_t
5405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5406 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5408 return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5411 __extension__ extern __inline uint32x4_t
5412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5413 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5415 return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5418 __extension__ extern __inline uint64x2_t
5419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5420 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5422 return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5425 __extension__ extern __inline poly8x16_t
5426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5427 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5429 return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5432 __extension__ extern __inline poly16x8_t
5433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5434 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5436 return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5439 #pragma GCC push_options
5440 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5441 __extension__ extern __inline poly64x1_t
5442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5443 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5445 return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5448 #pragma GCC pop_options
5449 __extension__ extern __inline int8x8_t
5450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5451 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5453 return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
5456 __extension__ extern __inline int16x4_t
5457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5458 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5460 return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
5463 __extension__ extern __inline int32x2_t
5464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5465 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5467 return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
5470 __extension__ extern __inline int64x1_t
5471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5472 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5474 return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5477 __extension__ extern __inline uint8x8_t
5478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5479 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5481 return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5484 __extension__ extern __inline uint16x4_t
5485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5486 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5488 return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5491 __extension__ extern __inline uint32x2_t
5492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5493 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5495 return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5498 __extension__ extern __inline uint64x1_t
5499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5500 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5502 return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5505 __extension__ extern __inline poly8x8_t
5506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5507 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5509 return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5512 __extension__ extern __inline poly16x4_t
5513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5514 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5516 return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5519 #pragma GCC push_options
5520 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5521 __extension__ extern __inline poly64x2_t
5522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5523 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5525 return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5528 #pragma GCC pop_options
5529 __extension__ extern __inline int8x16_t
5530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5531 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5533 return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
5536 __extension__ extern __inline int16x8_t
5537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5538 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5540 return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
5543 __extension__ extern __inline int32x4_t
5544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5545 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5547 return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
5550 __extension__ extern __inline int64x2_t
5551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5552 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5554 return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
5557 __extension__ extern __inline uint8x16_t
5558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5559 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5561 return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5564 __extension__ extern __inline uint16x8_t
5565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5566 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5568 return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5571 __extension__ extern __inline uint32x4_t
5572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5573 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5575 return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5578 __extension__ extern __inline uint64x2_t
5579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5580 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5582 return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5585 __extension__ extern __inline poly8x16_t
5586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5587 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5589 return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5592 __extension__ extern __inline poly16x8_t
5593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5594 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5596 return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5599 __extension__ extern __inline int8x8_t
5600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5601 vabs_s8 (int8x8_t __a)
5603 return (int8x8_t)__builtin_neon_vabsv8qi (__a);
5606 __extension__ extern __inline int16x4_t
5607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5608 vabs_s16 (int16x4_t __a)
5610 return (int16x4_t)__builtin_neon_vabsv4hi (__a);
5613 __extension__ extern __inline int32x2_t
5614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5615 vabs_s32 (int32x2_t __a)
5617 return (int32x2_t)__builtin_neon_vabsv2si (__a);
5620 __extension__ extern __inline float32x2_t
5621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5622 vabs_f32 (float32x2_t __a)
5624 return (float32x2_t)__builtin_neon_vabsv2sf (__a);
5627 __extension__ extern __inline int8x16_t
5628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5629 vabsq_s8 (int8x16_t __a)
5631 return (int8x16_t)__builtin_neon_vabsv16qi (__a);
5634 __extension__ extern __inline int16x8_t
5635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5636 vabsq_s16 (int16x8_t __a)
5638 return (int16x8_t)__builtin_neon_vabsv8hi (__a);
5641 __extension__ extern __inline int32x4_t
5642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5643 vabsq_s32 (int32x4_t __a)
5645 return (int32x4_t)__builtin_neon_vabsv4si (__a);
5648 __extension__ extern __inline float32x4_t
5649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5650 vabsq_f32 (float32x4_t __a)
5652 return (float32x4_t)__builtin_neon_vabsv4sf (__a);
5655 __extension__ extern __inline int8x8_t
5656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5657 vqabs_s8 (int8x8_t __a)
5659 return (int8x8_t)__builtin_neon_vqabsv8qi (__a);
5662 __extension__ extern __inline int16x4_t
5663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5664 vqabs_s16 (int16x4_t __a)
5666 return (int16x4_t)__builtin_neon_vqabsv4hi (__a);
5669 __extension__ extern __inline int32x2_t
5670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5671 vqabs_s32 (int32x2_t __a)
5673 return (int32x2_t)__builtin_neon_vqabsv2si (__a);
5676 __extension__ extern __inline int8x16_t
5677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5678 vqabsq_s8 (int8x16_t __a)
5680 return (int8x16_t)__builtin_neon_vqabsv16qi (__a);
5683 __extension__ extern __inline int16x8_t
5684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5685 vqabsq_s16 (int16x8_t __a)
5687 return (int16x8_t)__builtin_neon_vqabsv8hi (__a);
5690 __extension__ extern __inline int32x4_t
5691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5692 vqabsq_s32 (int32x4_t __a)
5694 return (int32x4_t)__builtin_neon_vqabsv4si (__a);
5697 __extension__ extern __inline int8x8_t
5698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5699 vneg_s8 (int8x8_t __a)
5701 return (int8x8_t)__builtin_neon_vnegv8qi (__a);
5704 __extension__ extern __inline int16x4_t
5705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5706 vneg_s16 (int16x4_t __a)
5708 return (int16x4_t)__builtin_neon_vnegv4hi (__a);
5711 __extension__ extern __inline int32x2_t
5712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5713 vneg_s32 (int32x2_t __a)
5715 return (int32x2_t)__builtin_neon_vnegv2si (__a);
5718 __extension__ extern __inline float32x2_t
5719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5720 vneg_f32 (float32x2_t __a)
5722 return (float32x2_t)__builtin_neon_vnegv2sf (__a);
5725 __extension__ extern __inline int8x16_t
5726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5727 vnegq_s8 (int8x16_t __a)
5729 return (int8x16_t)__builtin_neon_vnegv16qi (__a);
5732 __extension__ extern __inline int16x8_t
5733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5734 vnegq_s16 (int16x8_t __a)
5736 return (int16x8_t)__builtin_neon_vnegv8hi (__a);
5739 __extension__ extern __inline int32x4_t
5740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5741 vnegq_s32 (int32x4_t __a)
5743 return (int32x4_t)__builtin_neon_vnegv4si (__a);
5746 __extension__ extern __inline float32x4_t
5747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5748 vnegq_f32 (float32x4_t __a)
5750 return (float32x4_t)__builtin_neon_vnegv4sf (__a);
5753 __extension__ extern __inline int8x8_t
5754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5755 vqneg_s8 (int8x8_t __a)
5757 return (int8x8_t)__builtin_neon_vqnegv8qi (__a);
5760 __extension__ extern __inline int16x4_t
5761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5762 vqneg_s16 (int16x4_t __a)
5764 return (int16x4_t)__builtin_neon_vqnegv4hi (__a);
5767 __extension__ extern __inline int32x2_t
5768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5769 vqneg_s32 (int32x2_t __a)
5771 return (int32x2_t)__builtin_neon_vqnegv2si (__a);
5774 __extension__ extern __inline int8x16_t
5775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5776 vqnegq_s8 (int8x16_t __a)
5778 return (int8x16_t)__builtin_neon_vqnegv16qi (__a);
5781 __extension__ extern __inline int16x8_t
5782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5783 vqnegq_s16 (int16x8_t __a)
5785 return (int16x8_t)__builtin_neon_vqnegv8hi (__a);
5788 __extension__ extern __inline int32x4_t
5789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5790 vqnegq_s32 (int32x4_t __a)
5792 return (int32x4_t)__builtin_neon_vqnegv4si (__a);
5795 __extension__ extern __inline int8x8_t
5796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5797 vmvn_s8 (int8x8_t __a)
5799 return (int8x8_t)__builtin_neon_vmvnv8qi (__a);
5802 __extension__ extern __inline int16x4_t
5803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5804 vmvn_s16 (int16x4_t __a)
5806 return (int16x4_t)__builtin_neon_vmvnv4hi (__a);
5809 __extension__ extern __inline int32x2_t
5810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5811 vmvn_s32 (int32x2_t __a)
5813 return (int32x2_t)__builtin_neon_vmvnv2si (__a);
5816 __extension__ extern __inline uint8x8_t
5817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5818 vmvn_u8 (uint8x8_t __a)
5820 return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
5823 __extension__ extern __inline uint16x4_t
5824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5825 vmvn_u16 (uint16x4_t __a)
5827 return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a);
5830 __extension__ extern __inline uint32x2_t
5831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5832 vmvn_u32 (uint32x2_t __a)
5834 return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a);
5837 __extension__ extern __inline poly8x8_t
5838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5839 vmvn_p8 (poly8x8_t __a)
5841 return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
5844 __extension__ extern __inline int8x16_t
5845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5846 vmvnq_s8 (int8x16_t __a)
5848 return (int8x16_t)__builtin_neon_vmvnv16qi (__a);
5851 __extension__ extern __inline int16x8_t
5852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5853 vmvnq_s16 (int16x8_t __a)
5855 return (int16x8_t)__builtin_neon_vmvnv8hi (__a);
5858 __extension__ extern __inline int32x4_t
5859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5860 vmvnq_s32 (int32x4_t __a)
5862 return (int32x4_t)__builtin_neon_vmvnv4si (__a);
5865 __extension__ extern __inline uint8x16_t
5866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5867 vmvnq_u8 (uint8x16_t __a)
5869 return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
5872 __extension__ extern __inline uint16x8_t
5873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5874 vmvnq_u16 (uint16x8_t __a)
5876 return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a);
5879 __extension__ extern __inline uint32x4_t
5880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5881 vmvnq_u32 (uint32x4_t __a)
5883 return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a);
5886 __extension__ extern __inline poly8x16_t
5887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5888 vmvnq_p8 (poly8x16_t __a)
5890 return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
5893 __extension__ extern __inline int8x8_t
5894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5895 vcls_s8 (int8x8_t __a)
5897 return (int8x8_t)__builtin_neon_vclsv8qi (__a);
5900 __extension__ extern __inline int16x4_t
5901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5902 vcls_s16 (int16x4_t __a)
5904 return (int16x4_t)__builtin_neon_vclsv4hi (__a);
5907 __extension__ extern __inline int32x2_t
5908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5909 vcls_s32 (int32x2_t __a)
5911 return (int32x2_t)__builtin_neon_vclsv2si (__a);
5914 __extension__ extern __inline int8x16_t
5915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5916 vclsq_s8 (int8x16_t __a)
5918 return (int8x16_t)__builtin_neon_vclsv16qi (__a);
5921 __extension__ extern __inline int16x8_t
5922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5923 vclsq_s16 (int16x8_t __a)
5925 return (int16x8_t)__builtin_neon_vclsv8hi (__a);
5928 __extension__ extern __inline int32x4_t
5929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5930 vclsq_s32 (int32x4_t __a)
5932 return (int32x4_t)__builtin_neon_vclsv4si (__a);
5935 __extension__ extern __inline int8x8_t
5936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5937 vclz_s8 (int8x8_t __a)
5939 return (int8x8_t)__builtin_neon_vclzv8qi (__a);
5942 __extension__ extern __inline int16x4_t
5943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5944 vclz_s16 (int16x4_t __a)
5946 return (int16x4_t)__builtin_neon_vclzv4hi (__a);
5949 __extension__ extern __inline int32x2_t
5950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5951 vclz_s32 (int32x2_t __a)
5953 return (int32x2_t)__builtin_neon_vclzv2si (__a);
5956 __extension__ extern __inline uint8x8_t
5957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5958 vclz_u8 (uint8x8_t __a)
5960 return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a);
5963 __extension__ extern __inline uint16x4_t
5964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5965 vclz_u16 (uint16x4_t __a)
5967 return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a);
5970 __extension__ extern __inline uint32x2_t
5971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5972 vclz_u32 (uint32x2_t __a)
5974 return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a);
5977 __extension__ extern __inline int8x16_t
5978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5979 vclzq_s8 (int8x16_t __a)
5981 return (int8x16_t)__builtin_neon_vclzv16qi (__a);
5984 __extension__ extern __inline int16x8_t
5985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5986 vclzq_s16 (int16x8_t __a)
5988 return (int16x8_t)__builtin_neon_vclzv8hi (__a);
5991 __extension__ extern __inline int32x4_t
5992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5993 vclzq_s32 (int32x4_t __a)
5995 return (int32x4_t)__builtin_neon_vclzv4si (__a);
5998 __extension__ extern __inline uint8x16_t
5999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6000 vclzq_u8 (uint8x16_t __a)
6002 return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a);
6005 __extension__ extern __inline uint16x8_t
6006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6007 vclzq_u16 (uint16x8_t __a)
6009 return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a);
6012 __extension__ extern __inline uint32x4_t
6013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6014 vclzq_u32 (uint32x4_t __a)
6016 return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a);
6019 __extension__ extern __inline int8x8_t
6020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6021 vcnt_s8 (int8x8_t __a)
6023 return (int8x8_t)__builtin_neon_vcntv8qi (__a);
6026 __extension__ extern __inline uint8x8_t
6027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6028 vcnt_u8 (uint8x8_t __a)
6030 return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6033 __extension__ extern __inline poly8x8_t
6034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6035 vcnt_p8 (poly8x8_t __a)
6037 return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6040 __extension__ extern __inline int8x16_t
6041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6042 vcntq_s8 (int8x16_t __a)
6044 return (int8x16_t)__builtin_neon_vcntv16qi (__a);
6047 __extension__ extern __inline uint8x16_t
6048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6049 vcntq_u8 (uint8x16_t __a)
6051 return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6054 __extension__ extern __inline poly8x16_t
6055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6056 vcntq_p8 (poly8x16_t __a)
6058 return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6061 __extension__ extern __inline float32x2_t
6062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6063 vrecpe_f32 (float32x2_t __a)
6065 return (float32x2_t)__builtin_neon_vrecpev2sf (__a);
6068 __extension__ extern __inline uint32x2_t
6069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6070 vrecpe_u32 (uint32x2_t __a)
6072 return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a);
6075 __extension__ extern __inline float32x4_t
6076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6077 vrecpeq_f32 (float32x4_t __a)
6079 return (float32x4_t)__builtin_neon_vrecpev4sf (__a);
6082 __extension__ extern __inline uint32x4_t
6083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6084 vrecpeq_u32 (uint32x4_t __a)
6086 return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a);
6089 __extension__ extern __inline float32x2_t
6090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6091 vrsqrte_f32 (float32x2_t __a)
6093 return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a);
6096 __extension__ extern __inline uint32x2_t
6097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6098 vrsqrte_u32 (uint32x2_t __a)
6100 return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a);
6103 __extension__ extern __inline float32x4_t
6104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6105 vrsqrteq_f32 (float32x4_t __a)
6107 return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a);
6110 __extension__ extern __inline uint32x4_t
6111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6112 vrsqrteq_u32 (uint32x4_t __a)
6114 return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a);
6117 __extension__ extern __inline int8_t
6118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6119 vget_lane_s8 (int8x8_t __a, const int __b)
6121 return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b);
6124 __extension__ extern __inline int16_t
6125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6126 vget_lane_s16 (int16x4_t __a, const int __b)
6128 return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b);
6131 __extension__ extern __inline int32_t
6132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6133 vget_lane_s32 (int32x2_t __a, const int __b)
6135 return (int32_t)__builtin_neon_vget_lanev2si (__a, __b);
6138 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6139 /* Functions cannot accept or return __FP16 types. Even if the function
6140 were marked always-inline so there were no call sites, the declaration
6141 would nonetheless raise an error. Hence, we must use a macro instead. */
6143 /* For big-endian, GCC's vector indices are reversed within each 64
6144 bits compared to the architectural lane indices used by Neon
6145 intrinsics. */
6146 #ifdef __ARM_BIG_ENDIAN
6147 #define __ARM_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
6148 #define __arm_lane(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec) - 1))
6149 #define __arm_laneq(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec)/2 - 1))
6150 #else
6151 #define __arm_lane(__vec, __idx) __idx
6152 #define __arm_laneq(__vec, __idx) __idx
6153 #endif
6155 #define vget_lane_f16(__v, __idx) \
6156 __extension__ \
6157 ({ \
6158 float16x4_t __vec = (__v); \
6159 __builtin_arm_lane_check (4, __idx); \
6160 float16_t __res = __vec[__arm_lane(__vec, __idx)]; \
6161 __res; \
6163 #endif
6165 __extension__ extern __inline float32_t
6166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6167 vget_lane_f32 (float32x2_t __a, const int __b)
6169 return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b);
6172 __extension__ extern __inline uint8_t
6173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6174 vget_lane_u8 (uint8x8_t __a, const int __b)
6176 return (uint8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6179 __extension__ extern __inline uint16_t
6180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6181 vget_lane_u16 (uint16x4_t __a, const int __b)
6183 return (uint16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6186 __extension__ extern __inline uint32_t
6187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6188 vget_lane_u32 (uint32x2_t __a, const int __b)
6190 return (uint32_t)__builtin_neon_vget_laneuv2si ((int32x2_t) __a, __b);
6193 __extension__ extern __inline poly8_t
6194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6195 vget_lane_p8 (poly8x8_t __a, const int __b)
6197 return (poly8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6200 __extension__ extern __inline poly16_t
6201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6202 vget_lane_p16 (poly16x4_t __a, const int __b)
6204 return (poly16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6207 __extension__ extern __inline int64_t
6208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6209 vget_lane_s64 (int64x1_t __a, const int __b)
6211 return (int64_t)__builtin_neon_vget_lanedi (__a, __b);
6214 #pragma GCC push_options
6215 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6216 __extension__ extern __inline poly64_t
6217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6218 vget_lane_p64 (poly64x1_t __a, const int __b)
6220 return (poly64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6223 #pragma GCC pop_options
6224 __extension__ extern __inline uint64_t
6225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6226 vget_lane_u64 (uint64x1_t __a, const int __b)
6228 return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6231 __extension__ extern __inline int8_t
6232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6233 vgetq_lane_s8 (int8x16_t __a, const int __b)
6235 return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b);
6238 __extension__ extern __inline int16_t
6239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6240 vgetq_lane_s16 (int16x8_t __a, const int __b)
6242 return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b);
6245 __extension__ extern __inline int32_t
6246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6247 vgetq_lane_s32 (int32x4_t __a, const int __b)
6249 return (int32_t)__builtin_neon_vget_lanev4si (__a, __b);
6252 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6253 #define vgetq_lane_f16(__v, __idx) \
6254 __extension__ \
6255 ({ \
6256 float16x8_t __vec = (__v); \
6257 __builtin_arm_lane_check (8, __idx); \
6258 float16_t __res = __vec[__arm_laneq(__vec, __idx)]; \
6259 __res; \
6261 #endif
6263 __extension__ extern __inline float32_t
6264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6265 vgetq_lane_f32 (float32x4_t __a, const int __b)
6267 return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b);
6270 __extension__ extern __inline uint8_t
6271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6272 vgetq_lane_u8 (uint8x16_t __a, const int __b)
6274 return (uint8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6277 __extension__ extern __inline uint16_t
6278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6279 vgetq_lane_u16 (uint16x8_t __a, const int __b)
6281 return (uint16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6284 __extension__ extern __inline uint32_t
6285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6286 vgetq_lane_u32 (uint32x4_t __a, const int __b)
6288 return (uint32_t)__builtin_neon_vget_laneuv4si ((int32x4_t) __a, __b);
6291 __extension__ extern __inline poly8_t
6292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6293 vgetq_lane_p8 (poly8x16_t __a, const int __b)
6295 return (poly8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6298 __extension__ extern __inline poly16_t
6299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6300 vgetq_lane_p16 (poly16x8_t __a, const int __b)
6302 return (poly16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6305 __extension__ extern __inline int64_t
6306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6307 vgetq_lane_s64 (int64x2_t __a, const int __b)
6309 return (int64_t)__builtin_neon_vget_lanev2di (__a, __b);
6312 #pragma GCC push_options
6313 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6314 __extension__ extern __inline poly64_t
6315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6316 vgetq_lane_p64 (poly64x2_t __a, const int __b)
6318 return (poly64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6321 #pragma GCC pop_options
6322 __extension__ extern __inline uint64_t
6323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6324 vgetq_lane_u64 (uint64x2_t __a, const int __b)
6326 return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6329 __extension__ extern __inline int8x8_t
6330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6331 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
6333 return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
6336 __extension__ extern __inline int16x4_t
6337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6338 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
6340 return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
6343 __extension__ extern __inline int32x2_t
6344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6345 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
6347 return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
6350 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6351 #define vset_lane_f16(__e, __v, __idx) \
6352 __extension__ \
6353 ({ \
6354 float16_t __elem = (__e); \
6355 float16x4_t __vec = (__v); \
6356 __builtin_arm_lane_check (4, __idx); \
6357 __vec[__arm_lane (__vec, __idx)] = __elem; \
6358 __vec; \
6360 #endif
6362 __extension__ extern __inline float32x2_t
6363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6364 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
6366 return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
6369 __extension__ extern __inline uint8x8_t
6370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6371 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
6373 return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6376 __extension__ extern __inline uint16x4_t
6377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6378 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
6380 return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6383 __extension__ extern __inline uint32x2_t
6384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6385 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
6387 return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
6390 __extension__ extern __inline poly8x8_t
6391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6392 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
6394 return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6397 __extension__ extern __inline poly16x4_t
6398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6399 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
6401 return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6404 __extension__ extern __inline int64x1_t
6405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6406 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
6408 return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
6411 __extension__ extern __inline uint64x1_t
6412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6413 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
6415 return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6418 #pragma GCC push_options
6419 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6420 __extension__ extern __inline poly64x1_t
6421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6422 vset_lane_p64 (poly64_t __a, poly64x1_t __b, const int __c)
6424 return (poly64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6427 #pragma GCC pop_options
6428 __extension__ extern __inline int8x16_t
6429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6430 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
6432 return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
6435 __extension__ extern __inline int16x8_t
6436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6437 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
6439 return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
6442 __extension__ extern __inline int32x4_t
6443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6444 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
6446 return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
6449 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6450 #define vsetq_lane_f16(__e, __v, __idx) \
6451 __extension__ \
6452 ({ \
6453 float16_t __elem = (__e); \
6454 float16x8_t __vec = (__v); \
6455 __builtin_arm_lane_check (8, __idx); \
6456 __vec[__arm_laneq (__vec, __idx)] = __elem; \
6457 __vec; \
6459 #endif
6461 __extension__ extern __inline float32x4_t
6462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6463 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
6465 return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
6468 __extension__ extern __inline uint8x16_t
6469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6470 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
6472 return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6475 __extension__ extern __inline uint16x8_t
6476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6477 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
6479 return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6482 __extension__ extern __inline uint32x4_t
6483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6484 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
6486 return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
6489 __extension__ extern __inline poly8x16_t
6490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6491 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
6493 return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6496 __extension__ extern __inline poly16x8_t
6497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6498 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
6500 return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6503 __extension__ extern __inline int64x2_t
6504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6505 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
6507 return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
6510 __extension__ extern __inline uint64x2_t
6511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6512 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
6514 return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6517 #pragma GCC push_options
6518 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6519 __extension__ extern __inline poly64x2_t
6520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6521 vsetq_lane_p64 (poly64_t __a, poly64x2_t __b, const int __c)
6523 return (poly64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6526 __extension__ extern __inline poly64x1_t
6527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6528 vcreate_p64 (uint64_t __a)
6530 return (poly64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6533 #pragma GCC pop_options
6534 __extension__ extern __inline int8x8_t
6535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6536 vcreate_s8 (uint64_t __a)
6538 return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6541 __extension__ extern __inline int16x4_t
6542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6543 vcreate_s16 (uint64_t __a)
6545 return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6548 __extension__ extern __inline int32x2_t
6549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6550 vcreate_s32 (uint64_t __a)
6552 return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
6555 __extension__ extern __inline int64x1_t
6556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6557 vcreate_s64 (uint64_t __a)
6559 return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6562 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6563 __extension__ extern __inline float16x4_t
6564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6565 vcreate_f16 (uint64_t __a)
6567 return (float16x4_t) __a;
6569 #endif
6571 __extension__ extern __inline float32x2_t
6572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6573 vcreate_f32 (uint64_t __a)
6575 return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a);
6578 __extension__ extern __inline uint8x8_t
6579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6580 vcreate_u8 (uint64_t __a)
6582 return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6585 __extension__ extern __inline uint16x4_t
6586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6587 vcreate_u16 (uint64_t __a)
6589 return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6592 __extension__ extern __inline uint32x2_t
6593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6594 vcreate_u32 (uint64_t __a)
6596 return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
6599 __extension__ extern __inline uint64x1_t
6600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6601 vcreate_u64 (uint64_t __a)
6603 return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
6606 __extension__ extern __inline poly8x8_t
6607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6608 vcreate_p8 (uint64_t __a)
6610 return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
6613 __extension__ extern __inline poly16x4_t
6614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6615 vcreate_p16 (uint64_t __a)
6617 return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
6620 __extension__ extern __inline int8x8_t
6621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6622 vdup_n_s8 (int8_t __a)
6624 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6627 __extension__ extern __inline int16x4_t
6628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6629 vdup_n_s16 (int16_t __a)
6631 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6634 __extension__ extern __inline int32x2_t
6635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6636 vdup_n_s32 (int32_t __a)
6638 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6641 __extension__ extern __inline float32x2_t
6642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6643 vdup_n_f32 (float32_t __a)
6645 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6648 __extension__ extern __inline uint8x8_t
6649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6650 vdup_n_u8 (uint8_t __a)
6652 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6655 __extension__ extern __inline uint16x4_t
6656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6657 vdup_n_u16 (uint16_t __a)
6659 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6662 __extension__ extern __inline uint32x2_t
6663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6664 vdup_n_u32 (uint32_t __a)
6666 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6669 __extension__ extern __inline poly8x8_t
6670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6671 vdup_n_p8 (poly8_t __a)
6673 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6676 __extension__ extern __inline poly16x4_t
6677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6678 vdup_n_p16 (poly16_t __a)
6680 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6683 #pragma GCC push_options
6684 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6685 __extension__ extern __inline poly64x1_t
6686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6687 vdup_n_p64 (poly64_t __a)
6689 return (poly64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6692 #pragma GCC pop_options
6693 __extension__ extern __inline int64x1_t
6694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6695 vdup_n_s64 (int64_t __a)
6697 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6700 __extension__ extern __inline uint64x1_t
6701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6702 vdup_n_u64 (uint64_t __a)
6704 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6707 #pragma GCC push_options
6708 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6709 __extension__ extern __inline poly64x2_t
6710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6711 vdupq_n_p64 (poly64_t __a)
6713 return (poly64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6716 #pragma GCC pop_options
6717 __extension__ extern __inline int8x16_t
6718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6719 vdupq_n_s8 (int8_t __a)
6721 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6724 __extension__ extern __inline int16x8_t
6725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6726 vdupq_n_s16 (int16_t __a)
6728 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6731 __extension__ extern __inline int32x4_t
6732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6733 vdupq_n_s32 (int32_t __a)
6735 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6738 __extension__ extern __inline float32x4_t
6739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6740 vdupq_n_f32 (float32_t __a)
6742 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6745 __extension__ extern __inline uint8x16_t
6746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6747 vdupq_n_u8 (uint8_t __a)
6749 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6752 __extension__ extern __inline uint16x8_t
6753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6754 vdupq_n_u16 (uint16_t __a)
6756 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6759 __extension__ extern __inline uint32x4_t
6760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6761 vdupq_n_u32 (uint32_t __a)
6763 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6766 __extension__ extern __inline poly8x16_t
6767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6768 vdupq_n_p8 (poly8_t __a)
6770 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6773 __extension__ extern __inline poly16x8_t
6774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6775 vdupq_n_p16 (poly16_t __a)
6777 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6780 __extension__ extern __inline int64x2_t
6781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6782 vdupq_n_s64 (int64_t __a)
6784 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6787 __extension__ extern __inline uint64x2_t
6788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6789 vdupq_n_u64 (uint64_t __a)
6791 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6794 __extension__ extern __inline int8x8_t
6795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6796 vmov_n_s8 (int8_t __a)
6798 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6801 __extension__ extern __inline int16x4_t
6802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6803 vmov_n_s16 (int16_t __a)
6805 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6808 __extension__ extern __inline int32x2_t
6809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6810 vmov_n_s32 (int32_t __a)
6812 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6815 __extension__ extern __inline float32x2_t
6816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6817 vmov_n_f32 (float32_t __a)
6819 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6822 __extension__ extern __inline uint8x8_t
6823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6824 vmov_n_u8 (uint8_t __a)
6826 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6829 __extension__ extern __inline uint16x4_t
6830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6831 vmov_n_u16 (uint16_t __a)
6833 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6836 __extension__ extern __inline uint32x2_t
6837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6838 vmov_n_u32 (uint32_t __a)
6840 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
6843 __extension__ extern __inline poly8x8_t
6844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6845 vmov_n_p8 (poly8_t __a)
6847 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
6850 __extension__ extern __inline poly16x4_t
6851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6852 vmov_n_p16 (poly16_t __a)
6854 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
6857 __extension__ extern __inline int64x1_t
6858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6859 vmov_n_s64 (int64_t __a)
6861 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6864 __extension__ extern __inline uint64x1_t
6865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6866 vmov_n_u64 (uint64_t __a)
6868 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
6871 __extension__ extern __inline int8x16_t
6872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6873 vmovq_n_s8 (int8_t __a)
6875 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6878 __extension__ extern __inline int16x8_t
6879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6880 vmovq_n_s16 (int16_t __a)
6882 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6885 __extension__ extern __inline int32x4_t
6886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6887 vmovq_n_s32 (int32_t __a)
6889 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6892 __extension__ extern __inline float32x4_t
6893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6894 vmovq_n_f32 (float32_t __a)
6896 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6899 __extension__ extern __inline uint8x16_t
6900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6901 vmovq_n_u8 (uint8_t __a)
6903 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6906 __extension__ extern __inline uint16x8_t
6907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6908 vmovq_n_u16 (uint16_t __a)
6910 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6913 __extension__ extern __inline uint32x4_t
6914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6915 vmovq_n_u32 (uint32_t __a)
6917 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
6920 __extension__ extern __inline poly8x16_t
6921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6922 vmovq_n_p8 (poly8_t __a)
6924 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
6927 __extension__ extern __inline poly16x8_t
6928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6929 vmovq_n_p16 (poly16_t __a)
6931 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
6934 __extension__ extern __inline int64x2_t
6935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6936 vmovq_n_s64 (int64_t __a)
6938 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6941 __extension__ extern __inline uint64x2_t
6942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6943 vmovq_n_u64 (uint64_t __a)
6945 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
6948 __extension__ extern __inline int8x8_t
6949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6950 vdup_lane_s8 (int8x8_t __a, const int __b)
6952 return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
6955 __extension__ extern __inline int16x4_t
6956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6957 vdup_lane_s16 (int16x4_t __a, const int __b)
6959 return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
6962 __extension__ extern __inline int32x2_t
6963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6964 vdup_lane_s32 (int32x2_t __a, const int __b)
6966 return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
6969 __extension__ extern __inline float32x2_t
6970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6971 vdup_lane_f32 (float32x2_t __a, const int __b)
6973 return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
6976 __extension__ extern __inline uint8x8_t
6977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6978 vdup_lane_u8 (uint8x8_t __a, const int __b)
6980 return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
6983 __extension__ extern __inline uint16x4_t
6984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6985 vdup_lane_u16 (uint16x4_t __a, const int __b)
6987 return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
6990 __extension__ extern __inline uint32x2_t
6991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6992 vdup_lane_u32 (uint32x2_t __a, const int __b)
6994 return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
6997 __extension__ extern __inline poly8x8_t
6998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6999 vdup_lane_p8 (poly8x8_t __a, const int __b)
7001 return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
7004 __extension__ extern __inline poly16x4_t
7005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7006 vdup_lane_p16 (poly16x4_t __a, const int __b)
7008 return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
7011 #pragma GCC push_options
7012 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7013 __extension__ extern __inline poly64x1_t
7014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7015 vdup_lane_p64 (poly64x1_t __a, const int __b)
7017 return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7020 #pragma GCC pop_options
7021 __extension__ extern __inline int64x1_t
7022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7023 vdup_lane_s64 (int64x1_t __a, const int __b)
7025 return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7028 __extension__ extern __inline uint64x1_t
7029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7030 vdup_lane_u64 (uint64x1_t __a, const int __b)
7032 return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
7035 __extension__ extern __inline int8x16_t
7036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7037 vdupq_lane_s8 (int8x8_t __a, const int __b)
7039 return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
7042 __extension__ extern __inline int16x8_t
7043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7044 vdupq_lane_s16 (int16x4_t __a, const int __b)
7046 return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
7049 __extension__ extern __inline int32x4_t
7050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7051 vdupq_lane_s32 (int32x2_t __a, const int __b)
7053 return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
7056 __extension__ extern __inline float32x4_t
7057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7058 vdupq_lane_f32 (float32x2_t __a, const int __b)
7060 return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
7063 __extension__ extern __inline uint8x16_t
7064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7065 vdupq_lane_u8 (uint8x8_t __a, const int __b)
7067 return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7070 __extension__ extern __inline uint16x8_t
7071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7072 vdupq_lane_u16 (uint16x4_t __a, const int __b)
7074 return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7077 __extension__ extern __inline uint32x4_t
7078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7079 vdupq_lane_u32 (uint32x2_t __a, const int __b)
7081 return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
7084 __extension__ extern __inline poly8x16_t
7085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7086 vdupq_lane_p8 (poly8x8_t __a, const int __b)
7088 return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7091 __extension__ extern __inline poly16x8_t
7092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7093 vdupq_lane_p16 (poly16x4_t __a, const int __b)
7095 return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7098 #pragma GCC push_options
7099 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7100 __extension__ extern __inline poly64x2_t
7101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7102 vdupq_lane_p64 (poly64x1_t __a, const int __b)
7104 return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7107 #pragma GCC pop_options
7108 __extension__ extern __inline int64x2_t
7109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7110 vdupq_lane_s64 (int64x1_t __a, const int __b)
7112 return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7115 __extension__ extern __inline uint64x2_t
7116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7117 vdupq_lane_u64 (uint64x1_t __a, const int __b)
7119 return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
7122 #pragma GCC push_options
7123 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7124 __extension__ extern __inline poly64x2_t
7125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7126 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
7128 return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b);
7131 #pragma GCC pop_options
7132 __extension__ extern __inline int8x16_t
7133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7134 vcombine_s8 (int8x8_t __a, int8x8_t __b)
7136 return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
7139 __extension__ extern __inline int16x8_t
7140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7141 vcombine_s16 (int16x4_t __a, int16x4_t __b)
7143 return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
7146 __extension__ extern __inline int32x4_t
7147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7148 vcombine_s32 (int32x2_t __a, int32x2_t __b)
7150 return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
7153 __extension__ extern __inline int64x2_t
7154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7155 vcombine_s64 (int64x1_t __a, int64x1_t __b)
7157 return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
7160 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7161 __extension__ extern __inline float16x8_t
7162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7163 vcombine_f16 (float16x4_t __a, float16x4_t __b)
7165 return __builtin_neon_vcombinev4hf (__a, __b);
7167 #endif
7169 __extension__ extern __inline float32x4_t
7170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7171 vcombine_f32 (float32x2_t __a, float32x2_t __b)
7173 return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
7176 __extension__ extern __inline uint8x16_t
7177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7178 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
7180 return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7183 __extension__ extern __inline uint16x8_t
7184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7185 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
7187 return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7190 __extension__ extern __inline uint32x4_t
7191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7192 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
7194 return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
7197 __extension__ extern __inline uint64x2_t
7198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7199 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
7201 return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
7204 __extension__ extern __inline poly8x16_t
7205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7206 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
7208 return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7211 __extension__ extern __inline poly16x8_t
7212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7213 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
7215 return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7218 #pragma GCC push_options
7219 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7220 __extension__ extern __inline poly64x1_t
7221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7222 vget_high_p64 (poly64x2_t __a)
7224 return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7227 #pragma GCC pop_options
7228 __extension__ extern __inline int8x8_t
7229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7230 vget_high_s8 (int8x16_t __a)
7232 return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
7235 __extension__ extern __inline int16x4_t
7236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7237 vget_high_s16 (int16x8_t __a)
7239 return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
7242 __extension__ extern __inline int32x2_t
7243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7244 vget_high_s32 (int32x4_t __a)
7246 return (int32x2_t)__builtin_neon_vget_highv4si (__a);
7249 __extension__ extern __inline int64x1_t
7250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7251 vget_high_s64 (int64x2_t __a)
7253 return (int64x1_t)__builtin_neon_vget_highv2di (__a);
7256 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7257 __extension__ extern __inline float16x4_t
7258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7259 vget_high_f16 (float16x8_t __a)
7261 return __builtin_neon_vget_highv8hf (__a);
7263 #endif
7265 __extension__ extern __inline float32x2_t
7266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7267 vget_high_f32 (float32x4_t __a)
7269 return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
7272 __extension__ extern __inline uint8x8_t
7273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7274 vget_high_u8 (uint8x16_t __a)
7276 return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7279 __extension__ extern __inline uint16x4_t
7280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7281 vget_high_u16 (uint16x8_t __a)
7283 return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7286 __extension__ extern __inline uint32x2_t
7287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7288 vget_high_u32 (uint32x4_t __a)
7290 return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
7293 __extension__ extern __inline uint64x1_t
7294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7295 vget_high_u64 (uint64x2_t __a)
7297 return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7300 __extension__ extern __inline poly8x8_t
7301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7302 vget_high_p8 (poly8x16_t __a)
7304 return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7307 __extension__ extern __inline poly16x4_t
7308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7309 vget_high_p16 (poly16x8_t __a)
7311 return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7314 __extension__ extern __inline int8x8_t
7315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7316 vget_low_s8 (int8x16_t __a)
7318 return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
7321 __extension__ extern __inline int16x4_t
7322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7323 vget_low_s16 (int16x8_t __a)
7325 return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
7328 __extension__ extern __inline int32x2_t
7329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7330 vget_low_s32 (int32x4_t __a)
7332 return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
7335 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7336 __extension__ extern __inline float16x4_t
7337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7338 vget_low_f16 (float16x8_t __a)
7340 return __builtin_neon_vget_lowv8hf (__a);
7342 #endif
7344 __extension__ extern __inline float32x2_t
7345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7346 vget_low_f32 (float32x4_t __a)
7348 return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
7351 __extension__ extern __inline uint8x8_t
7352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7353 vget_low_u8 (uint8x16_t __a)
7355 return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7358 __extension__ extern __inline uint16x4_t
7359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7360 vget_low_u16 (uint16x8_t __a)
7362 return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7365 __extension__ extern __inline uint32x2_t
7366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7367 vget_low_u32 (uint32x4_t __a)
7369 return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
7372 __extension__ extern __inline poly8x8_t
7373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7374 vget_low_p8 (poly8x16_t __a)
7376 return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7379 __extension__ extern __inline poly16x4_t
7380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7381 vget_low_p16 (poly16x8_t __a)
7383 return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7386 #pragma GCC push_options
7387 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7388 __extension__ extern __inline poly64x1_t
7389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7390 vget_low_p64 (poly64x2_t __a)
7392 return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7395 #pragma GCC pop_options
7396 __extension__ extern __inline int64x1_t
7397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7398 vget_low_s64 (int64x2_t __a)
7400 return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
7403 __extension__ extern __inline uint64x1_t
7404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7405 vget_low_u64 (uint64x2_t __a)
7407 return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7410 __extension__ extern __inline int32x2_t
7411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7412 vcvt_s32_f32 (float32x2_t __a)
7414 return (int32x2_t)__builtin_neon_vcvtsv2sf (__a);
7417 __extension__ extern __inline float32x2_t
7418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7419 vcvt_f32_s32 (int32x2_t __a)
7421 return (float32x2_t)__builtin_neon_vcvtsv2si (__a);
7424 __extension__ extern __inline float32x2_t
7425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7426 vcvt_f32_u32 (uint32x2_t __a)
7428 return (float32x2_t)__builtin_neon_vcvtuv2si ((int32x2_t) __a);
7431 __extension__ extern __inline uint32x2_t
7432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7433 vcvt_u32_f32 (float32x2_t __a)
7435 return (uint32x2_t)__builtin_neon_vcvtuv2sf (__a);
7438 __extension__ extern __inline int32x4_t
7439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7440 vcvtq_s32_f32 (float32x4_t __a)
7442 return (int32x4_t)__builtin_neon_vcvtsv4sf (__a);
7445 __extension__ extern __inline float32x4_t
7446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7447 vcvtq_f32_s32 (int32x4_t __a)
7449 return (float32x4_t)__builtin_neon_vcvtsv4si (__a);
7452 __extension__ extern __inline float32x4_t
7453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7454 vcvtq_f32_u32 (uint32x4_t __a)
7456 return (float32x4_t)__builtin_neon_vcvtuv4si ((int32x4_t) __a);
7459 __extension__ extern __inline uint32x4_t
7460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7461 vcvtq_u32_f32 (float32x4_t __a)
7463 return (uint32x4_t)__builtin_neon_vcvtuv4sf (__a);
7466 #pragma GCC push_options
7467 #pragma GCC target ("fpu=neon-fp16")
7468 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7469 __extension__ extern __inline float16x4_t
7470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7471 vcvt_f16_f32 (float32x4_t __a)
7473 return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a);
7475 #endif
7477 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7478 __extension__ extern __inline float32x4_t
7479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7480 vcvt_f32_f16 (float16x4_t __a)
7482 return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a);
7484 #endif
7485 #pragma GCC pop_options
7487 __extension__ extern __inline int32x2_t
7488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7489 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
7491 return (int32x2_t)__builtin_neon_vcvts_nv2sf (__a, __b);
7494 __extension__ extern __inline float32x2_t
7495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7496 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
7498 return (float32x2_t)__builtin_neon_vcvts_nv2si (__a, __b);
7501 __extension__ extern __inline float32x2_t
7502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7503 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
7505 return (float32x2_t)__builtin_neon_vcvtu_nv2si ((int32x2_t) __a, __b);
7508 __extension__ extern __inline uint32x2_t
7509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7510 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
7512 return (uint32x2_t)__builtin_neon_vcvtu_nv2sf (__a, __b);
7515 __extension__ extern __inline int32x4_t
7516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7517 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
7519 return (int32x4_t)__builtin_neon_vcvts_nv4sf (__a, __b);
7522 __extension__ extern __inline float32x4_t
7523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7524 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
7526 return (float32x4_t)__builtin_neon_vcvts_nv4si (__a, __b);
7529 __extension__ extern __inline float32x4_t
7530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7531 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
7533 return (float32x4_t)__builtin_neon_vcvtu_nv4si ((int32x4_t) __a, __b);
7536 __extension__ extern __inline uint32x4_t
7537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7538 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
7540 return (uint32x4_t)__builtin_neon_vcvtu_nv4sf (__a, __b);
7543 __extension__ extern __inline int8x8_t
7544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7545 vmovn_s16 (int16x8_t __a)
7547 return (int8x8_t)__builtin_neon_vmovnv8hi (__a);
7550 __extension__ extern __inline int16x4_t
7551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7552 vmovn_s32 (int32x4_t __a)
7554 return (int16x4_t)__builtin_neon_vmovnv4si (__a);
7557 __extension__ extern __inline int32x2_t
7558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7559 vmovn_s64 (int64x2_t __a)
7561 return (int32x2_t)__builtin_neon_vmovnv2di (__a);
7564 __extension__ extern __inline uint8x8_t
7565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7566 vmovn_u16 (uint16x8_t __a)
7568 return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a);
7571 __extension__ extern __inline uint16x4_t
7572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7573 vmovn_u32 (uint32x4_t __a)
7575 return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a);
7578 __extension__ extern __inline uint32x2_t
7579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7580 vmovn_u64 (uint64x2_t __a)
7582 return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a);
7585 __extension__ extern __inline int8x8_t
7586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7587 vqmovn_s16 (int16x8_t __a)
7589 return (int8x8_t)__builtin_neon_vqmovnsv8hi (__a);
7592 __extension__ extern __inline int16x4_t
7593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7594 vqmovn_s32 (int32x4_t __a)
7596 return (int16x4_t)__builtin_neon_vqmovnsv4si (__a);
7599 __extension__ extern __inline int32x2_t
7600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7601 vqmovn_s64 (int64x2_t __a)
7603 return (int32x2_t)__builtin_neon_vqmovnsv2di (__a);
7606 __extension__ extern __inline uint8x8_t
7607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7608 vqmovn_u16 (uint16x8_t __a)
7610 return (uint8x8_t)__builtin_neon_vqmovnuv8hi ((int16x8_t) __a);
7613 __extension__ extern __inline uint16x4_t
7614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7615 vqmovn_u32 (uint32x4_t __a)
7617 return (uint16x4_t)__builtin_neon_vqmovnuv4si ((int32x4_t) __a);
7620 __extension__ extern __inline uint32x2_t
7621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7622 vqmovn_u64 (uint64x2_t __a)
7624 return (uint32x2_t)__builtin_neon_vqmovnuv2di ((int64x2_t) __a);
7627 __extension__ extern __inline uint8x8_t
7628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7629 vqmovun_s16 (int16x8_t __a)
7631 return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a);
7634 __extension__ extern __inline uint16x4_t
7635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7636 vqmovun_s32 (int32x4_t __a)
7638 return (uint16x4_t)__builtin_neon_vqmovunv4si (__a);
7641 __extension__ extern __inline uint32x2_t
7642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7643 vqmovun_s64 (int64x2_t __a)
7645 return (uint32x2_t)__builtin_neon_vqmovunv2di (__a);
7648 __extension__ extern __inline int16x8_t
7649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7650 vmovl_s8 (int8x8_t __a)
7652 return (int16x8_t)__builtin_neon_vmovlsv8qi (__a);
7655 __extension__ extern __inline int32x4_t
7656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7657 vmovl_s16 (int16x4_t __a)
7659 return (int32x4_t)__builtin_neon_vmovlsv4hi (__a);
7662 __extension__ extern __inline int64x2_t
7663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7664 vmovl_s32 (int32x2_t __a)
7666 return (int64x2_t)__builtin_neon_vmovlsv2si (__a);
7669 __extension__ extern __inline uint16x8_t
7670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7671 vmovl_u8 (uint8x8_t __a)
7673 return (uint16x8_t)__builtin_neon_vmovluv8qi ((int8x8_t) __a);
7676 __extension__ extern __inline uint32x4_t
7677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7678 vmovl_u16 (uint16x4_t __a)
7680 return (uint32x4_t)__builtin_neon_vmovluv4hi ((int16x4_t) __a);
7683 __extension__ extern __inline uint64x2_t
7684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7685 vmovl_u32 (uint32x2_t __a)
7687 return (uint64x2_t)__builtin_neon_vmovluv2si ((int32x2_t) __a);
7690 __extension__ extern __inline int8x8_t
7691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7692 vtbl1_s8 (int8x8_t __a, int8x8_t __b)
7694 return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
7697 __extension__ extern __inline uint8x8_t
7698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7699 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
7701 return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7704 __extension__ extern __inline poly8x8_t
7705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7706 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
7708 return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7711 __extension__ extern __inline int8x8_t
7712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7713 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
7715 union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7716 return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
7719 __extension__ extern __inline uint8x8_t
7720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7721 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
7723 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7724 return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7727 __extension__ extern __inline poly8x8_t
7728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7729 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
7731 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7732 return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7735 __extension__ extern __inline int8x8_t
7736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7737 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
7739 union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7740 return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
7743 __extension__ extern __inline uint8x8_t
7744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7745 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
7747 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7748 return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7751 __extension__ extern __inline poly8x8_t
7752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7753 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
7755 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7756 return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7759 __extension__ extern __inline int8x8_t
7760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7761 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
7763 union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7764 return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
7767 __extension__ extern __inline uint8x8_t
7768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7769 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
7771 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7772 return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7775 __extension__ extern __inline poly8x8_t
7776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7777 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
7779 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7780 return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7783 __extension__ extern __inline int8x8_t
7784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7785 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
7787 return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
7790 __extension__ extern __inline uint8x8_t
7791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7792 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7794 return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7797 __extension__ extern __inline poly8x8_t
7798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7799 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
7801 return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7804 __extension__ extern __inline int8x8_t
7805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7806 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
7808 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7809 return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
7812 __extension__ extern __inline uint8x8_t
7813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7814 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
7816 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7817 return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7820 __extension__ extern __inline poly8x8_t
7821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7822 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
7824 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7825 return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7828 __extension__ extern __inline int8x8_t
7829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7830 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
7832 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7833 return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
7836 __extension__ extern __inline uint8x8_t
7837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7838 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
7840 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7841 return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7844 __extension__ extern __inline poly8x8_t
7845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7846 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
7848 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7849 return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7852 __extension__ extern __inline int8x8_t
7853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7854 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
7856 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7857 return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
7860 __extension__ extern __inline uint8x8_t
7861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7862 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
7864 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7865 return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7868 __extension__ extern __inline poly8x8_t
7869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7870 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
7872 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7873 return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7876 __extension__ extern __inline int16x4_t
7877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7878 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7880 return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c);
7883 __extension__ extern __inline int32x2_t
7884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7885 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7887 return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c);
7890 __extension__ extern __inline float32x2_t
7891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7892 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
7894 return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c);
7897 __extension__ extern __inline uint16x4_t
7898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7899 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7901 return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7904 __extension__ extern __inline uint32x2_t
7905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7906 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7908 return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
7911 __extension__ extern __inline int16x8_t
7912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7913 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
7915 return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c);
7918 __extension__ extern __inline int32x4_t
7919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7920 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
7922 return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c);
7925 __extension__ extern __inline float32x4_t
7926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7927 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
7929 return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c);
7932 __extension__ extern __inline uint16x8_t
7933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7934 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
7936 return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c);
7939 __extension__ extern __inline uint32x4_t
7940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7941 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
7943 return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c);
7946 __extension__ extern __inline int16x4_t
7947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7948 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
7950 return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d);
7953 __extension__ extern __inline int32x2_t
7954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7955 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
7957 return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d);
7960 __extension__ extern __inline float32x2_t
7961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7962 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
7964 return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d);
7967 __extension__ extern __inline uint16x4_t
7968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7969 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
7971 return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
7974 __extension__ extern __inline uint32x2_t
7975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7976 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
7978 return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
7981 __extension__ extern __inline int16x8_t
7982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7983 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
7985 return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d);
7988 __extension__ extern __inline int32x4_t
7989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7990 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
7992 return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d);
7995 __extension__ extern __inline float32x4_t
7996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7997 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
7999 return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d);
8002 __extension__ extern __inline uint16x8_t
8003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8004 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8006 return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8009 __extension__ extern __inline uint32x4_t
8010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8011 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8013 return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8016 __extension__ extern __inline int32x4_t
8017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8018 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8020 return (int32x4_t)__builtin_neon_vmlals_lanev4hi (__a, __b, __c, __d);
8023 __extension__ extern __inline int64x2_t
8024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8025 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8027 return (int64x2_t)__builtin_neon_vmlals_lanev2si (__a, __b, __c, __d);
8030 __extension__ extern __inline uint32x4_t
8031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8032 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8034 return (uint32x4_t)__builtin_neon_vmlalu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8037 __extension__ extern __inline uint64x2_t
8038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8039 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8041 return (uint64x2_t)__builtin_neon_vmlalu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8044 __extension__ extern __inline int32x4_t
8045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8046 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8048 return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d);
8051 __extension__ extern __inline int64x2_t
8052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8053 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8055 return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d);
8058 __extension__ extern __inline int16x4_t
8059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8060 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8062 return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d);
8065 __extension__ extern __inline int32x2_t
8066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8067 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8069 return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d);
8072 __extension__ extern __inline float32x2_t
8073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8074 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
8076 return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d);
8079 __extension__ extern __inline uint16x4_t
8080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8081 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8083 return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8086 __extension__ extern __inline uint32x2_t
8087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8088 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8090 return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8093 __extension__ extern __inline int16x8_t
8094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8095 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8097 return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d);
8100 __extension__ extern __inline int32x4_t
8101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8102 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8104 return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d);
8107 __extension__ extern __inline float32x4_t
8108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8109 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
8111 return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d);
8114 __extension__ extern __inline uint16x8_t
8115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8116 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8118 return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8121 __extension__ extern __inline uint32x4_t
8122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8123 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8125 return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8128 __extension__ extern __inline int32x4_t
8129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8130 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8132 return (int32x4_t)__builtin_neon_vmlsls_lanev4hi (__a, __b, __c, __d);
8135 __extension__ extern __inline int64x2_t
8136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8137 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8139 return (int64x2_t)__builtin_neon_vmlsls_lanev2si (__a, __b, __c, __d);
8142 __extension__ extern __inline uint32x4_t
8143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8144 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8146 return (uint32x4_t)__builtin_neon_vmlslu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8149 __extension__ extern __inline uint64x2_t
8150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8151 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8153 return (uint64x2_t)__builtin_neon_vmlslu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8156 __extension__ extern __inline int32x4_t
8157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8158 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8160 return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d);
8163 __extension__ extern __inline int64x2_t
8164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8165 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8167 return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d);
8170 __extension__ extern __inline int32x4_t
8171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8172 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8174 return (int32x4_t)__builtin_neon_vmulls_lanev4hi (__a, __b, __c);
8177 __extension__ extern __inline int64x2_t
8178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8179 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8181 return (int64x2_t)__builtin_neon_vmulls_lanev2si (__a, __b, __c);
8184 __extension__ extern __inline uint32x4_t
8185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8186 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8188 return (uint32x4_t)__builtin_neon_vmullu_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8191 __extension__ extern __inline uint64x2_t
8192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8193 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8195 return (uint64x2_t)__builtin_neon_vmullu_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8198 __extension__ extern __inline int32x4_t
8199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8200 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8202 return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c);
8205 __extension__ extern __inline int64x2_t
8206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8207 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8209 return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c);
8212 __extension__ extern __inline int16x8_t
8213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8214 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8216 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c);
8219 __extension__ extern __inline int32x4_t
8220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8221 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8223 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c);
8226 __extension__ extern __inline int16x4_t
8227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8228 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8230 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c);
8233 __extension__ extern __inline int32x2_t
8234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8235 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8237 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c);
8240 __extension__ extern __inline int16x8_t
8241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8242 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8244 return (int16x8_t)__builtin_neon_vqrdmulh_lanev8hi (__a, __b, __c);
8247 __extension__ extern __inline int32x4_t
8248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8249 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8251 return (int32x4_t)__builtin_neon_vqrdmulh_lanev4si (__a, __b, __c);
8254 __extension__ extern __inline int16x4_t
8255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8256 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8258 return (int16x4_t)__builtin_neon_vqrdmulh_lanev4hi (__a, __b, __c);
8261 __extension__ extern __inline int32x2_t
8262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8263 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8265 return (int32x2_t)__builtin_neon_vqrdmulh_lanev2si (__a, __b, __c);
8268 #ifdef __ARM_FEATURE_QRDMX
8269 __extension__ extern __inline int16x8_t
8270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8271 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8273 return (int16x8_t)__builtin_neon_vqrdmlah_lanev8hi (__a, __b, __c, __d);
8276 __extension__ extern __inline int32x4_t
8277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8278 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8280 return (int32x4_t)__builtin_neon_vqrdmlah_lanev4si (__a, __b, __c, __d);
8283 __extension__ extern __inline int16x4_t
8284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8285 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8287 return (int16x4_t)__builtin_neon_vqrdmlah_lanev4hi (__a, __b, __c, __d);
8290 __extension__ extern __inline int32x2_t
8291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8292 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8294 return (int32x2_t)__builtin_neon_vqrdmlah_lanev2si (__a, __b, __c, __d);
8297 __extension__ extern __inline int16x8_t
8298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8299 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8301 return (int16x8_t)__builtin_neon_vqrdmlsh_lanev8hi (__a, __b, __c, __d);
8304 __extension__ extern __inline int32x4_t
8305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8306 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8308 return (int32x4_t)__builtin_neon_vqrdmlsh_lanev4si (__a, __b, __c, __d);
8311 __extension__ extern __inline int16x4_t
8312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8313 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8315 return (int16x4_t)__builtin_neon_vqrdmlsh_lanev4hi (__a, __b, __c, __d);
8318 __extension__ extern __inline int32x2_t
8319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8320 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8322 return (int32x2_t)__builtin_neon_vqrdmlsh_lanev2si (__a, __b, __c, __d);
8324 #endif
8326 __extension__ extern __inline int16x4_t
8327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8328 vmul_n_s16 (int16x4_t __a, int16_t __b)
8330 return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b);
8333 __extension__ extern __inline int32x2_t
8334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8335 vmul_n_s32 (int32x2_t __a, int32_t __b)
8337 return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b);
8340 __extension__ extern __inline float32x2_t
8341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8342 vmul_n_f32 (float32x2_t __a, float32_t __b)
8344 return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b);
8347 __extension__ extern __inline uint16x4_t
8348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8349 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
8351 return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8354 __extension__ extern __inline uint32x2_t
8355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8356 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
8358 return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8361 __extension__ extern __inline int16x8_t
8362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8363 vmulq_n_s16 (int16x8_t __a, int16_t __b)
8365 return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b);
8368 __extension__ extern __inline int32x4_t
8369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8370 vmulq_n_s32 (int32x4_t __a, int32_t __b)
8372 return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b);
8375 __extension__ extern __inline float32x4_t
8376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8377 vmulq_n_f32 (float32x4_t __a, float32_t __b)
8379 return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b);
8382 __extension__ extern __inline uint16x8_t
8383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8384 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
8386 return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b);
8389 __extension__ extern __inline uint32x4_t
8390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8391 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
8393 return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b);
8396 __extension__ extern __inline int32x4_t
8397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8398 vmull_n_s16 (int16x4_t __a, int16_t __b)
8400 return (int32x4_t)__builtin_neon_vmulls_nv4hi (__a, (__builtin_neon_hi) __b);
8403 __extension__ extern __inline int64x2_t
8404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8405 vmull_n_s32 (int32x2_t __a, int32_t __b)
8407 return (int64x2_t)__builtin_neon_vmulls_nv2si (__a, (__builtin_neon_si) __b);
8410 __extension__ extern __inline uint32x4_t
8411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8412 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
8414 return (uint32x4_t)__builtin_neon_vmullu_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8417 __extension__ extern __inline uint64x2_t
8418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8419 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
8421 return (uint64x2_t)__builtin_neon_vmullu_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8424 __extension__ extern __inline int32x4_t
8425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8426 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
8428 return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b);
8431 __extension__ extern __inline int64x2_t
8432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8433 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
8435 return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b);
8438 __extension__ extern __inline int16x8_t
8439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8440 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8442 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8445 __extension__ extern __inline int32x4_t
8446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8447 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8449 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b);
8452 __extension__ extern __inline int16x4_t
8453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8454 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
8456 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8459 __extension__ extern __inline int32x2_t
8460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8461 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
8463 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b);
8466 __extension__ extern __inline int16x8_t
8467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8468 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8470 return (int16x8_t)__builtin_neon_vqrdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8473 __extension__ extern __inline int32x4_t
8474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8475 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8477 return (int32x4_t)__builtin_neon_vqrdmulh_nv4si (__a, (__builtin_neon_si) __b);
8480 __extension__ extern __inline int16x4_t
8481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8482 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
8484 return (int16x4_t)__builtin_neon_vqrdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8487 __extension__ extern __inline int32x2_t
8488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8489 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
8491 return (int32x2_t)__builtin_neon_vqrdmulh_nv2si (__a, (__builtin_neon_si) __b);
8494 __extension__ extern __inline int16x4_t
8495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8496 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8498 return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8501 __extension__ extern __inline int32x2_t
8502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8503 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8505 return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c);
8508 __extension__ extern __inline float32x2_t
8509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8510 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8512 return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8515 __extension__ extern __inline uint16x4_t
8516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8517 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8519 return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8522 __extension__ extern __inline uint32x2_t
8523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8524 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8526 return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8529 __extension__ extern __inline int16x8_t
8530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8531 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8533 return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8536 __extension__ extern __inline int32x4_t
8537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8538 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8540 return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c);
8543 __extension__ extern __inline float32x4_t
8544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8545 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8547 return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8550 __extension__ extern __inline uint16x8_t
8551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8552 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8554 return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8557 __extension__ extern __inline uint32x4_t
8558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8559 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8561 return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8564 __extension__ extern __inline int32x4_t
8565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8566 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8568 return (int32x4_t)__builtin_neon_vmlals_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8571 __extension__ extern __inline int64x2_t
8572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8573 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8575 return (int64x2_t)__builtin_neon_vmlals_nv2si (__a, __b, (__builtin_neon_si) __c);
8578 __extension__ extern __inline uint32x4_t
8579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8580 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8582 return (uint32x4_t)__builtin_neon_vmlalu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8585 __extension__ extern __inline uint64x2_t
8586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8587 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8589 return (uint64x2_t)__builtin_neon_vmlalu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8592 __extension__ extern __inline int32x4_t
8593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8594 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8596 return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8599 __extension__ extern __inline int64x2_t
8600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8601 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8603 return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c);
8606 __extension__ extern __inline int16x4_t
8607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8608 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8610 return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8613 __extension__ extern __inline int32x2_t
8614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8615 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8617 return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c);
8620 __extension__ extern __inline float32x2_t
8621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8622 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8624 return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8627 __extension__ extern __inline uint16x4_t
8628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8629 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8631 return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8634 __extension__ extern __inline uint32x2_t
8635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8636 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8638 return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8641 __extension__ extern __inline int16x8_t
8642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8643 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8645 return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8648 __extension__ extern __inline int32x4_t
8649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8650 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8652 return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c);
8655 __extension__ extern __inline float32x4_t
8656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8657 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8659 return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8662 __extension__ extern __inline uint16x8_t
8663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8664 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8666 return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8669 __extension__ extern __inline uint32x4_t
8670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8671 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8673 return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8676 __extension__ extern __inline int32x4_t
8677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8678 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8680 return (int32x4_t)__builtin_neon_vmlsls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8683 __extension__ extern __inline int64x2_t
8684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8685 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8687 return (int64x2_t)__builtin_neon_vmlsls_nv2si (__a, __b, (__builtin_neon_si) __c);
8690 __extension__ extern __inline uint32x4_t
8691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8692 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8694 return (uint32x4_t)__builtin_neon_vmlslu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8697 __extension__ extern __inline uint64x2_t
8698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8699 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8701 return (uint64x2_t)__builtin_neon_vmlslu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8704 __extension__ extern __inline int32x4_t
8705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8706 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8708 return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8711 __extension__ extern __inline int64x2_t
8712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8713 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8715 return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c);
8718 #pragma GCC push_options
8719 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
8720 __extension__ extern __inline poly64x1_t
8721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8722 vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
8724 return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8727 #pragma GCC pop_options
8728 __extension__ extern __inline int8x8_t
8729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8730 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
8732 return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
8735 __extension__ extern __inline int16x4_t
8736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8737 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8739 return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
8742 __extension__ extern __inline int32x2_t
8743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8744 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8746 return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
8749 __extension__ extern __inline int64x1_t
8750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8751 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
8753 return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8756 __extension__ extern __inline float32x2_t
8757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8758 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
8760 return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
8763 __extension__ extern __inline uint8x8_t
8764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8765 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
8767 return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8770 __extension__ extern __inline uint16x4_t
8771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8772 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8774 return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8777 __extension__ extern __inline uint32x2_t
8778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8779 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8781 return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8784 __extension__ extern __inline uint64x1_t
8785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8786 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
8788 return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
8791 __extension__ extern __inline poly8x8_t
8792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8793 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
8795 return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8798 __extension__ extern __inline poly16x4_t
8799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8800 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
8802 return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8805 #pragma GCC push_options
8806 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
8807 __extension__ extern __inline poly64x2_t
8808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8809 vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
8811 return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8814 #pragma GCC pop_options
8815 __extension__ extern __inline int8x16_t
8816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8817 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
8819 return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
8822 __extension__ extern __inline int16x8_t
8823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8824 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
8826 return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
8829 __extension__ extern __inline int32x4_t
8830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8831 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
8833 return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
8836 __extension__ extern __inline int64x2_t
8837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8838 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
8840 return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
8843 __extension__ extern __inline float32x4_t
8844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8845 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
8847 return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
8850 __extension__ extern __inline uint8x16_t
8851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8852 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
8854 return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8857 __extension__ extern __inline uint16x8_t
8858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8859 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
8861 return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8864 __extension__ extern __inline uint32x4_t
8865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8866 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
8868 return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
8871 __extension__ extern __inline uint64x2_t
8872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8873 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
8875 return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8878 __extension__ extern __inline poly8x16_t
8879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8880 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
8882 return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8885 __extension__ extern __inline poly16x8_t
8886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8887 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
8889 return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8892 __extension__ extern __inline int8x8_t
8893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8894 vrev64_s8 (int8x8_t __a)
8896 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8899 __extension__ extern __inline int16x4_t
8900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8901 vrev64_s16 (int16x4_t __a)
8903 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8906 __extension__ extern __inline int32x2_t
8907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8908 vrev64_s32 (int32x2_t __a)
8910 return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8913 __extension__ extern __inline float32x2_t
8914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8915 vrev64_f32 (float32x2_t __a)
8917 return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8920 __extension__ extern __inline uint8x8_t
8921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8922 vrev64_u8 (uint8x8_t __a)
8924 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8927 __extension__ extern __inline uint16x4_t
8928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8929 vrev64_u16 (uint16x4_t __a)
8931 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8934 __extension__ extern __inline uint32x2_t
8935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8936 vrev64_u32 (uint32x2_t __a)
8938 return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8941 __extension__ extern __inline poly8x8_t
8942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8943 vrev64_p8 (poly8x8_t __a)
8945 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8948 __extension__ extern __inline poly16x4_t
8949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8950 vrev64_p16 (poly16x4_t __a)
8952 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8955 __extension__ extern __inline int8x16_t
8956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8957 vrev64q_s8 (int8x16_t __a)
8959 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
8962 __extension__ extern __inline int16x8_t
8963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8964 vrev64q_s16 (int16x8_t __a)
8966 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
8969 __extension__ extern __inline int32x4_t
8970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8971 vrev64q_s32 (int32x4_t __a)
8973 return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
8976 __extension__ extern __inline float32x4_t
8977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8978 vrev64q_f32 (float32x4_t __a)
8980 return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
8983 __extension__ extern __inline uint8x16_t
8984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8985 vrev64q_u8 (uint8x16_t __a)
8987 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
8990 __extension__ extern __inline uint16x8_t
8991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8992 vrev64q_u16 (uint16x8_t __a)
8994 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
8997 __extension__ extern __inline uint32x4_t
8998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8999 vrev64q_u32 (uint32x4_t __a)
9001 return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
9004 __extension__ extern __inline poly8x16_t
9005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9006 vrev64q_p8 (poly8x16_t __a)
9008 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
9011 __extension__ extern __inline poly16x8_t
9012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9013 vrev64q_p16 (poly16x8_t __a)
9015 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9018 __extension__ extern __inline int8x8_t
9019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9020 vrev32_s8 (int8x8_t __a)
9022 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9025 __extension__ extern __inline int16x4_t
9026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9027 vrev32_s16 (int16x4_t __a)
9029 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9032 __extension__ extern __inline uint8x8_t
9033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9034 vrev32_u8 (uint8x8_t __a)
9036 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9039 __extension__ extern __inline uint16x4_t
9040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9041 vrev32_u16 (uint16x4_t __a)
9043 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9046 __extension__ extern __inline poly8x8_t
9047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9048 vrev32_p8 (poly8x8_t __a)
9050 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9053 __extension__ extern __inline poly16x4_t
9054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9055 vrev32_p16 (poly16x4_t __a)
9057 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9060 __extension__ extern __inline int8x16_t
9061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9062 vrev32q_s8 (int8x16_t __a)
9064 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9067 __extension__ extern __inline int16x8_t
9068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9069 vrev32q_s16 (int16x8_t __a)
9071 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9074 __extension__ extern __inline uint8x16_t
9075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9076 vrev32q_u8 (uint8x16_t __a)
9078 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9081 __extension__ extern __inline uint16x8_t
9082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9083 vrev32q_u16 (uint16x8_t __a)
9085 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9088 __extension__ extern __inline poly8x16_t
9089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9090 vrev32q_p8 (poly8x16_t __a)
9092 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9095 __extension__ extern __inline poly16x8_t
9096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9097 vrev32q_p16 (poly16x8_t __a)
9099 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9102 __extension__ extern __inline int8x8_t
9103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9104 vrev16_s8 (int8x8_t __a)
9106 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9109 __extension__ extern __inline uint8x8_t
9110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9111 vrev16_u8 (uint8x8_t __a)
9113 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9116 __extension__ extern __inline poly8x8_t
9117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9118 vrev16_p8 (poly8x8_t __a)
9120 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9123 __extension__ extern __inline int8x16_t
9124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9125 vrev16q_s8 (int8x16_t __a)
9127 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9130 __extension__ extern __inline uint8x16_t
9131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9132 vrev16q_u8 (uint8x16_t __a)
9134 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9137 __extension__ extern __inline poly8x16_t
9138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9139 vrev16q_p8 (poly8x16_t __a)
9141 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9144 #pragma GCC push_options
9145 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
9146 __extension__ extern __inline poly64x1_t
9147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9148 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
9150 return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9153 #pragma GCC pop_options
9154 __extension__ extern __inline int8x8_t
9155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9156 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
9158 return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
9161 __extension__ extern __inline int16x4_t
9162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9163 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
9165 return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
9168 __extension__ extern __inline int32x2_t
9169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9170 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
9172 return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
9175 __extension__ extern __inline int64x1_t
9176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9177 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
9179 return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9182 __extension__ extern __inline float32x2_t
9183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9184 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
9186 return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
9189 __extension__ extern __inline uint8x8_t
9190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9191 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
9193 return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9196 __extension__ extern __inline uint16x4_t
9197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9198 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
9200 return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9203 __extension__ extern __inline uint32x2_t
9204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9205 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
9207 return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
9210 __extension__ extern __inline uint64x1_t
9211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9212 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
9214 return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
9217 __extension__ extern __inline poly8x8_t
9218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9219 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
9221 return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9224 __extension__ extern __inline poly16x4_t
9225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9226 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
9228 return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9231 #pragma GCC push_options
9232 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
9233 __extension__ extern __inline poly64x2_t
9234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9235 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
9237 return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9240 #pragma GCC pop_options
9241 __extension__ extern __inline int8x16_t
9242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9243 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
9245 return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
9248 __extension__ extern __inline int16x8_t
9249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9250 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
9252 return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
9255 __extension__ extern __inline int32x4_t
9256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9257 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
9259 return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
9262 __extension__ extern __inline int64x2_t
9263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9264 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
9266 return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
9269 __extension__ extern __inline float32x4_t
9270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9271 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
9273 return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
9276 __extension__ extern __inline uint8x16_t
9277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9278 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
9280 return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9283 __extension__ extern __inline uint16x8_t
9284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9285 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
9287 return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9290 __extension__ extern __inline uint32x4_t
9291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9292 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
9294 return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
9297 __extension__ extern __inline uint64x2_t
9298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9299 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
9301 return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9304 __extension__ extern __inline poly8x16_t
9305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9306 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
9308 return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9311 __extension__ extern __inline poly16x8_t
9312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9313 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
9315 return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9318 /* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as
9319 follows. (nelt = the number of elements within a vector.)
9321 Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector
9322 extension's indexing scheme is reversed *within each vector* (relative to the
9323 neon intrinsics view), but without changing which of the two vectors.
9325 Secondly, the elements within each mask are reversed, as the mask is itself a
9326 vector, and will itself be loaded in reverse order (again, relative to the
9327 neon intrinsics view, i.e. that would result from a "vld1" instruction). */
9329 __extension__ extern __inline int8x8x2_t
9330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9331 vtrn_s8 (int8x8_t __a, int8x8_t __b)
9333 int8x8x2_t __rv;
9334 #ifdef __ARM_BIG_ENDIAN
9335 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9336 { 9, 1, 11, 3, 13, 5, 15, 7 });
9337 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9338 { 8, 0, 10, 2, 12, 4, 14, 6 });
9339 #else
9340 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9341 { 0, 8, 2, 10, 4, 12, 6, 14 });
9342 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9343 { 1, 9, 3, 11, 5, 13, 7, 15 });
9344 #endif
9345 return __rv;
9348 __extension__ extern __inline int16x4x2_t
9349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9350 vtrn_s16 (int16x4_t __a, int16x4_t __b)
9352 int16x4x2_t __rv;
9353 #ifdef __ARM_BIG_ENDIAN
9354 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9355 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9356 #else
9357 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9358 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9359 #endif
9360 return __rv;
9363 __extension__ extern __inline uint8x8x2_t
9364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9365 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
9367 uint8x8x2_t __rv;
9368 #ifdef __ARM_BIG_ENDIAN
9369 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9370 { 9, 1, 11, 3, 13, 5, 15, 7 });
9371 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9372 { 8, 0, 10, 2, 12, 4, 14, 6 });
9373 #else
9374 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9375 { 0, 8, 2, 10, 4, 12, 6, 14 });
9376 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9377 { 1, 9, 3, 11, 5, 13, 7, 15 });
9378 #endif
9379 return __rv;
9382 __extension__ extern __inline uint16x4x2_t
9383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9384 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
9386 uint16x4x2_t __rv;
9387 #ifdef __ARM_BIG_ENDIAN
9388 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9389 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9390 #else
9391 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9392 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9393 #endif
9394 return __rv;
9397 __extension__ extern __inline poly8x8x2_t
9398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9399 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
9401 poly8x8x2_t __rv;
9402 #ifdef __ARM_BIG_ENDIAN
9403 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9404 { 9, 1, 11, 3, 13, 5, 15, 7 });
9405 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9406 { 8, 0, 10, 2, 12, 4, 14, 6 });
9407 #else
9408 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9409 { 0, 8, 2, 10, 4, 12, 6, 14 });
9410 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9411 { 1, 9, 3, 11, 5, 13, 7, 15 });
9412 #endif
9413 return __rv;
9416 __extension__ extern __inline poly16x4x2_t
9417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9418 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
9420 poly16x4x2_t __rv;
9421 #ifdef __ARM_BIG_ENDIAN
9422 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9423 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9424 #else
9425 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9426 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9427 #endif
9428 return __rv;
9431 __extension__ extern __inline int32x2x2_t
9432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9433 vtrn_s32 (int32x2_t __a, int32x2_t __b)
9435 int32x2x2_t __rv;
9436 #ifdef __ARM_BIG_ENDIAN
9437 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9438 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9439 #else
9440 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9441 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9442 #endif
9443 return __rv;
9446 __extension__ extern __inline float32x2x2_t
9447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9448 vtrn_f32 (float32x2_t __a, float32x2_t __b)
9450 float32x2x2_t __rv;
9451 #ifdef __ARM_BIG_ENDIAN
9452 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9453 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9454 #else
9455 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9456 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9457 #endif
9458 return __rv;
9461 __extension__ extern __inline uint32x2x2_t
9462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9463 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
9465 uint32x2x2_t __rv;
9466 #ifdef __ARM_BIG_ENDIAN
9467 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9468 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9469 #else
9470 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9471 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9472 #endif
9473 return __rv;
9476 __extension__ extern __inline int8x16x2_t
9477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9478 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
9480 int8x16x2_t __rv;
9481 #ifdef __ARM_BIG_ENDIAN
9482 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9483 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9484 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9485 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9486 #else
9487 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9488 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9489 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9490 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9491 #endif
9492 return __rv;
9495 __extension__ extern __inline int16x8x2_t
9496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9497 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
9499 int16x8x2_t __rv;
9500 #ifdef __ARM_BIG_ENDIAN
9501 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9502 { 9, 1, 11, 3, 13, 5, 15, 7 });
9503 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9504 { 8, 0, 10, 2, 12, 4, 14, 6 });
9505 #else
9506 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9507 { 0, 8, 2, 10, 4, 12, 6, 14 });
9508 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9509 { 1, 9, 3, 11, 5, 13, 7, 15 });
9510 #endif
9511 return __rv;
9514 __extension__ extern __inline int32x4x2_t
9515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9516 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
9518 int32x4x2_t __rv;
9519 #ifdef __ARM_BIG_ENDIAN
9520 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9521 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9522 #else
9523 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9524 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9525 #endif
9526 return __rv;
9529 __extension__ extern __inline float32x4x2_t
9530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9531 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
9533 float32x4x2_t __rv;
9534 #ifdef __ARM_BIG_ENDIAN
9535 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9536 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9537 #else
9538 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9539 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9540 #endif
9541 return __rv;
9544 __extension__ extern __inline uint8x16x2_t
9545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9546 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
9548 uint8x16x2_t __rv;
9549 #ifdef __ARM_BIG_ENDIAN
9550 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9551 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9552 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9553 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9554 #else
9555 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9556 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9557 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9558 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9559 #endif
9560 return __rv;
9563 __extension__ extern __inline uint16x8x2_t
9564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9565 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
9567 uint16x8x2_t __rv;
9568 #ifdef __ARM_BIG_ENDIAN
9569 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9570 { 9, 1, 11, 3, 13, 5, 15, 7 });
9571 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9572 { 8, 0, 10, 2, 12, 4, 14, 6 });
9573 #else
9574 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9575 { 0, 8, 2, 10, 4, 12, 6, 14 });
9576 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9577 { 1, 9, 3, 11, 5, 13, 7, 15 });
9578 #endif
9579 return __rv;
9582 __extension__ extern __inline uint32x4x2_t
9583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9584 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
9586 uint32x4x2_t __rv;
9587 #ifdef __ARM_BIG_ENDIAN
9588 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9589 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9590 #else
9591 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9592 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9593 #endif
9594 return __rv;
9597 __extension__ extern __inline poly8x16x2_t
9598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9599 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
9601 poly8x16x2_t __rv;
9602 #ifdef __ARM_BIG_ENDIAN
9603 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9604 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9605 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9606 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9607 #else
9608 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9609 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9610 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9611 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9612 #endif
9613 return __rv;
9616 __extension__ extern __inline poly16x8x2_t
9617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9618 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
9620 poly16x8x2_t __rv;
9621 #ifdef __ARM_BIG_ENDIAN
9622 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9623 { 9, 1, 11, 3, 13, 5, 15, 7 });
9624 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9625 { 8, 0, 10, 2, 12, 4, 14, 6 });
9626 #else
9627 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9628 { 0, 8, 2, 10, 4, 12, 6, 14 });
9629 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9630 { 1, 9, 3, 11, 5, 13, 7, 15 });
9631 #endif
9632 return __rv;
9635 __extension__ extern __inline int8x8x2_t
9636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9637 vzip_s8 (int8x8_t __a, int8x8_t __b)
9639 int8x8x2_t __rv;
9640 #ifdef __ARM_BIG_ENDIAN
9641 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9642 { 12, 4, 13, 5, 14, 6, 15, 7 });
9643 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9644 { 8, 0, 9, 1, 10, 2, 11, 3 });
9645 #else
9646 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9647 { 0, 8, 1, 9, 2, 10, 3, 11 });
9648 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9649 { 4, 12, 5, 13, 6, 14, 7, 15 });
9650 #endif
9651 return __rv;
9654 __extension__ extern __inline int16x4x2_t
9655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9656 vzip_s16 (int16x4_t __a, int16x4_t __b)
9658 int16x4x2_t __rv;
9659 #ifdef __ARM_BIG_ENDIAN
9660 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9661 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9662 #else
9663 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9664 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9665 #endif
9666 return __rv;
9669 __extension__ extern __inline uint8x8x2_t
9670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9671 vzip_u8 (uint8x8_t __a, uint8x8_t __b)
9673 uint8x8x2_t __rv;
9674 #ifdef __ARM_BIG_ENDIAN
9675 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9676 { 12, 4, 13, 5, 14, 6, 15, 7 });
9677 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9678 { 8, 0, 9, 1, 10, 2, 11, 3 });
9679 #else
9680 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9681 { 0, 8, 1, 9, 2, 10, 3, 11 });
9682 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9683 { 4, 12, 5, 13, 6, 14, 7, 15 });
9684 #endif
9685 return __rv;
9688 __extension__ extern __inline uint16x4x2_t
9689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9690 vzip_u16 (uint16x4_t __a, uint16x4_t __b)
9692 uint16x4x2_t __rv;
9693 #ifdef __ARM_BIG_ENDIAN
9694 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9695 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9696 #else
9697 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9698 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9699 #endif
9700 return __rv;
9703 __extension__ extern __inline poly8x8x2_t
9704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9705 vzip_p8 (poly8x8_t __a, poly8x8_t __b)
9707 poly8x8x2_t __rv;
9708 #ifdef __ARM_BIG_ENDIAN
9709 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9710 { 12, 4, 13, 5, 14, 6, 15, 7 });
9711 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9712 { 8, 0, 9, 1, 10, 2, 11, 3 });
9713 #else
9714 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9715 { 0, 8, 1, 9, 2, 10, 3, 11 });
9716 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9717 { 4, 12, 5, 13, 6, 14, 7, 15 });
9718 #endif
9719 return __rv;
9722 __extension__ extern __inline poly16x4x2_t
9723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9724 vzip_p16 (poly16x4_t __a, poly16x4_t __b)
9726 poly16x4x2_t __rv;
9727 #ifdef __ARM_BIG_ENDIAN
9728 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9729 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9730 #else
9731 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9732 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9733 #endif
9734 return __rv;
9737 __extension__ extern __inline int32x2x2_t
9738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9739 vzip_s32 (int32x2_t __a, int32x2_t __b)
9741 int32x2x2_t __rv;
9742 #ifdef __ARM_BIG_ENDIAN
9743 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9744 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9745 #else
9746 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9747 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9748 #endif
9749 return __rv;
9752 __extension__ extern __inline float32x2x2_t
9753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9754 vzip_f32 (float32x2_t __a, float32x2_t __b)
9756 float32x2x2_t __rv;
9757 #ifdef __ARM_BIG_ENDIAN
9758 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9759 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9760 #else
9761 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9762 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9763 #endif
9764 return __rv;
9767 __extension__ extern __inline uint32x2x2_t
9768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9769 vzip_u32 (uint32x2_t __a, uint32x2_t __b)
9771 uint32x2x2_t __rv;
9772 #ifdef __ARM_BIG_ENDIAN
9773 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9774 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9775 #else
9776 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9777 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9778 #endif
9779 return __rv;
9782 __extension__ extern __inline int8x16x2_t
9783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9784 vzipq_s8 (int8x16_t __a, int8x16_t __b)
9786 int8x16x2_t __rv;
9787 #ifdef __ARM_BIG_ENDIAN
9788 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9789 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9790 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9791 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9792 #else
9793 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9794 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9795 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9796 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9797 #endif
9798 return __rv;
9801 __extension__ extern __inline int16x8x2_t
9802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9803 vzipq_s16 (int16x8_t __a, int16x8_t __b)
9805 int16x8x2_t __rv;
9806 #ifdef __ARM_BIG_ENDIAN
9807 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9808 { 10, 2, 11, 3, 8, 0, 9, 1 });
9809 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9810 { 14, 6, 15, 7, 12, 4, 13, 5 });
9811 #else
9812 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9813 { 0, 8, 1, 9, 2, 10, 3, 11 });
9814 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9815 { 4, 12, 5, 13, 6, 14, 7, 15 });
9816 #endif
9817 return __rv;
9820 __extension__ extern __inline int32x4x2_t
9821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9822 vzipq_s32 (int32x4_t __a, int32x4_t __b)
9824 int32x4x2_t __rv;
9825 #ifdef __ARM_BIG_ENDIAN
9826 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9827 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9828 #else
9829 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9830 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9831 #endif
9832 return __rv;
9835 __extension__ extern __inline float32x4x2_t
9836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9837 vzipq_f32 (float32x4_t __a, float32x4_t __b)
9839 float32x4x2_t __rv;
9840 #ifdef __ARM_BIG_ENDIAN
9841 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9842 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9843 #else
9844 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9845 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9846 #endif
9847 return __rv;
9850 __extension__ extern __inline uint8x16x2_t
9851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9852 vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
9854 uint8x16x2_t __rv;
9855 #ifdef __ARM_BIG_ENDIAN
9856 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9857 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9858 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9859 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9860 #else
9861 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9862 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9863 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9864 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9865 #endif
9866 return __rv;
9869 __extension__ extern __inline uint16x8x2_t
9870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9871 vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
9873 uint16x8x2_t __rv;
9874 #ifdef __ARM_BIG_ENDIAN
9875 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9876 { 10, 2, 11, 3, 8, 0, 9, 1 });
9877 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9878 { 14, 6, 15, 7, 12, 4, 13, 5 });
9879 #else
9880 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9881 { 0, 8, 1, 9, 2, 10, 3, 11 });
9882 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9883 { 4, 12, 5, 13, 6, 14, 7, 15 });
9884 #endif
9885 return __rv;
9888 __extension__ extern __inline uint32x4x2_t
9889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9890 vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
9892 uint32x4x2_t __rv;
9893 #ifdef __ARM_BIG_ENDIAN
9894 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9895 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9896 #else
9897 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9898 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9899 #endif
9900 return __rv;
9903 __extension__ extern __inline poly8x16x2_t
9904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9905 vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
9907 poly8x16x2_t __rv;
9908 #ifdef __ARM_BIG_ENDIAN
9909 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9910 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9911 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9912 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9913 #else
9914 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9915 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9916 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9917 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9918 #endif
9919 return __rv;
9922 __extension__ extern __inline poly16x8x2_t
9923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9924 vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
9926 poly16x8x2_t __rv;
9927 #ifdef __ARM_BIG_ENDIAN
9928 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9929 { 10, 2, 11, 3, 8, 0, 9, 1 });
9930 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9931 { 14, 6, 15, 7, 12, 4, 13, 5 });
9932 #else
9933 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9934 { 0, 8, 1, 9, 2, 10, 3, 11 });
9935 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9936 { 4, 12, 5, 13, 6, 14, 7, 15 });
9937 #endif
9938 return __rv;
9941 __extension__ extern __inline int8x8x2_t
9942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9943 vuzp_s8 (int8x8_t __a, int8x8_t __b)
9945 int8x8x2_t __rv;
9946 #ifdef __ARM_BIG_ENDIAN
9947 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9948 { 9, 11, 13, 15, 1, 3, 5, 7 });
9949 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9950 { 8, 10, 12, 14, 0, 2, 4, 6 });
9951 #else
9952 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9953 { 0, 2, 4, 6, 8, 10, 12, 14 });
9954 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9955 { 1, 3, 5, 7, 9, 11, 13, 15 });
9956 #endif
9957 return __rv;
9960 __extension__ extern __inline int16x4x2_t
9961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9962 vuzp_s16 (int16x4_t __a, int16x4_t __b)
9964 int16x4x2_t __rv;
9965 #ifdef __ARM_BIG_ENDIAN
9966 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
9967 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
9968 #else
9969 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
9970 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
9971 #endif
9972 return __rv;
9975 __extension__ extern __inline int32x2x2_t
9976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9977 vuzp_s32 (int32x2_t __a, int32x2_t __b)
9979 int32x2x2_t __rv;
9980 #ifdef __ARM_BIG_ENDIAN
9981 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9982 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9983 #else
9984 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9985 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9986 #endif
9987 return __rv;
9990 __extension__ extern __inline float32x2x2_t
9991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9992 vuzp_f32 (float32x2_t __a, float32x2_t __b)
9994 float32x2x2_t __rv;
9995 #ifdef __ARM_BIG_ENDIAN
9996 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9997 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9998 #else
9999 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10000 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10001 #endif
10002 return __rv;
10005 __extension__ extern __inline uint8x8x2_t
10006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10007 vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
10009 uint8x8x2_t __rv;
10010 #ifdef __ARM_BIG_ENDIAN
10011 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10012 { 9, 11, 13, 15, 1, 3, 5, 7 });
10013 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10014 { 8, 10, 12, 14, 0, 2, 4, 6 });
10015 #else
10016 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10017 { 0, 2, 4, 6, 8, 10, 12, 14 });
10018 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10019 { 1, 3, 5, 7, 9, 11, 13, 15 });
10020 #endif
10021 return __rv;
10024 __extension__ extern __inline uint16x4x2_t
10025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10026 vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
10028 uint16x4x2_t __rv;
10029 #ifdef __ARM_BIG_ENDIAN
10030 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10031 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10032 #else
10033 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10034 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10035 #endif
10036 return __rv;
10039 __extension__ extern __inline uint32x2x2_t
10040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10041 vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
10043 uint32x2x2_t __rv;
10044 #ifdef __ARM_BIG_ENDIAN
10045 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10046 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10047 #else
10048 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10049 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10050 #endif
10051 return __rv;
10054 __extension__ extern __inline poly8x8x2_t
10055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10056 vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
10058 poly8x8x2_t __rv;
10059 #ifdef __ARM_BIG_ENDIAN
10060 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10061 { 9, 11, 13, 15, 1, 3, 5, 7 });
10062 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10063 { 8, 10, 12, 14, 0, 2, 4, 6 });
10064 #else
10065 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10066 { 0, 2, 4, 6, 8, 10, 12, 14 });
10067 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10068 { 1, 3, 5, 7, 9, 11, 13, 15 });
10069 #endif
10070 return __rv;
10073 __extension__ extern __inline poly16x4x2_t
10074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10075 vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
10077 poly16x4x2_t __rv;
10078 #ifdef __ARM_BIG_ENDIAN
10079 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10080 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10081 #else
10082 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10083 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10084 #endif
10085 return __rv;
10088 __extension__ extern __inline int8x16x2_t
10089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10090 vuzpq_s8 (int8x16_t __a, int8x16_t __b)
10092 int8x16x2_t __rv;
10093 #ifdef __ARM_BIG_ENDIAN
10094 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10095 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10096 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10097 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10098 #else
10099 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10100 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10101 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10102 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10103 #endif
10104 return __rv;
10107 __extension__ extern __inline int16x8x2_t
10108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10109 vuzpq_s16 (int16x8_t __a, int16x8_t __b)
10111 int16x8x2_t __rv;
10112 #ifdef __ARM_BIG_ENDIAN
10113 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10114 { 5, 7, 1, 3, 13, 15, 9, 11 });
10115 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10116 { 4, 6, 0, 2, 12, 14, 8, 10 });
10117 #else
10118 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10119 { 0, 2, 4, 6, 8, 10, 12, 14 });
10120 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10121 { 1, 3, 5, 7, 9, 11, 13, 15 });
10122 #endif
10123 return __rv;
10126 __extension__ extern __inline int32x4x2_t
10127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10128 vuzpq_s32 (int32x4_t __a, int32x4_t __b)
10130 int32x4x2_t __rv;
10131 #ifdef __ARM_BIG_ENDIAN
10132 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10133 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10134 #else
10135 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10136 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10137 #endif
10138 return __rv;
10141 __extension__ extern __inline float32x4x2_t
10142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10143 vuzpq_f32 (float32x4_t __a, float32x4_t __b)
10145 float32x4x2_t __rv;
10146 #ifdef __ARM_BIG_ENDIAN
10147 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10148 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10149 #else
10150 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10151 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10152 #endif
10153 return __rv;
10156 __extension__ extern __inline uint8x16x2_t
10157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10158 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
10160 uint8x16x2_t __rv;
10161 #ifdef __ARM_BIG_ENDIAN
10162 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10163 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10164 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10165 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10166 #else
10167 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10168 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10169 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10170 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10171 #endif
10172 return __rv;
10175 __extension__ extern __inline uint16x8x2_t
10176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10177 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
10179 uint16x8x2_t __rv;
10180 #ifdef __ARM_BIG_ENDIAN
10181 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10182 { 5, 7, 1, 3, 13, 15, 9, 11 });
10183 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10184 { 4, 6, 0, 2, 12, 14, 8, 10 });
10185 #else
10186 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10187 { 0, 2, 4, 6, 8, 10, 12, 14 });
10188 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10189 { 1, 3, 5, 7, 9, 11, 13, 15 });
10190 #endif
10191 return __rv;
10194 __extension__ extern __inline uint32x4x2_t
10195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10196 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
10198 uint32x4x2_t __rv;
10199 #ifdef __ARM_BIG_ENDIAN
10200 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10201 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10202 #else
10203 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10204 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10205 #endif
10206 return __rv;
10209 __extension__ extern __inline poly8x16x2_t
10210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10211 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
10213 poly8x16x2_t __rv;
10214 #ifdef __ARM_BIG_ENDIAN
10215 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10216 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10217 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10218 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10219 #else
10220 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10221 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10222 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10223 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10224 #endif
10225 return __rv;
10228 __extension__ extern __inline poly16x8x2_t
10229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10230 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
10232 poly16x8x2_t __rv;
10233 #ifdef __ARM_BIG_ENDIAN
10234 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10235 { 5, 7, 1, 3, 13, 15, 9, 11 });
10236 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10237 { 4, 6, 0, 2, 12, 14, 8, 10 });
10238 #else
10239 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10240 { 0, 2, 4, 6, 8, 10, 12, 14 });
10241 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10242 { 1, 3, 5, 7, 9, 11, 13, 15 });
10243 #endif
10244 return __rv;
10247 #pragma GCC push_options
10248 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10249 __extension__ extern __inline poly64x1_t
10250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10251 vld1_p64 (const poly64_t * __a)
10253 return (poly64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10256 #pragma GCC pop_options
10257 __extension__ extern __inline int8x8_t
10258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10259 vld1_s8 (const int8_t * __a)
10261 return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10264 __extension__ extern __inline int16x4_t
10265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10266 vld1_s16 (const int16_t * __a)
10268 return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10271 __extension__ extern __inline int32x2_t
10272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10273 vld1_s32 (const int32_t * __a)
10275 return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10278 __extension__ extern __inline int64x1_t
10279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10280 vld1_s64 (const int64_t * __a)
10282 return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10285 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10286 __extension__ extern __inline float16x4_t
10287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10288 vld1_f16 (const float16_t * __a)
10290 return __builtin_neon_vld1v4hf (__a);
10292 #endif
10294 __extension__ extern __inline float32x2_t
10295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10296 vld1_f32 (const float32_t * __a)
10298 return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
10301 __extension__ extern __inline uint8x8_t
10302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10303 vld1_u8 (const uint8_t * __a)
10305 return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10308 __extension__ extern __inline uint16x4_t
10309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10310 vld1_u16 (const uint16_t * __a)
10312 return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10315 __extension__ extern __inline uint32x2_t
10316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10317 vld1_u32 (const uint32_t * __a)
10319 return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10322 __extension__ extern __inline uint64x1_t
10323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10324 vld1_u64 (const uint64_t * __a)
10326 return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
10329 __extension__ extern __inline poly8x8_t
10330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10331 vld1_p8 (const poly8_t * __a)
10333 return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10336 __extension__ extern __inline poly16x4_t
10337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10338 vld1_p16 (const poly16_t * __a)
10340 return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10343 #pragma GCC push_options
10344 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10345 __extension__ extern __inline poly64x2_t
10346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10347 vld1q_p64 (const poly64_t * __a)
10349 return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10352 #pragma GCC pop_options
10353 __extension__ extern __inline int8x16_t
10354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10355 vld1q_s8 (const int8_t * __a)
10357 return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10360 __extension__ extern __inline int16x8_t
10361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10362 vld1q_s16 (const int16_t * __a)
10364 return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10367 __extension__ extern __inline int32x4_t
10368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10369 vld1q_s32 (const int32_t * __a)
10371 return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10374 __extension__ extern __inline int64x2_t
10375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10376 vld1q_s64 (const int64_t * __a)
10378 return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10381 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10382 __extension__ extern __inline float16x8_t
10383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10384 vld1q_f16 (const float16_t * __a)
10386 return __builtin_neon_vld1v8hf (__a);
10388 #endif
10390 __extension__ extern __inline float32x4_t
10391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10392 vld1q_f32 (const float32_t * __a)
10394 return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
10397 __extension__ extern __inline uint8x16_t
10398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10399 vld1q_u8 (const uint8_t * __a)
10401 return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10404 __extension__ extern __inline uint16x8_t
10405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10406 vld1q_u16 (const uint16_t * __a)
10408 return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10411 __extension__ extern __inline uint32x4_t
10412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10413 vld1q_u32 (const uint32_t * __a)
10415 return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10418 __extension__ extern __inline uint64x2_t
10419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10420 vld1q_u64 (const uint64_t * __a)
10422 return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10425 __extension__ extern __inline poly8x16_t
10426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10427 vld1q_p8 (const poly8_t * __a)
10429 return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10432 __extension__ extern __inline poly16x8_t
10433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10434 vld1q_p16 (const poly16_t * __a)
10436 return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10439 __extension__ extern __inline int8x8_t
10440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10441 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
10443 return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
10446 __extension__ extern __inline int16x4_t
10447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10448 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
10450 return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
10453 __extension__ extern __inline int32x2_t
10454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10455 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
10457 return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
10460 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10461 __extension__ extern __inline float16x4_t
10462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10463 vld1_lane_f16 (const float16_t * __a, float16x4_t __b, const int __c)
10465 return vset_lane_f16 (*__a, __b, __c);
10467 #endif
10469 __extension__ extern __inline float32x2_t
10470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10471 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
10473 return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
10476 __extension__ extern __inline uint8x8_t
10477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10478 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
10480 return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10483 __extension__ extern __inline uint16x4_t
10484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10485 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
10487 return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10490 __extension__ extern __inline uint32x2_t
10491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10492 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
10494 return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
10497 __extension__ extern __inline poly8x8_t
10498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10499 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
10501 return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10504 __extension__ extern __inline poly16x4_t
10505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10506 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
10508 return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10511 #pragma GCC push_options
10512 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10513 __extension__ extern __inline poly64x1_t
10514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10515 vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c)
10517 return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10520 #pragma GCC pop_options
10521 __extension__ extern __inline int64x1_t
10522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10523 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
10525 return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10528 __extension__ extern __inline uint64x1_t
10529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10530 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
10532 return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
10535 __extension__ extern __inline int8x16_t
10536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10537 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
10539 return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
10542 __extension__ extern __inline int16x8_t
10543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10544 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
10546 return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
10549 __extension__ extern __inline int32x4_t
10550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10551 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
10553 return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
10556 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10557 __extension__ extern __inline float16x8_t
10558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10559 vld1q_lane_f16 (const float16_t * __a, float16x8_t __b, const int __c)
10561 return vsetq_lane_f16 (*__a, __b, __c);
10563 #endif
10565 __extension__ extern __inline float32x4_t
10566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10567 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
10569 return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
10572 __extension__ extern __inline uint8x16_t
10573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10574 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
10576 return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10579 __extension__ extern __inline uint16x8_t
10580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10581 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
10583 return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10586 __extension__ extern __inline uint32x4_t
10587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10588 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
10590 return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
10593 __extension__ extern __inline poly8x16_t
10594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10595 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
10597 return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10600 __extension__ extern __inline poly16x8_t
10601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10602 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
10604 return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10607 #pragma GCC push_options
10608 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10609 __extension__ extern __inline poly64x2_t
10610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10611 vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c)
10613 return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10616 #pragma GCC pop_options
10617 __extension__ extern __inline int64x2_t
10618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10619 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
10621 return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
10624 __extension__ extern __inline uint64x2_t
10625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10626 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
10628 return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10631 __extension__ extern __inline int8x8_t
10632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10633 vld1_dup_s8 (const int8_t * __a)
10635 return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10638 __extension__ extern __inline int16x4_t
10639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10640 vld1_dup_s16 (const int16_t * __a)
10642 return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10645 __extension__ extern __inline int32x2_t
10646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10647 vld1_dup_s32 (const int32_t * __a)
10649 return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10652 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10653 __extension__ extern __inline float16x4_t
10654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10655 vld1_dup_f16 (const float16_t * __a)
10657 float16_t __f = *__a;
10658 return (float16x4_t) { __f, __f, __f, __f };
10660 #endif
10662 __extension__ extern __inline float32x2_t
10663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10664 vld1_dup_f32 (const float32_t * __a)
10666 return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
10669 __extension__ extern __inline uint8x8_t
10670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10671 vld1_dup_u8 (const uint8_t * __a)
10673 return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10676 __extension__ extern __inline uint16x4_t
10677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10678 vld1_dup_u16 (const uint16_t * __a)
10680 return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10683 __extension__ extern __inline uint32x2_t
10684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10685 vld1_dup_u32 (const uint32_t * __a)
10687 return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10690 __extension__ extern __inline poly8x8_t
10691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10692 vld1_dup_p8 (const poly8_t * __a)
10694 return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10697 __extension__ extern __inline poly16x4_t
10698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10699 vld1_dup_p16 (const poly16_t * __a)
10701 return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10704 #pragma GCC push_options
10705 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10706 __extension__ extern __inline poly64x1_t
10707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10708 vld1_dup_p64 (const poly64_t * __a)
10710 return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10713 #pragma GCC pop_options
10714 __extension__ extern __inline int64x1_t
10715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10716 vld1_dup_s64 (const int64_t * __a)
10718 return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10721 __extension__ extern __inline uint64x1_t
10722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10723 vld1_dup_u64 (const uint64_t * __a)
10725 return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10728 __extension__ extern __inline int8x16_t
10729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10730 vld1q_dup_s8 (const int8_t * __a)
10732 return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10735 __extension__ extern __inline int16x8_t
10736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10737 vld1q_dup_s16 (const int16_t * __a)
10739 return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10742 __extension__ extern __inline int32x4_t
10743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10744 vld1q_dup_s32 (const int32_t * __a)
10746 return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10749 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10750 __extension__ extern __inline float16x8_t
10751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10752 vld1q_dup_f16 (const float16_t * __a)
10754 float16_t __f = *__a;
10755 return (float16x8_t) { __f, __f, __f, __f, __f, __f, __f, __f };
10757 #endif
10759 __extension__ extern __inline float32x4_t
10760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10761 vld1q_dup_f32 (const float32_t * __a)
10763 return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
10766 __extension__ extern __inline uint8x16_t
10767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10768 vld1q_dup_u8 (const uint8_t * __a)
10770 return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10773 __extension__ extern __inline uint16x8_t
10774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10775 vld1q_dup_u16 (const uint16_t * __a)
10777 return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10780 __extension__ extern __inline uint32x4_t
10781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10782 vld1q_dup_u32 (const uint32_t * __a)
10784 return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10787 __extension__ extern __inline poly8x16_t
10788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10789 vld1q_dup_p8 (const poly8_t * __a)
10791 return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10794 __extension__ extern __inline poly16x8_t
10795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10796 vld1q_dup_p16 (const poly16_t * __a)
10798 return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10801 #pragma GCC push_options
10802 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10803 __extension__ extern __inline poly64x2_t
10804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10805 vld1q_dup_p64 (const poly64_t * __a)
10807 return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10810 #pragma GCC pop_options
10811 __extension__ extern __inline int64x2_t
10812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10813 vld1q_dup_s64 (const int64_t * __a)
10815 return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10818 __extension__ extern __inline uint64x2_t
10819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10820 vld1q_dup_u64 (const uint64_t * __a)
10822 return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10825 #pragma GCC push_options
10826 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10827 __extension__ extern __inline void
10828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10829 vst1_p64 (poly64_t * __a, poly64x1_t __b)
10831 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10834 #pragma GCC pop_options
10835 __extension__ extern __inline void
10836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10837 vst1_s8 (int8_t * __a, int8x8_t __b)
10839 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
10842 __extension__ extern __inline void
10843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10844 vst1_s16 (int16_t * __a, int16x4_t __b)
10846 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
10849 __extension__ extern __inline void
10850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10851 vst1_s32 (int32_t * __a, int32x2_t __b)
10853 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
10856 __extension__ extern __inline void
10857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10858 vst1_s64 (int64_t * __a, int64x1_t __b)
10860 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10863 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10864 __extension__ extern __inline void
10865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10866 vst1_f16 (float16_t * __a, float16x4_t __b)
10868 __builtin_neon_vst1v4hf (__a, __b);
10870 #endif
10872 __extension__ extern __inline void
10873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10874 vst1_f32 (float32_t * __a, float32x2_t __b)
10876 __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
10879 __extension__ extern __inline void
10880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10881 vst1_u8 (uint8_t * __a, uint8x8_t __b)
10883 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10886 __extension__ extern __inline void
10887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10888 vst1_u16 (uint16_t * __a, uint16x4_t __b)
10890 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10893 __extension__ extern __inline void
10894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10895 vst1_u32 (uint32_t * __a, uint32x2_t __b)
10897 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
10900 __extension__ extern __inline void
10901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10902 vst1_u64 (uint64_t * __a, uint64x1_t __b)
10904 __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
10907 __extension__ extern __inline void
10908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10909 vst1_p8 (poly8_t * __a, poly8x8_t __b)
10911 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10914 __extension__ extern __inline void
10915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10916 vst1_p16 (poly16_t * __a, poly16x4_t __b)
10918 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10921 #pragma GCC push_options
10922 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10923 __extension__ extern __inline void
10924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10925 vst1q_p64 (poly64_t * __a, poly64x2_t __b)
10927 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
10930 #pragma GCC pop_options
10931 __extension__ extern __inline void
10932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10933 vst1q_s8 (int8_t * __a, int8x16_t __b)
10935 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
10938 __extension__ extern __inline void
10939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10940 vst1q_s16 (int16_t * __a, int16x8_t __b)
10942 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
10945 __extension__ extern __inline void
10946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10947 vst1q_s32 (int32_t * __a, int32x4_t __b)
10949 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
10952 __extension__ extern __inline void
10953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10954 vst1q_s64 (int64_t * __a, int64x2_t __b)
10956 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
10959 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10960 __extension__ extern __inline void
10961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10962 vst1q_f16 (float16_t * __a, float16x8_t __b)
10964 __builtin_neon_vst1v8hf (__a, __b);
10966 #endif
10968 __extension__ extern __inline void
10969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10970 vst1q_f32 (float32_t * __a, float32x4_t __b)
10972 __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
10975 __extension__ extern __inline void
10976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10977 vst1q_u8 (uint8_t * __a, uint8x16_t __b)
10979 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
10982 __extension__ extern __inline void
10983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10984 vst1q_u16 (uint16_t * __a, uint16x8_t __b)
10986 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
10989 __extension__ extern __inline void
10990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10991 vst1q_u32 (uint32_t * __a, uint32x4_t __b)
10993 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
10996 __extension__ extern __inline void
10997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10998 vst1q_u64 (uint64_t * __a, uint64x2_t __b)
11000 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
11003 __extension__ extern __inline void
11004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11005 vst1q_p8 (poly8_t * __a, poly8x16_t __b)
11007 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
11010 __extension__ extern __inline void
11011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11012 vst1q_p16 (poly16_t * __a, poly16x8_t __b)
11014 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
11017 __extension__ extern __inline void
11018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11019 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
11021 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
11024 __extension__ extern __inline void
11025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11026 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
11028 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
11031 __extension__ extern __inline void
11032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11033 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
11035 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
11038 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11039 __extension__ extern __inline void
11040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11041 vst1_lane_f16 (float16_t * __a, float16x4_t __b, const int __c)
11043 __builtin_neon_vst1_lanev4hf (__a, __b, __c);
11045 #endif
11047 __extension__ extern __inline void
11048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11049 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
11051 __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
11054 __extension__ extern __inline void
11055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11056 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
11058 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11061 __extension__ extern __inline void
11062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11063 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
11065 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11068 __extension__ extern __inline void
11069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11070 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
11072 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
11075 __extension__ extern __inline void
11076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11077 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
11079 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11082 __extension__ extern __inline void
11083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11084 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
11086 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11089 #pragma GCC push_options
11090 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11091 __extension__ extern __inline void
11092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11093 vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c)
11095 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11098 #pragma GCC pop_options
11099 __extension__ extern __inline void
11100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11101 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
11103 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11106 __extension__ extern __inline void
11107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11108 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
11110 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
11113 __extension__ extern __inline void
11114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11115 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
11117 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
11120 __extension__ extern __inline void
11121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11122 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
11124 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
11127 __extension__ extern __inline void
11128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11129 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
11131 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
11134 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11135 __extension__ extern __inline void
11136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11137 vst1q_lane_f16 (float16_t * __a, float16x8_t __b, const int __c)
11139 __builtin_neon_vst1_lanev8hf (__a, __b, __c);
11141 #endif
11143 __extension__ extern __inline void
11144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11145 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
11147 __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
11150 __extension__ extern __inline void
11151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11152 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
11154 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11157 __extension__ extern __inline void
11158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11159 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
11161 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11164 __extension__ extern __inline void
11165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11166 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
11168 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
11171 __extension__ extern __inline void
11172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11173 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
11175 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11178 __extension__ extern __inline void
11179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11180 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
11182 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11185 #pragma GCC push_options
11186 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11187 __extension__ extern __inline void
11188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11189 vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c)
11191 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11194 #pragma GCC pop_options
11195 __extension__ extern __inline void
11196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11197 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
11199 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
11202 __extension__ extern __inline void
11203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11204 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
11206 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11209 __extension__ extern __inline int8x8x2_t
11210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11211 vld2_s8 (const int8_t * __a)
11213 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11214 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11215 return __rv.__i;
11218 __extension__ extern __inline int16x4x2_t
11219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11220 vld2_s16 (const int16_t * __a)
11222 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11223 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11224 return __rv.__i;
11227 __extension__ extern __inline int32x2x2_t
11228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11229 vld2_s32 (const int32_t * __a)
11231 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11232 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11233 return __rv.__i;
11236 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11237 __extension__ extern __inline float16x4x2_t
11238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11239 vld2_f16 (const float16_t * __a)
11241 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11242 __rv.__o = __builtin_neon_vld2v4hf (__a);
11243 return __rv.__i;
11245 #endif
11247 __extension__ extern __inline float32x2x2_t
11248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11249 vld2_f32 (const float32_t * __a)
11251 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11252 __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
11253 return __rv.__i;
11256 __extension__ extern __inline uint8x8x2_t
11257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11258 vld2_u8 (const uint8_t * __a)
11260 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11261 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11262 return __rv.__i;
11265 __extension__ extern __inline uint16x4x2_t
11266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11267 vld2_u16 (const uint16_t * __a)
11269 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11270 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11271 return __rv.__i;
11274 __extension__ extern __inline uint32x2x2_t
11275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11276 vld2_u32 (const uint32_t * __a)
11278 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11279 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11280 return __rv.__i;
11283 __extension__ extern __inline poly8x8x2_t
11284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11285 vld2_p8 (const poly8_t * __a)
11287 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11288 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11289 return __rv.__i;
11292 __extension__ extern __inline poly16x4x2_t
11293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11294 vld2_p16 (const poly16_t * __a)
11296 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11297 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11298 return __rv.__i;
11301 #pragma GCC push_options
11302 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11303 __extension__ extern __inline poly64x1x2_t
11304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11305 vld2_p64 (const poly64_t * __a)
11307 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11308 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11309 return __rv.__i;
11312 #pragma GCC pop_options
11313 __extension__ extern __inline int64x1x2_t
11314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11315 vld2_s64 (const int64_t * __a)
11317 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11318 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11319 return __rv.__i;
11322 __extension__ extern __inline uint64x1x2_t
11323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11324 vld2_u64 (const uint64_t * __a)
11326 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11327 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11328 return __rv.__i;
11331 __extension__ extern __inline int8x16x2_t
11332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11333 vld2q_s8 (const int8_t * __a)
11335 union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11336 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11337 return __rv.__i;
11340 __extension__ extern __inline int16x8x2_t
11341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11342 vld2q_s16 (const int16_t * __a)
11344 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11345 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11346 return __rv.__i;
11349 __extension__ extern __inline int32x4x2_t
11350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11351 vld2q_s32 (const int32_t * __a)
11353 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11354 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11355 return __rv.__i;
11358 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11359 __extension__ extern __inline float16x8x2_t
11360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11361 vld2q_f16 (const float16_t * __a)
11363 union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11364 __rv.__o = __builtin_neon_vld2v8hf (__a);
11365 return __rv.__i;
11367 #endif
11369 __extension__ extern __inline float32x4x2_t
11370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11371 vld2q_f32 (const float32_t * __a)
11373 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11374 __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
11375 return __rv.__i;
11378 __extension__ extern __inline uint8x16x2_t
11379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11380 vld2q_u8 (const uint8_t * __a)
11382 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11383 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11384 return __rv.__i;
11387 __extension__ extern __inline uint16x8x2_t
11388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11389 vld2q_u16 (const uint16_t * __a)
11391 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11392 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11393 return __rv.__i;
11396 __extension__ extern __inline uint32x4x2_t
11397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11398 vld2q_u32 (const uint32_t * __a)
11400 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11401 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11402 return __rv.__i;
11405 __extension__ extern __inline poly8x16x2_t
11406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11407 vld2q_p8 (const poly8_t * __a)
11409 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11410 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11411 return __rv.__i;
11414 __extension__ extern __inline poly16x8x2_t
11415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11416 vld2q_p16 (const poly16_t * __a)
11418 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11419 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11420 return __rv.__i;
11423 __extension__ extern __inline int8x8x2_t
11424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11425 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
11427 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11428 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11429 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11430 return __rv.__i;
11433 __extension__ extern __inline int16x4x2_t
11434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11435 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
11437 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11438 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11439 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11440 return __rv.__i;
11443 __extension__ extern __inline int32x2x2_t
11444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11445 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
11447 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11448 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11449 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11450 return __rv.__i;
11453 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11454 __extension__ extern __inline float16x4x2_t
11455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11456 vld2_lane_f16 (const float16_t * __a, float16x4x2_t __b, const int __c)
11458 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11459 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11460 __rv.__o = __builtin_neon_vld2_lanev4hf ( __a, __bu.__o, __c);
11461 return __rv.__i;
11463 #endif
11465 __extension__ extern __inline float32x2x2_t
11466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11467 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
11469 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11470 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11471 __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11472 return __rv.__i;
11475 __extension__ extern __inline uint8x8x2_t
11476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11477 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
11479 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11480 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11481 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11482 return __rv.__i;
11485 __extension__ extern __inline uint16x4x2_t
11486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11487 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
11489 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11490 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11491 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11492 return __rv.__i;
11495 __extension__ extern __inline uint32x2x2_t
11496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11497 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
11499 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11500 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11501 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11502 return __rv.__i;
11505 __extension__ extern __inline poly8x8x2_t
11506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11507 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
11509 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11510 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11511 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11512 return __rv.__i;
11515 __extension__ extern __inline poly16x4x2_t
11516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11517 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
11519 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11520 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11521 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11522 return __rv.__i;
11525 __extension__ extern __inline int16x8x2_t
11526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11527 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
11529 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11530 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11531 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11532 return __rv.__i;
11535 __extension__ extern __inline int32x4x2_t
11536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11537 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
11539 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11540 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11541 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11542 return __rv.__i;
11545 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11546 __extension__ extern __inline float16x8x2_t
11547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11548 vld2q_lane_f16 (const float16_t * __a, float16x8x2_t __b, const int __c)
11550 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11551 union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11552 __rv.__o = __builtin_neon_vld2_lanev8hf (__a, __bu.__o, __c);
11553 return __rv.__i;
11555 #endif
11557 __extension__ extern __inline float32x4x2_t
11558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11559 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
11561 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11562 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11563 __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11564 return __rv.__i;
11567 __extension__ extern __inline uint16x8x2_t
11568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11569 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
11571 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11572 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11573 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11574 return __rv.__i;
11577 __extension__ extern __inline uint32x4x2_t
11578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11579 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
11581 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11582 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11583 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11584 return __rv.__i;
11587 __extension__ extern __inline poly16x8x2_t
11588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11589 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
11591 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11592 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11593 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11594 return __rv.__i;
11597 __extension__ extern __inline int8x8x2_t
11598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11599 vld2_dup_s8 (const int8_t * __a)
11601 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11602 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11603 return __rv.__i;
11606 __extension__ extern __inline int16x4x2_t
11607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11608 vld2_dup_s16 (const int16_t * __a)
11610 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11611 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11612 return __rv.__i;
11615 __extension__ extern __inline int32x2x2_t
11616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11617 vld2_dup_s32 (const int32_t * __a)
11619 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11620 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11621 return __rv.__i;
11624 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11625 __extension__ extern __inline float16x4x2_t
11626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11627 vld2_dup_f16 (const float16_t * __a)
11629 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11630 __rv.__o = __builtin_neon_vld2_dupv4hf (__a);
11631 return __rv.__i;
11633 #endif
11635 __extension__ extern __inline float32x2x2_t
11636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11637 vld2_dup_f32 (const float32_t * __a)
11639 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11640 __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
11641 return __rv.__i;
11644 __extension__ extern __inline uint8x8x2_t
11645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11646 vld2_dup_u8 (const uint8_t * __a)
11648 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11649 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11650 return __rv.__i;
11653 __extension__ extern __inline uint16x4x2_t
11654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11655 vld2_dup_u16 (const uint16_t * __a)
11657 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11658 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11659 return __rv.__i;
11662 __extension__ extern __inline uint32x2x2_t
11663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11664 vld2_dup_u32 (const uint32_t * __a)
11666 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11667 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11668 return __rv.__i;
11671 __extension__ extern __inline poly8x8x2_t
11672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11673 vld2_dup_p8 (const poly8_t * __a)
11675 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11676 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11677 return __rv.__i;
11680 __extension__ extern __inline poly16x4x2_t
11681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11682 vld2_dup_p16 (const poly16_t * __a)
11684 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11685 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11686 return __rv.__i;
11689 #pragma GCC push_options
11690 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11691 __extension__ extern __inline poly64x1x2_t
11692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11693 vld2_dup_p64 (const poly64_t * __a)
11695 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11696 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11697 return __rv.__i;
11700 #pragma GCC pop_options
11701 __extension__ extern __inline int64x1x2_t
11702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11703 vld2_dup_s64 (const int64_t * __a)
11705 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11706 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11707 return __rv.__i;
11710 __extension__ extern __inline uint64x1x2_t
11711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11712 vld2_dup_u64 (const uint64_t * __a)
11714 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11715 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11716 return __rv.__i;
11719 __extension__ extern __inline void
11720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11721 vst2_s8 (int8_t * __a, int8x8x2_t __b)
11723 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11724 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11727 __extension__ extern __inline void
11728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11729 vst2_s16 (int16_t * __a, int16x4x2_t __b)
11731 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11732 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11735 __extension__ extern __inline void
11736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11737 vst2_s32 (int32_t * __a, int32x2x2_t __b)
11739 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11740 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11743 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11744 __extension__ extern __inline void
11745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11746 vst2_f16 (float16_t * __a, float16x4x2_t __b)
11748 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11749 __builtin_neon_vst2v4hf (__a, __bu.__o);
11751 #endif
11753 __extension__ extern __inline void
11754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11755 vst2_f32 (float32_t * __a, float32x2x2_t __b)
11757 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11758 __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
11761 __extension__ extern __inline void
11762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11763 vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
11765 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11766 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11769 __extension__ extern __inline void
11770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11771 vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
11773 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11774 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11777 __extension__ extern __inline void
11778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11779 vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
11781 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11782 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11785 __extension__ extern __inline void
11786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11787 vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
11789 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11790 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11793 __extension__ extern __inline void
11794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11795 vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
11797 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11798 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11801 #pragma GCC push_options
11802 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11803 __extension__ extern __inline void
11804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11805 vst2_p64 (poly64_t * __a, poly64x1x2_t __b)
11807 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11808 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11811 #pragma GCC pop_options
11812 __extension__ extern __inline void
11813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11814 vst2_s64 (int64_t * __a, int64x1x2_t __b)
11816 union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11817 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11820 __extension__ extern __inline void
11821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11822 vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
11824 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11825 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11828 __extension__ extern __inline void
11829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11830 vst2q_s8 (int8_t * __a, int8x16x2_t __b)
11832 union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11833 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11836 __extension__ extern __inline void
11837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11838 vst2q_s16 (int16_t * __a, int16x8x2_t __b)
11840 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11841 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11844 __extension__ extern __inline void
11845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11846 vst2q_s32 (int32_t * __a, int32x4x2_t __b)
11848 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11849 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11852 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11853 __extension__ extern __inline void
11854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11855 vst2q_f16 (float16_t * __a, float16x8x2_t __b)
11857 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11858 __builtin_neon_vst2v8hf (__a, __bu.__o);
11860 #endif
11862 __extension__ extern __inline void
11863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11864 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
11866 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11867 __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
11870 __extension__ extern __inline void
11871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11872 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
11874 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11875 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11878 __extension__ extern __inline void
11879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11880 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
11882 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11883 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11886 __extension__ extern __inline void
11887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11888 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
11890 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11891 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11894 __extension__ extern __inline void
11895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11896 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
11898 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11899 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11902 __extension__ extern __inline void
11903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11904 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
11906 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11907 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11910 __extension__ extern __inline void
11911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11912 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
11914 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11915 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11918 __extension__ extern __inline void
11919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11920 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
11922 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11923 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11926 __extension__ extern __inline void
11927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11928 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
11930 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11931 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11934 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11935 __extension__ extern __inline void
11936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11937 vst2_lane_f16 (float16_t * __a, float16x4x2_t __b, const int __c)
11939 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11940 __builtin_neon_vst2_lanev4hf (__a, __bu.__o, __c);
11942 #endif
11944 __extension__ extern __inline void
11945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11946 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
11948 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11949 __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
11952 __extension__ extern __inline void
11953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11954 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
11956 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11957 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11960 __extension__ extern __inline void
11961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11962 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
11964 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11965 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11968 __extension__ extern __inline void
11969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11970 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
11972 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11973 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11976 __extension__ extern __inline void
11977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11978 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
11980 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11981 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11984 __extension__ extern __inline void
11985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11986 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
11988 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11989 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11992 __extension__ extern __inline void
11993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11994 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
11996 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11997 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12000 __extension__ extern __inline void
12001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12002 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
12004 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12005 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12008 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12009 __extension__ extern __inline void
12010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12011 vst2q_lane_f16 (float16_t * __a, float16x8x2_t __b, const int __c)
12013 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12014 __builtin_neon_vst2_lanev8hf (__a, __bu.__o, __c);
12016 #endif
12018 __extension__ extern __inline void
12019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12020 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
12022 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12023 __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12026 __extension__ extern __inline void
12027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12028 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
12030 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12031 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12034 __extension__ extern __inline void
12035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12036 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
12038 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12039 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12042 __extension__ extern __inline void
12043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12044 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
12046 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12047 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12050 __extension__ extern __inline int8x8x3_t
12051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12052 vld3_s8 (const int8_t * __a)
12054 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12055 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12056 return __rv.__i;
12059 __extension__ extern __inline int16x4x3_t
12060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12061 vld3_s16 (const int16_t * __a)
12063 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12064 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12065 return __rv.__i;
12068 __extension__ extern __inline int32x2x3_t
12069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12070 vld3_s32 (const int32_t * __a)
12072 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12073 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12074 return __rv.__i;
12077 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12078 __extension__ extern __inline float16x4x3_t
12079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12080 vld3_f16 (const float16_t * __a)
12082 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12083 __rv.__o = __builtin_neon_vld3v4hf (__a);
12084 return __rv.__i;
12086 #endif
12088 __extension__ extern __inline float32x2x3_t
12089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12090 vld3_f32 (const float32_t * __a)
12092 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12093 __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
12094 return __rv.__i;
12097 __extension__ extern __inline uint8x8x3_t
12098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12099 vld3_u8 (const uint8_t * __a)
12101 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12102 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12103 return __rv.__i;
12106 __extension__ extern __inline uint16x4x3_t
12107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12108 vld3_u16 (const uint16_t * __a)
12110 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12111 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12112 return __rv.__i;
12115 __extension__ extern __inline uint32x2x3_t
12116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12117 vld3_u32 (const uint32_t * __a)
12119 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12120 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12121 return __rv.__i;
12124 __extension__ extern __inline poly8x8x3_t
12125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12126 vld3_p8 (const poly8_t * __a)
12128 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12129 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12130 return __rv.__i;
12133 __extension__ extern __inline poly16x4x3_t
12134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12135 vld3_p16 (const poly16_t * __a)
12137 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12138 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12139 return __rv.__i;
12142 #pragma GCC push_options
12143 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12144 __extension__ extern __inline poly64x1x3_t
12145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12146 vld3_p64 (const poly64_t * __a)
12148 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12149 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12150 return __rv.__i;
12153 #pragma GCC pop_options
12154 __extension__ extern __inline int64x1x3_t
12155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12156 vld3_s64 (const int64_t * __a)
12158 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12159 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12160 return __rv.__i;
12163 __extension__ extern __inline uint64x1x3_t
12164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12165 vld3_u64 (const uint64_t * __a)
12167 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12168 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12169 return __rv.__i;
12172 __extension__ extern __inline int8x16x3_t
12173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12174 vld3q_s8 (const int8_t * __a)
12176 union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12177 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12178 return __rv.__i;
12181 __extension__ extern __inline int16x8x3_t
12182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12183 vld3q_s16 (const int16_t * __a)
12185 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12186 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12187 return __rv.__i;
12190 __extension__ extern __inline int32x4x3_t
12191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12192 vld3q_s32 (const int32_t * __a)
12194 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12195 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12196 return __rv.__i;
12199 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12200 __extension__ extern __inline float16x8x3_t
12201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12202 vld3q_f16 (const float16_t * __a)
12204 union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12205 __rv.__o = __builtin_neon_vld3v8hf (__a);
12206 return __rv.__i;
12208 #endif
12210 __extension__ extern __inline float32x4x3_t
12211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12212 vld3q_f32 (const float32_t * __a)
12214 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12215 __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
12216 return __rv.__i;
12219 __extension__ extern __inline uint8x16x3_t
12220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12221 vld3q_u8 (const uint8_t * __a)
12223 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12224 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12225 return __rv.__i;
12228 __extension__ extern __inline uint16x8x3_t
12229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12230 vld3q_u16 (const uint16_t * __a)
12232 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12233 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12234 return __rv.__i;
12237 __extension__ extern __inline uint32x4x3_t
12238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12239 vld3q_u32 (const uint32_t * __a)
12241 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12242 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12243 return __rv.__i;
12246 __extension__ extern __inline poly8x16x3_t
12247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12248 vld3q_p8 (const poly8_t * __a)
12250 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12251 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12252 return __rv.__i;
12255 __extension__ extern __inline poly16x8x3_t
12256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12257 vld3q_p16 (const poly16_t * __a)
12259 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12260 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12261 return __rv.__i;
12264 __extension__ extern __inline int8x8x3_t
12265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12266 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
12268 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12269 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12270 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12271 return __rv.__i;
12274 __extension__ extern __inline int16x4x3_t
12275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12276 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
12278 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12279 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12280 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12281 return __rv.__i;
12284 __extension__ extern __inline int32x2x3_t
12285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12286 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
12288 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12289 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12290 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12291 return __rv.__i;
12294 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12295 __extension__ extern __inline float16x4x3_t
12296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12297 vld3_lane_f16 (const float16_t * __a, float16x4x3_t __b, const int __c)
12299 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12300 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12301 __rv.__o = __builtin_neon_vld3_lanev4hf (__a, __bu.__o, __c);
12302 return __rv.__i;
12304 #endif
12306 __extension__ extern __inline float32x2x3_t
12307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12308 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
12310 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12311 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12312 __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12313 return __rv.__i;
12316 __extension__ extern __inline uint8x8x3_t
12317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12318 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
12320 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12321 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12322 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12323 return __rv.__i;
12326 __extension__ extern __inline uint16x4x3_t
12327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12328 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
12330 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12331 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12332 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12333 return __rv.__i;
12336 __extension__ extern __inline uint32x2x3_t
12337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12338 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
12340 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12341 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12342 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12343 return __rv.__i;
12346 __extension__ extern __inline poly8x8x3_t
12347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12348 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
12350 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12351 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12352 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12353 return __rv.__i;
12356 __extension__ extern __inline poly16x4x3_t
12357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12358 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
12360 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12361 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12362 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12363 return __rv.__i;
12366 __extension__ extern __inline int16x8x3_t
12367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12368 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
12370 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12371 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12372 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12373 return __rv.__i;
12376 __extension__ extern __inline int32x4x3_t
12377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12378 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
12380 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12381 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12382 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12383 return __rv.__i;
12386 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12387 __extension__ extern __inline float16x8x3_t
12388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12389 vld3q_lane_f16 (const float16_t * __a, float16x8x3_t __b, const int __c)
12391 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12392 union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12393 __rv.__o = __builtin_neon_vld3_lanev8hf (__a, __bu.__o, __c);
12394 return __rv.__i;
12396 #endif
12398 __extension__ extern __inline float32x4x3_t
12399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12400 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
12402 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12403 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12404 __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12405 return __rv.__i;
12408 __extension__ extern __inline uint16x8x3_t
12409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12410 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
12412 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12413 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12414 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12415 return __rv.__i;
12418 __extension__ extern __inline uint32x4x3_t
12419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12420 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
12422 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12423 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12424 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12425 return __rv.__i;
12428 __extension__ extern __inline poly16x8x3_t
12429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12430 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
12432 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12433 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12434 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12435 return __rv.__i;
12438 __extension__ extern __inline int8x8x3_t
12439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12440 vld3_dup_s8 (const int8_t * __a)
12442 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12443 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12444 return __rv.__i;
12447 __extension__ extern __inline int16x4x3_t
12448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12449 vld3_dup_s16 (const int16_t * __a)
12451 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12452 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12453 return __rv.__i;
12456 __extension__ extern __inline int32x2x3_t
12457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12458 vld3_dup_s32 (const int32_t * __a)
12460 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12461 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12462 return __rv.__i;
12465 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12466 __extension__ extern __inline float16x4x3_t
12467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12468 vld3_dup_f16 (const float16_t * __a)
12470 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12471 __rv.__o = __builtin_neon_vld3_dupv4hf (__a);
12472 return __rv.__i;
12474 #endif
12476 __extension__ extern __inline float32x2x3_t
12477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12478 vld3_dup_f32 (const float32_t * __a)
12480 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12481 __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
12482 return __rv.__i;
12485 __extension__ extern __inline uint8x8x3_t
12486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12487 vld3_dup_u8 (const uint8_t * __a)
12489 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12490 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12491 return __rv.__i;
12494 __extension__ extern __inline uint16x4x3_t
12495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12496 vld3_dup_u16 (const uint16_t * __a)
12498 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12499 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12500 return __rv.__i;
12503 __extension__ extern __inline uint32x2x3_t
12504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12505 vld3_dup_u32 (const uint32_t * __a)
12507 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12508 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12509 return __rv.__i;
12512 __extension__ extern __inline poly8x8x3_t
12513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12514 vld3_dup_p8 (const poly8_t * __a)
12516 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12517 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12518 return __rv.__i;
12521 __extension__ extern __inline poly16x4x3_t
12522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12523 vld3_dup_p16 (const poly16_t * __a)
12525 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12526 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12527 return __rv.__i;
12530 #pragma GCC push_options
12531 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12532 __extension__ extern __inline poly64x1x3_t
12533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12534 vld3_dup_p64 (const poly64_t * __a)
12536 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12537 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12538 return __rv.__i;
12541 #pragma GCC pop_options
12542 __extension__ extern __inline int64x1x3_t
12543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12544 vld3_dup_s64 (const int64_t * __a)
12546 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12547 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12548 return __rv.__i;
12551 __extension__ extern __inline uint64x1x3_t
12552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12553 vld3_dup_u64 (const uint64_t * __a)
12555 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12556 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12557 return __rv.__i;
12560 __extension__ extern __inline void
12561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12562 vst3_s8 (int8_t * __a, int8x8x3_t __b)
12564 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12565 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12568 __extension__ extern __inline void
12569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12570 vst3_s16 (int16_t * __a, int16x4x3_t __b)
12572 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12573 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12576 __extension__ extern __inline void
12577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12578 vst3_s32 (int32_t * __a, int32x2x3_t __b)
12580 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12581 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12584 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12585 __extension__ extern __inline void
12586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12587 vst3_f16 (float16_t * __a, float16x4x3_t __b)
12589 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12590 __builtin_neon_vst3v4hf (__a, __bu.__o);
12592 #endif
12594 __extension__ extern __inline void
12595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12596 vst3_f32 (float32_t * __a, float32x2x3_t __b)
12598 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12599 __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
12602 __extension__ extern __inline void
12603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12604 vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
12606 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12607 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12610 __extension__ extern __inline void
12611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12612 vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
12614 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12615 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12618 __extension__ extern __inline void
12619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12620 vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
12622 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12623 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12626 __extension__ extern __inline void
12627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12628 vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
12630 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12631 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12634 __extension__ extern __inline void
12635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12636 vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
12638 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12639 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12642 #pragma GCC push_options
12643 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12644 __extension__ extern __inline void
12645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12646 vst3_p64 (poly64_t * __a, poly64x1x3_t __b)
12648 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12649 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12652 #pragma GCC pop_options
12653 __extension__ extern __inline void
12654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12655 vst3_s64 (int64_t * __a, int64x1x3_t __b)
12657 union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12658 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12661 __extension__ extern __inline void
12662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12663 vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
12665 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12666 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12669 __extension__ extern __inline void
12670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12671 vst3q_s8 (int8_t * __a, int8x16x3_t __b)
12673 union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12674 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12677 __extension__ extern __inline void
12678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12679 vst3q_s16 (int16_t * __a, int16x8x3_t __b)
12681 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12682 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12685 __extension__ extern __inline void
12686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12687 vst3q_s32 (int32_t * __a, int32x4x3_t __b)
12689 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12690 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12693 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12694 __extension__ extern __inline void
12695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12696 vst3q_f16 (float16_t * __a, float16x8x3_t __b)
12698 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12699 __builtin_neon_vst3v8hf (__a, __bu.__o);
12701 #endif
12703 __extension__ extern __inline void
12704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12705 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
12707 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12708 __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
12711 __extension__ extern __inline void
12712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12713 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
12715 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12716 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12719 __extension__ extern __inline void
12720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12721 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
12723 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12724 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12727 __extension__ extern __inline void
12728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12729 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
12731 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12732 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12735 __extension__ extern __inline void
12736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12737 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
12739 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12740 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12743 __extension__ extern __inline void
12744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12745 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
12747 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12748 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12751 __extension__ extern __inline void
12752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12753 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
12755 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12756 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12759 __extension__ extern __inline void
12760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12761 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
12763 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12764 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12767 __extension__ extern __inline void
12768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12769 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
12771 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12772 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12775 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12776 __extension__ extern __inline void
12777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12778 vst3_lane_f16 (float16_t * __a, float16x4x3_t __b, const int __c)
12780 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12781 __builtin_neon_vst3_lanev4hf (__a, __bu.__o, __c);
12783 #endif
12785 __extension__ extern __inline void
12786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12787 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
12789 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12790 __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12793 __extension__ extern __inline void
12794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12795 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
12797 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12798 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12801 __extension__ extern __inline void
12802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12803 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
12805 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12806 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12809 __extension__ extern __inline void
12810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12811 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
12813 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12814 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12817 __extension__ extern __inline void
12818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12819 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
12821 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12822 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12825 __extension__ extern __inline void
12826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12827 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
12829 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12830 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12833 __extension__ extern __inline void
12834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12835 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
12837 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12838 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12841 __extension__ extern __inline void
12842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12843 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
12845 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12846 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12849 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12850 __extension__ extern __inline void
12851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12852 vst3q_lane_f16 (float16_t * __a, float16x8x3_t __b, const int __c)
12854 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12855 __builtin_neon_vst3_lanev8hf (__a, __bu.__o, __c);
12857 #endif
12859 __extension__ extern __inline void
12860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12861 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
12863 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12864 __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12867 __extension__ extern __inline void
12868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12869 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
12871 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12872 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12875 __extension__ extern __inline void
12876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12877 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
12879 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12880 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12883 __extension__ extern __inline void
12884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12885 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
12887 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12888 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12891 __extension__ extern __inline int8x8x4_t
12892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12893 vld4_s8 (const int8_t * __a)
12895 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12896 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12897 return __rv.__i;
12900 __extension__ extern __inline int16x4x4_t
12901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12902 vld4_s16 (const int16_t * __a)
12904 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12905 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12906 return __rv.__i;
12909 __extension__ extern __inline int32x2x4_t
12910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12911 vld4_s32 (const int32_t * __a)
12913 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12914 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12915 return __rv.__i;
12918 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12919 __extension__ extern __inline float16x4x4_t
12920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12921 vld4_f16 (const float16_t * __a)
12923 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12924 __rv.__o = __builtin_neon_vld4v4hf (__a);
12925 return __rv.__i;
12927 #endif
12929 __extension__ extern __inline float32x2x4_t
12930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12931 vld4_f32 (const float32_t * __a)
12933 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12934 __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
12935 return __rv.__i;
12938 __extension__ extern __inline uint8x8x4_t
12939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12940 vld4_u8 (const uint8_t * __a)
12942 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12943 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12944 return __rv.__i;
12947 __extension__ extern __inline uint16x4x4_t
12948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12949 vld4_u16 (const uint16_t * __a)
12951 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12952 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12953 return __rv.__i;
12956 __extension__ extern __inline uint32x2x4_t
12957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12958 vld4_u32 (const uint32_t * __a)
12960 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12961 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12962 return __rv.__i;
12965 __extension__ extern __inline poly8x8x4_t
12966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12967 vld4_p8 (const poly8_t * __a)
12969 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12970 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12971 return __rv.__i;
12974 __extension__ extern __inline poly16x4x4_t
12975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12976 vld4_p16 (const poly16_t * __a)
12978 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12979 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12980 return __rv.__i;
12983 #pragma GCC push_options
12984 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12985 __extension__ extern __inline poly64x1x4_t
12986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12987 vld4_p64 (const poly64_t * __a)
12989 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
12990 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
12991 return __rv.__i;
12994 #pragma GCC pop_options
12995 __extension__ extern __inline int64x1x4_t
12996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12997 vld4_s64 (const int64_t * __a)
12999 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13000 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13001 return __rv.__i;
13004 __extension__ extern __inline uint64x1x4_t
13005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13006 vld4_u64 (const uint64_t * __a)
13008 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13009 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13010 return __rv.__i;
13013 __extension__ extern __inline int8x16x4_t
13014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13015 vld4q_s8 (const int8_t * __a)
13017 union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13018 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13019 return __rv.__i;
13022 __extension__ extern __inline int16x8x4_t
13023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13024 vld4q_s16 (const int16_t * __a)
13026 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13027 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13028 return __rv.__i;
13031 __extension__ extern __inline int32x4x4_t
13032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13033 vld4q_s32 (const int32_t * __a)
13035 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13036 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13037 return __rv.__i;
13040 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13041 __extension__ extern __inline float16x8x4_t
13042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13043 vld4q_f16 (const float16_t * __a)
13045 union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13046 __rv.__o = __builtin_neon_vld4v8hf (__a);
13047 return __rv.__i;
13049 #endif
13051 __extension__ extern __inline float32x4x4_t
13052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13053 vld4q_f32 (const float32_t * __a)
13055 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13056 __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
13057 return __rv.__i;
13060 __extension__ extern __inline uint8x16x4_t
13061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13062 vld4q_u8 (const uint8_t * __a)
13064 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13065 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13066 return __rv.__i;
13069 __extension__ extern __inline uint16x8x4_t
13070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13071 vld4q_u16 (const uint16_t * __a)
13073 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13074 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13075 return __rv.__i;
13078 __extension__ extern __inline uint32x4x4_t
13079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13080 vld4q_u32 (const uint32_t * __a)
13082 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13083 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13084 return __rv.__i;
13087 __extension__ extern __inline poly8x16x4_t
13088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13089 vld4q_p8 (const poly8_t * __a)
13091 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13092 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13093 return __rv.__i;
13096 __extension__ extern __inline poly16x8x4_t
13097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13098 vld4q_p16 (const poly16_t * __a)
13100 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13101 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13102 return __rv.__i;
13105 __extension__ extern __inline int8x8x4_t
13106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13107 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
13109 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13110 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13111 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13112 return __rv.__i;
13115 __extension__ extern __inline int16x4x4_t
13116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13117 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
13119 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13120 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13121 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13122 return __rv.__i;
13125 __extension__ extern __inline int32x2x4_t
13126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13127 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
13129 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13130 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13131 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13132 return __rv.__i;
13135 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13136 __extension__ extern __inline float16x4x4_t
13137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13138 vld4_lane_f16 (const float16_t * __a, float16x4x4_t __b, const int __c)
13140 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13141 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13142 __rv.__o = __builtin_neon_vld4_lanev4hf (__a,
13143 __bu.__o, __c);
13144 return __rv.__i;
13146 #endif
13148 __extension__ extern __inline float32x2x4_t
13149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13150 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
13152 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13153 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13154 __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13155 return __rv.__i;
13158 __extension__ extern __inline uint8x8x4_t
13159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13160 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
13162 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13163 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13164 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13165 return __rv.__i;
13168 __extension__ extern __inline uint16x4x4_t
13169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13170 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
13172 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13173 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13174 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13175 return __rv.__i;
13178 __extension__ extern __inline uint32x2x4_t
13179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13180 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
13182 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13183 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13184 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13185 return __rv.__i;
13188 __extension__ extern __inline poly8x8x4_t
13189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13190 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
13192 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13193 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13194 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13195 return __rv.__i;
13198 __extension__ extern __inline poly16x4x4_t
13199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13200 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
13202 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13203 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13204 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13205 return __rv.__i;
13208 __extension__ extern __inline int16x8x4_t
13209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13210 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
13212 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13213 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13214 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13215 return __rv.__i;
13218 __extension__ extern __inline int32x4x4_t
13219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13220 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
13222 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13223 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13224 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13225 return __rv.__i;
13228 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13229 __extension__ extern __inline float16x8x4_t
13230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13231 vld4q_lane_f16 (const float16_t * __a, float16x8x4_t __b, const int __c)
13233 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13234 union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13235 __rv.__o = __builtin_neon_vld4_lanev8hf (__a,
13236 __bu.__o, __c);
13237 return __rv.__i;
13239 #endif
13241 __extension__ extern __inline float32x4x4_t
13242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13243 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
13245 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13246 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13247 __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13248 return __rv.__i;
13251 __extension__ extern __inline uint16x8x4_t
13252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13253 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
13255 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13256 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13257 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13258 return __rv.__i;
13261 __extension__ extern __inline uint32x4x4_t
13262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13263 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
13265 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13266 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13267 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13268 return __rv.__i;
13271 __extension__ extern __inline poly16x8x4_t
13272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13273 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
13275 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13276 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13277 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13278 return __rv.__i;
13281 __extension__ extern __inline int8x8x4_t
13282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13283 vld4_dup_s8 (const int8_t * __a)
13285 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13286 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13287 return __rv.__i;
13290 __extension__ extern __inline int16x4x4_t
13291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13292 vld4_dup_s16 (const int16_t * __a)
13294 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13295 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13296 return __rv.__i;
13299 __extension__ extern __inline int32x2x4_t
13300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13301 vld4_dup_s32 (const int32_t * __a)
13303 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13304 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13305 return __rv.__i;
13308 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13309 __extension__ extern __inline float16x4x4_t
13310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13311 vld4_dup_f16 (const float16_t * __a)
13313 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13314 __rv.__o = __builtin_neon_vld4_dupv4hf (__a);
13315 return __rv.__i;
13317 #endif
13319 __extension__ extern __inline float32x2x4_t
13320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13321 vld4_dup_f32 (const float32_t * __a)
13323 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13324 __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
13325 return __rv.__i;
13328 __extension__ extern __inline uint8x8x4_t
13329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13330 vld4_dup_u8 (const uint8_t * __a)
13332 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13333 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13334 return __rv.__i;
13337 __extension__ extern __inline uint16x4x4_t
13338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13339 vld4_dup_u16 (const uint16_t * __a)
13341 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13342 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13343 return __rv.__i;
13346 __extension__ extern __inline uint32x2x4_t
13347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13348 vld4_dup_u32 (const uint32_t * __a)
13350 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13351 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13352 return __rv.__i;
13355 __extension__ extern __inline poly8x8x4_t
13356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13357 vld4_dup_p8 (const poly8_t * __a)
13359 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13360 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13361 return __rv.__i;
13364 __extension__ extern __inline poly16x4x4_t
13365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13366 vld4_dup_p16 (const poly16_t * __a)
13368 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13369 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13370 return __rv.__i;
13373 #pragma GCC push_options
13374 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13375 __extension__ extern __inline poly64x1x4_t
13376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13377 vld4_dup_p64 (const poly64_t * __a)
13379 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13380 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13381 return __rv.__i;
13384 #pragma GCC pop_options
13385 __extension__ extern __inline int64x1x4_t
13386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13387 vld4_dup_s64 (const int64_t * __a)
13389 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13390 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13391 return __rv.__i;
13394 __extension__ extern __inline uint64x1x4_t
13395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13396 vld4_dup_u64 (const uint64_t * __a)
13398 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13399 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13400 return __rv.__i;
13403 __extension__ extern __inline void
13404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13405 vst4_s8 (int8_t * __a, int8x8x4_t __b)
13407 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13408 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13411 __extension__ extern __inline void
13412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13413 vst4_s16 (int16_t * __a, int16x4x4_t __b)
13415 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13416 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13419 __extension__ extern __inline void
13420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13421 vst4_s32 (int32_t * __a, int32x2x4_t __b)
13423 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13424 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13427 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13428 __extension__ extern __inline void
13429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13430 vst4_f16 (float16_t * __a, float16x4x4_t __b)
13432 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13433 __builtin_neon_vst4v4hf (__a, __bu.__o);
13435 #endif
13437 __extension__ extern __inline void
13438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13439 vst4_f32 (float32_t * __a, float32x2x4_t __b)
13441 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13442 __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
13445 __extension__ extern __inline void
13446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13447 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
13449 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13450 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13453 __extension__ extern __inline void
13454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13455 vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
13457 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13458 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13461 __extension__ extern __inline void
13462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13463 vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
13465 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13466 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13469 __extension__ extern __inline void
13470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13471 vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
13473 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13474 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13477 __extension__ extern __inline void
13478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13479 vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
13481 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13482 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13485 #pragma GCC push_options
13486 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13487 __extension__ extern __inline void
13488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13489 vst4_p64 (poly64_t * __a, poly64x1x4_t __b)
13491 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13492 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13495 #pragma GCC pop_options
13496 __extension__ extern __inline void
13497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13498 vst4_s64 (int64_t * __a, int64x1x4_t __b)
13500 union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13501 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13504 __extension__ extern __inline void
13505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13506 vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
13508 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13509 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13512 __extension__ extern __inline void
13513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13514 vst4q_s8 (int8_t * __a, int8x16x4_t __b)
13516 union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13517 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13520 __extension__ extern __inline void
13521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13522 vst4q_s16 (int16_t * __a, int16x8x4_t __b)
13524 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13525 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13528 __extension__ extern __inline void
13529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13530 vst4q_s32 (int32_t * __a, int32x4x4_t __b)
13532 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13533 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13536 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13537 __extension__ extern __inline void
13538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13539 vst4q_f16 (float16_t * __a, float16x8x4_t __b)
13541 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13542 __builtin_neon_vst4v8hf (__a, __bu.__o);
13544 #endif
13546 __extension__ extern __inline void
13547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13548 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
13550 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13551 __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
13554 __extension__ extern __inline void
13555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13556 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
13558 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13559 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13562 __extension__ extern __inline void
13563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13564 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
13566 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13567 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13570 __extension__ extern __inline void
13571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13572 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
13574 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13575 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13578 __extension__ extern __inline void
13579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13580 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
13582 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13583 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13586 __extension__ extern __inline void
13587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13588 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
13590 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13591 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13594 __extension__ extern __inline void
13595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13596 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
13598 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13599 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13602 __extension__ extern __inline void
13603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13604 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
13606 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13607 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13610 __extension__ extern __inline void
13611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13612 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
13614 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13615 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13618 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13619 __extension__ extern __inline void
13620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13621 vst4_lane_f16 (float16_t * __a, float16x4x4_t __b, const int __c)
13623 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13624 __builtin_neon_vst4_lanev4hf (__a, __bu.__o, __c);
13626 #endif
13628 __extension__ extern __inline void
13629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13630 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
13632 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13633 __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13636 __extension__ extern __inline void
13637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13638 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
13640 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13641 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13644 __extension__ extern __inline void
13645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13646 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
13648 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13649 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13652 __extension__ extern __inline void
13653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13654 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
13656 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13657 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13660 __extension__ extern __inline void
13661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13662 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
13664 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13665 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13668 __extension__ extern __inline void
13669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13670 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
13672 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13673 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13676 __extension__ extern __inline void
13677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13678 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
13680 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13681 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13684 __extension__ extern __inline void
13685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13686 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
13688 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13689 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13692 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13693 __extension__ extern __inline void
13694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13695 vst4q_lane_f16 (float16_t * __a, float16x8x4_t __b, const int __c)
13697 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13698 __builtin_neon_vst4_lanev8hf (__a, __bu.__o, __c);
13700 #endif
13702 __extension__ extern __inline void
13703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13704 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
13706 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13707 __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13710 __extension__ extern __inline void
13711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13712 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
13714 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13715 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13718 __extension__ extern __inline void
13719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13720 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
13722 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13723 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13726 __extension__ extern __inline void
13727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13728 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
13730 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13731 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13734 __extension__ extern __inline int8x8_t
13735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13736 vand_s8 (int8x8_t __a, int8x8_t __b)
13738 return __a & __b;
13741 __extension__ extern __inline int16x4_t
13742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13743 vand_s16 (int16x4_t __a, int16x4_t __b)
13745 return __a & __b;
13748 __extension__ extern __inline int32x2_t
13749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13750 vand_s32 (int32x2_t __a, int32x2_t __b)
13752 return __a & __b;
13755 __extension__ extern __inline uint8x8_t
13756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13757 vand_u8 (uint8x8_t __a, uint8x8_t __b)
13759 return __a & __b;
13762 __extension__ extern __inline uint16x4_t
13763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13764 vand_u16 (uint16x4_t __a, uint16x4_t __b)
13766 return __a & __b;
13769 __extension__ extern __inline uint32x2_t
13770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13771 vand_u32 (uint32x2_t __a, uint32x2_t __b)
13773 return __a & __b;
13776 __extension__ extern __inline int64x1_t
13777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13778 vand_s64 (int64x1_t __a, int64x1_t __b)
13780 return __a & __b;
13783 __extension__ extern __inline uint64x1_t
13784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13785 vand_u64 (uint64x1_t __a, uint64x1_t __b)
13787 return __a & __b;
13790 __extension__ extern __inline int8x16_t
13791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13792 vandq_s8 (int8x16_t __a, int8x16_t __b)
13794 return __a & __b;
13797 __extension__ extern __inline int16x8_t
13798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13799 vandq_s16 (int16x8_t __a, int16x8_t __b)
13801 return __a & __b;
13804 __extension__ extern __inline int32x4_t
13805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13806 vandq_s32 (int32x4_t __a, int32x4_t __b)
13808 return __a & __b;
13811 __extension__ extern __inline int64x2_t
13812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13813 vandq_s64 (int64x2_t __a, int64x2_t __b)
13815 return __a & __b;
13818 __extension__ extern __inline uint8x16_t
13819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13820 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
13822 return __a & __b;
13825 __extension__ extern __inline uint16x8_t
13826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13827 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
13829 return __a & __b;
13832 __extension__ extern __inline uint32x4_t
13833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13834 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
13836 return __a & __b;
13839 __extension__ extern __inline uint64x2_t
13840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13841 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
13843 return __a & __b;
13846 __extension__ extern __inline int8x8_t
13847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13848 vorr_s8 (int8x8_t __a, int8x8_t __b)
13850 return __a | __b;
13853 __extension__ extern __inline int16x4_t
13854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13855 vorr_s16 (int16x4_t __a, int16x4_t __b)
13857 return __a | __b;
13860 __extension__ extern __inline int32x2_t
13861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13862 vorr_s32 (int32x2_t __a, int32x2_t __b)
13864 return __a | __b;
13867 __extension__ extern __inline uint8x8_t
13868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13869 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
13871 return __a | __b;
13874 __extension__ extern __inline uint16x4_t
13875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13876 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
13878 return __a | __b;
13881 __extension__ extern __inline uint32x2_t
13882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13883 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
13885 return __a | __b;
13888 __extension__ extern __inline int64x1_t
13889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13890 vorr_s64 (int64x1_t __a, int64x1_t __b)
13892 return __a | __b;
13895 __extension__ extern __inline uint64x1_t
13896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13897 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
13899 return __a | __b;
13902 __extension__ extern __inline int8x16_t
13903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13904 vorrq_s8 (int8x16_t __a, int8x16_t __b)
13906 return __a | __b;
13909 __extension__ extern __inline int16x8_t
13910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13911 vorrq_s16 (int16x8_t __a, int16x8_t __b)
13913 return __a | __b;
13916 __extension__ extern __inline int32x4_t
13917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13918 vorrq_s32 (int32x4_t __a, int32x4_t __b)
13920 return __a | __b;
13923 __extension__ extern __inline int64x2_t
13924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13925 vorrq_s64 (int64x2_t __a, int64x2_t __b)
13927 return __a | __b;
13930 __extension__ extern __inline uint8x16_t
13931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13932 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
13934 return __a | __b;
13937 __extension__ extern __inline uint16x8_t
13938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13939 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
13941 return __a | __b;
13944 __extension__ extern __inline uint32x4_t
13945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13946 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
13948 return __a | __b;
13951 __extension__ extern __inline uint64x2_t
13952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13953 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
13955 return __a | __b;
13958 __extension__ extern __inline int8x8_t
13959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13960 veor_s8 (int8x8_t __a, int8x8_t __b)
13962 return __a ^ __b;
13965 __extension__ extern __inline int16x4_t
13966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13967 veor_s16 (int16x4_t __a, int16x4_t __b)
13969 return __a ^ __b;
13972 __extension__ extern __inline int32x2_t
13973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13974 veor_s32 (int32x2_t __a, int32x2_t __b)
13976 return __a ^ __b;
13979 __extension__ extern __inline uint8x8_t
13980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13981 veor_u8 (uint8x8_t __a, uint8x8_t __b)
13983 return __a ^ __b;
13986 __extension__ extern __inline uint16x4_t
13987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13988 veor_u16 (uint16x4_t __a, uint16x4_t __b)
13990 return __a ^ __b;
13993 __extension__ extern __inline uint32x2_t
13994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13995 veor_u32 (uint32x2_t __a, uint32x2_t __b)
13997 return __a ^ __b;
14000 __extension__ extern __inline int64x1_t
14001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14002 veor_s64 (int64x1_t __a, int64x1_t __b)
14004 return __a ^ __b;
14007 __extension__ extern __inline uint64x1_t
14008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14009 veor_u64 (uint64x1_t __a, uint64x1_t __b)
14011 return __a ^ __b;
14014 __extension__ extern __inline int8x16_t
14015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14016 veorq_s8 (int8x16_t __a, int8x16_t __b)
14018 return __a ^ __b;
14021 __extension__ extern __inline int16x8_t
14022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14023 veorq_s16 (int16x8_t __a, int16x8_t __b)
14025 return __a ^ __b;
14028 __extension__ extern __inline int32x4_t
14029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14030 veorq_s32 (int32x4_t __a, int32x4_t __b)
14032 return __a ^ __b;
14035 __extension__ extern __inline int64x2_t
14036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14037 veorq_s64 (int64x2_t __a, int64x2_t __b)
14039 return __a ^ __b;
14042 __extension__ extern __inline uint8x16_t
14043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14044 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
14046 return __a ^ __b;
14049 __extension__ extern __inline uint16x8_t
14050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14051 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
14053 return __a ^ __b;
14056 __extension__ extern __inline uint32x4_t
14057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14058 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
14060 return __a ^ __b;
14063 __extension__ extern __inline uint64x2_t
14064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14065 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
14067 return __a ^ __b;
14070 __extension__ extern __inline int8x8_t
14071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14072 vbic_s8 (int8x8_t __a, int8x8_t __b)
14074 return __a & ~__b;
14077 __extension__ extern __inline int16x4_t
14078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14079 vbic_s16 (int16x4_t __a, int16x4_t __b)
14081 return __a & ~__b;
14084 __extension__ extern __inline int32x2_t
14085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14086 vbic_s32 (int32x2_t __a, int32x2_t __b)
14088 return __a & ~__b;
14091 __extension__ extern __inline uint8x8_t
14092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14093 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
14095 return __a & ~__b;
14098 __extension__ extern __inline uint16x4_t
14099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14100 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
14102 return __a & ~__b;
14105 __extension__ extern __inline uint32x2_t
14106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14107 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
14109 return __a & ~__b;
14112 __extension__ extern __inline int64x1_t
14113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14114 vbic_s64 (int64x1_t __a, int64x1_t __b)
14116 return __a & ~__b;
14119 __extension__ extern __inline uint64x1_t
14120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14121 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
14123 return __a & ~__b;
14126 __extension__ extern __inline int8x16_t
14127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14128 vbicq_s8 (int8x16_t __a, int8x16_t __b)
14130 return __a & ~__b;
14133 __extension__ extern __inline int16x8_t
14134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14135 vbicq_s16 (int16x8_t __a, int16x8_t __b)
14137 return __a & ~__b;
14140 __extension__ extern __inline int32x4_t
14141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14142 vbicq_s32 (int32x4_t __a, int32x4_t __b)
14144 return __a & ~__b;
14147 __extension__ extern __inline int64x2_t
14148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14149 vbicq_s64 (int64x2_t __a, int64x2_t __b)
14151 return __a & ~__b;
14154 __extension__ extern __inline uint8x16_t
14155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14156 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
14158 return __a & ~__b;
14161 __extension__ extern __inline uint16x8_t
14162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14163 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
14165 return __a & ~__b;
14168 __extension__ extern __inline uint32x4_t
14169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14170 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
14172 return __a & ~__b;
14175 __extension__ extern __inline uint64x2_t
14176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14177 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
14179 return __a & ~__b;
14182 __extension__ extern __inline int8x8_t
14183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14184 vorn_s8 (int8x8_t __a, int8x8_t __b)
14186 return __a | ~__b;
14189 __extension__ extern __inline int16x4_t
14190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14191 vorn_s16 (int16x4_t __a, int16x4_t __b)
14193 return __a | ~__b;
14196 __extension__ extern __inline int32x2_t
14197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14198 vorn_s32 (int32x2_t __a, int32x2_t __b)
14200 return __a | ~__b;
14203 __extension__ extern __inline uint8x8_t
14204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14205 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
14207 return __a | ~__b;
14210 __extension__ extern __inline uint16x4_t
14211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14212 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
14214 return __a | ~__b;
14217 __extension__ extern __inline uint32x2_t
14218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14219 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
14221 return __a | ~__b;
14224 __extension__ extern __inline int64x1_t
14225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14226 vorn_s64 (int64x1_t __a, int64x1_t __b)
14228 return __a | ~__b;
14231 __extension__ extern __inline uint64x1_t
14232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14233 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
14235 return __a | ~__b;
14238 __extension__ extern __inline int8x16_t
14239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14240 vornq_s8 (int8x16_t __a, int8x16_t __b)
14242 return __a | ~__b;
14245 __extension__ extern __inline int16x8_t
14246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14247 vornq_s16 (int16x8_t __a, int16x8_t __b)
14249 return __a | ~__b;
14252 __extension__ extern __inline int32x4_t
14253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14254 vornq_s32 (int32x4_t __a, int32x4_t __b)
14256 return __a | ~__b;
14259 __extension__ extern __inline int64x2_t
14260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14261 vornq_s64 (int64x2_t __a, int64x2_t __b)
14263 return __a | ~__b;
14266 __extension__ extern __inline uint8x16_t
14267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14268 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
14270 return __a | ~__b;
14273 __extension__ extern __inline uint16x8_t
14274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14275 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
14277 return __a | ~__b;
14280 __extension__ extern __inline uint32x4_t
14281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14282 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
14284 return __a | ~__b;
14287 __extension__ extern __inline uint64x2_t
14288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14289 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
14291 return __a | ~__b;
14294 __extension__ extern __inline poly8x8_t
14295 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14296 vreinterpret_p8_p16 (poly16x4_t __a)
14298 return (poly8x8_t) __a;
14301 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14302 __extension__ extern __inline poly8x8_t
14303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14304 vreinterpret_p8_f16 (float16x4_t __a)
14306 return (poly8x8_t) __a;
14308 #endif
14310 __extension__ extern __inline poly8x8_t
14311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14312 vreinterpret_p8_f32 (float32x2_t __a)
14314 return (poly8x8_t)__a;
14317 #pragma GCC push_options
14318 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14319 __extension__ extern __inline poly8x8_t
14320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14321 vreinterpret_p8_p64 (poly64x1_t __a)
14323 return (poly8x8_t)__a;
14326 #pragma GCC pop_options
14327 __extension__ extern __inline poly8x8_t
14328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14329 vreinterpret_p8_s64 (int64x1_t __a)
14331 return (poly8x8_t)__a;
14334 __extension__ extern __inline poly8x8_t
14335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14336 vreinterpret_p8_u64 (uint64x1_t __a)
14338 return (poly8x8_t)__a;
14341 __extension__ extern __inline poly8x8_t
14342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14343 vreinterpret_p8_s8 (int8x8_t __a)
14345 return (poly8x8_t)__a;
14348 __extension__ extern __inline poly8x8_t
14349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14350 vreinterpret_p8_s16 (int16x4_t __a)
14352 return (poly8x8_t)__a;
14355 __extension__ extern __inline poly8x8_t
14356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14357 vreinterpret_p8_s32 (int32x2_t __a)
14359 return (poly8x8_t)__a;
14362 __extension__ extern __inline poly8x8_t
14363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14364 vreinterpret_p8_u8 (uint8x8_t __a)
14366 return (poly8x8_t)__a;
14369 __extension__ extern __inline poly8x8_t
14370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14371 vreinterpret_p8_u16 (uint16x4_t __a)
14373 return (poly8x8_t)__a;
14376 __extension__ extern __inline poly8x8_t
14377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14378 vreinterpret_p8_u32 (uint32x2_t __a)
14380 return (poly8x8_t)__a;
14383 __extension__ extern __inline poly16x4_t
14384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14385 vreinterpret_p16_p8 (poly8x8_t __a)
14387 return (poly16x4_t)__a;
14390 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14391 __extension__ extern __inline poly16x4_t
14392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14393 vreinterpret_p16_f16 (float16x4_t __a)
14395 return (poly16x4_t) __a;
14397 #endif
14399 __extension__ extern __inline poly16x4_t
14400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14401 vreinterpret_p16_f32 (float32x2_t __a)
14403 return (poly16x4_t)__a;
14406 #pragma GCC push_options
14407 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14408 __extension__ extern __inline poly16x4_t
14409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14410 vreinterpret_p16_p64 (poly64x1_t __a)
14412 return (poly16x4_t)__a;
14415 #pragma GCC pop_options
14416 __extension__ extern __inline poly16x4_t
14417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14418 vreinterpret_p16_s64 (int64x1_t __a)
14420 return (poly16x4_t)__a;
14423 __extension__ extern __inline poly16x4_t
14424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14425 vreinterpret_p16_u64 (uint64x1_t __a)
14427 return (poly16x4_t)__a;
14430 __extension__ extern __inline poly16x4_t
14431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14432 vreinterpret_p16_s8 (int8x8_t __a)
14434 return (poly16x4_t)__a;
14437 __extension__ extern __inline poly16x4_t
14438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14439 vreinterpret_p16_s16 (int16x4_t __a)
14441 return (poly16x4_t)__a;
14444 __extension__ extern __inline poly16x4_t
14445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14446 vreinterpret_p16_s32 (int32x2_t __a)
14448 return (poly16x4_t)__a;
14451 __extension__ extern __inline poly16x4_t
14452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14453 vreinterpret_p16_u8 (uint8x8_t __a)
14455 return (poly16x4_t)__a;
14458 __extension__ extern __inline poly16x4_t
14459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14460 vreinterpret_p16_u16 (uint16x4_t __a)
14462 return (poly16x4_t)__a;
14465 __extension__ extern __inline poly16x4_t
14466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14467 vreinterpret_p16_u32 (uint32x2_t __a)
14469 return (poly16x4_t)__a;
14472 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14473 __extension__ extern __inline float16x4_t
14474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14475 vreinterpret_f16_p8 (poly8x8_t __a)
14477 return (float16x4_t) __a;
14479 #endif
14481 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14482 __extension__ extern __inline float16x4_t
14483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14484 vreinterpret_f16_p16 (poly16x4_t __a)
14486 return (float16x4_t) __a;
14488 #endif
14490 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14491 __extension__ extern __inline float16x4_t
14492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14493 vreinterpret_f16_f32 (float32x2_t __a)
14495 return (float16x4_t) __a;
14497 #endif
14499 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14500 #pragma GCC push_options
14501 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14502 __extension__ extern __inline float16x4_t
14503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14504 vreinterpret_f16_p64 (poly64x1_t __a)
14506 return (float16x4_t) __a;
14508 #pragma GCC pop_options
14509 #endif
14511 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14512 __extension__ extern __inline float16x4_t
14513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14514 vreinterpret_f16_s64 (int64x1_t __a)
14516 return (float16x4_t) __a;
14518 #endif
14520 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14521 __extension__ extern __inline float16x4_t
14522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14523 vreinterpret_f16_u64 (uint64x1_t __a)
14525 return (float16x4_t) __a;
14527 #endif
14529 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14530 __extension__ extern __inline float16x4_t
14531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14532 vreinterpret_f16_s8 (int8x8_t __a)
14534 return (float16x4_t) __a;
14536 #endif
14538 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14539 __extension__ extern __inline float16x4_t
14540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14541 vreinterpret_f16_s16 (int16x4_t __a)
14543 return (float16x4_t) __a;
14545 #endif
14547 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14548 __extension__ extern __inline float16x4_t
14549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14550 vreinterpret_f16_s32 (int32x2_t __a)
14552 return (float16x4_t) __a;
14554 #endif
14556 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14557 __extension__ extern __inline float16x4_t
14558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14559 vreinterpret_f16_u8 (uint8x8_t __a)
14561 return (float16x4_t) __a;
14563 #endif
14565 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14566 __extension__ extern __inline float16x4_t
14567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14568 vreinterpret_f16_u16 (uint16x4_t __a)
14570 return (float16x4_t) __a;
14572 #endif
14574 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14575 __extension__ extern __inline float16x4_t
14576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14577 vreinterpret_f16_u32 (uint32x2_t __a)
14579 return (float16x4_t) __a;
14581 #endif
14583 __extension__ extern __inline float32x2_t
14584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14585 vreinterpret_f32_p8 (poly8x8_t __a)
14587 return (float32x2_t)__a;
14590 __extension__ extern __inline float32x2_t
14591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14592 vreinterpret_f32_p16 (poly16x4_t __a)
14594 return (float32x2_t)__a;
14597 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14598 __extension__ extern __inline float32x2_t
14599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14600 vreinterpret_f32_f16 (float16x4_t __a)
14602 return (float32x2_t) __a;
14604 #endif
14606 #pragma GCC push_options
14607 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14608 __extension__ extern __inline float32x2_t
14609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14610 vreinterpret_f32_p64 (poly64x1_t __a)
14612 return (float32x2_t)__a;
14615 #pragma GCC pop_options
14616 __extension__ extern __inline float32x2_t
14617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14618 vreinterpret_f32_s64 (int64x1_t __a)
14620 return (float32x2_t)__a;
14623 __extension__ extern __inline float32x2_t
14624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14625 vreinterpret_f32_u64 (uint64x1_t __a)
14627 return (float32x2_t)__a;
14630 __extension__ extern __inline float32x2_t
14631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14632 vreinterpret_f32_s8 (int8x8_t __a)
14634 return (float32x2_t)__a;
14637 __extension__ extern __inline float32x2_t
14638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14639 vreinterpret_f32_s16 (int16x4_t __a)
14641 return (float32x2_t)__a;
14644 __extension__ extern __inline float32x2_t
14645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14646 vreinterpret_f32_s32 (int32x2_t __a)
14648 return (float32x2_t)__a;
14651 __extension__ extern __inline float32x2_t
14652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14653 vreinterpret_f32_u8 (uint8x8_t __a)
14655 return (float32x2_t)__a;
14658 __extension__ extern __inline float32x2_t
14659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14660 vreinterpret_f32_u16 (uint16x4_t __a)
14662 return (float32x2_t)__a;
14665 __extension__ extern __inline float32x2_t
14666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14667 vreinterpret_f32_u32 (uint32x2_t __a)
14669 return (float32x2_t)__a;
14672 #pragma GCC push_options
14673 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14674 __extension__ extern __inline poly64x1_t
14675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14676 vreinterpret_p64_p8 (poly8x8_t __a)
14678 return (poly64x1_t)__a;
14681 __extension__ extern __inline poly64x1_t
14682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14683 vreinterpret_p64_p16 (poly16x4_t __a)
14685 return (poly64x1_t)__a;
14688 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14689 __extension__ extern __inline poly64x1_t
14690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14691 vreinterpret_p64_f16 (float16x4_t __a)
14693 return (poly64x1_t) __a;
14695 #endif
14697 __extension__ extern __inline poly64x1_t
14698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14699 vreinterpret_p64_f32 (float32x2_t __a)
14701 return (poly64x1_t)__a;
14704 __extension__ extern __inline poly64x1_t
14705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14706 vreinterpret_p64_s64 (int64x1_t __a)
14708 return (poly64x1_t)__a;
14711 __extension__ extern __inline poly64x1_t
14712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14713 vreinterpret_p64_u64 (uint64x1_t __a)
14715 return (poly64x1_t)__a;
14718 __extension__ extern __inline poly64x1_t
14719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14720 vreinterpret_p64_s8 (int8x8_t __a)
14722 return (poly64x1_t)__a;
14725 __extension__ extern __inline poly64x1_t
14726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14727 vreinterpret_p64_s16 (int16x4_t __a)
14729 return (poly64x1_t)__a;
14732 __extension__ extern __inline poly64x1_t
14733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14734 vreinterpret_p64_s32 (int32x2_t __a)
14736 return (poly64x1_t)__a;
14739 __extension__ extern __inline poly64x1_t
14740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14741 vreinterpret_p64_u8 (uint8x8_t __a)
14743 return (poly64x1_t)__a;
14746 __extension__ extern __inline poly64x1_t
14747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14748 vreinterpret_p64_u16 (uint16x4_t __a)
14750 return (poly64x1_t)__a;
14753 __extension__ extern __inline poly64x1_t
14754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14755 vreinterpret_p64_u32 (uint32x2_t __a)
14757 return (poly64x1_t)__a;
14760 #pragma GCC pop_options
14761 __extension__ extern __inline int64x1_t
14762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14763 vreinterpret_s64_p8 (poly8x8_t __a)
14765 return (int64x1_t)__a;
14768 __extension__ extern __inline int64x1_t
14769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14770 vreinterpret_s64_p16 (poly16x4_t __a)
14772 return (int64x1_t)__a;
14775 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14776 __extension__ extern __inline int64x1_t
14777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14778 vreinterpret_s64_f16 (float16x4_t __a)
14780 return (int64x1_t) __a;
14782 #endif
14784 __extension__ extern __inline int64x1_t
14785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14786 vreinterpret_s64_f32 (float32x2_t __a)
14788 return (int64x1_t)__a;
14791 #pragma GCC push_options
14792 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14793 __extension__ extern __inline int64x1_t
14794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14795 vreinterpret_s64_p64 (poly64x1_t __a)
14797 return (int64x1_t)__a;
14800 #pragma GCC pop_options
14801 __extension__ extern __inline int64x1_t
14802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14803 vreinterpret_s64_u64 (uint64x1_t __a)
14805 return (int64x1_t)__a;
14808 __extension__ extern __inline int64x1_t
14809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14810 vreinterpret_s64_s8 (int8x8_t __a)
14812 return (int64x1_t)__a;
14815 __extension__ extern __inline int64x1_t
14816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14817 vreinterpret_s64_s16 (int16x4_t __a)
14819 return (int64x1_t)__a;
14822 __extension__ extern __inline int64x1_t
14823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14824 vreinterpret_s64_s32 (int32x2_t __a)
14826 return (int64x1_t)__a;
14829 __extension__ extern __inline int64x1_t
14830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14831 vreinterpret_s64_u8 (uint8x8_t __a)
14833 return (int64x1_t)__a;
14836 __extension__ extern __inline int64x1_t
14837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14838 vreinterpret_s64_u16 (uint16x4_t __a)
14840 return (int64x1_t)__a;
14843 __extension__ extern __inline int64x1_t
14844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14845 vreinterpret_s64_u32 (uint32x2_t __a)
14847 return (int64x1_t)__a;
14850 __extension__ extern __inline uint64x1_t
14851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14852 vreinterpret_u64_p8 (poly8x8_t __a)
14854 return (uint64x1_t)__a;
14857 __extension__ extern __inline uint64x1_t
14858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14859 vreinterpret_u64_p16 (poly16x4_t __a)
14861 return (uint64x1_t)__a;
14864 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14865 __extension__ extern __inline uint64x1_t
14866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14867 vreinterpret_u64_f16 (float16x4_t __a)
14869 return (uint64x1_t) __a;
14871 #endif
14873 __extension__ extern __inline uint64x1_t
14874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14875 vreinterpret_u64_f32 (float32x2_t __a)
14877 return (uint64x1_t)__a;
14880 #pragma GCC push_options
14881 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14882 __extension__ extern __inline uint64x1_t
14883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14884 vreinterpret_u64_p64 (poly64x1_t __a)
14886 return (uint64x1_t)__a;
14889 #pragma GCC pop_options
14890 __extension__ extern __inline uint64x1_t
14891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14892 vreinterpret_u64_s64 (int64x1_t __a)
14894 return (uint64x1_t)__a;
14897 __extension__ extern __inline uint64x1_t
14898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14899 vreinterpret_u64_s8 (int8x8_t __a)
14901 return (uint64x1_t)__a;
14904 __extension__ extern __inline uint64x1_t
14905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14906 vreinterpret_u64_s16 (int16x4_t __a)
14908 return (uint64x1_t)__a;
14911 __extension__ extern __inline uint64x1_t
14912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14913 vreinterpret_u64_s32 (int32x2_t __a)
14915 return (uint64x1_t)__a;
14918 __extension__ extern __inline uint64x1_t
14919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14920 vreinterpret_u64_u8 (uint8x8_t __a)
14922 return (uint64x1_t)__a;
14925 __extension__ extern __inline uint64x1_t
14926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14927 vreinterpret_u64_u16 (uint16x4_t __a)
14929 return (uint64x1_t)__a;
14932 __extension__ extern __inline uint64x1_t
14933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14934 vreinterpret_u64_u32 (uint32x2_t __a)
14936 return (uint64x1_t)__a;
14939 __extension__ extern __inline int8x8_t
14940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14941 vreinterpret_s8_p8 (poly8x8_t __a)
14943 return (int8x8_t)__a;
14946 __extension__ extern __inline int8x8_t
14947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14948 vreinterpret_s8_p16 (poly16x4_t __a)
14950 return (int8x8_t)__a;
14953 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14954 __extension__ extern __inline int8x8_t
14955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14956 vreinterpret_s8_f16 (float16x4_t __a)
14958 return (int8x8_t) __a;
14960 #endif
14962 __extension__ extern __inline int8x8_t
14963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14964 vreinterpret_s8_f32 (float32x2_t __a)
14966 return (int8x8_t)__a;
14969 #pragma GCC push_options
14970 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14971 __extension__ extern __inline int8x8_t
14972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14973 vreinterpret_s8_p64 (poly64x1_t __a)
14975 return (int8x8_t)__a;
14978 #pragma GCC pop_options
14979 __extension__ extern __inline int8x8_t
14980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14981 vreinterpret_s8_s64 (int64x1_t __a)
14983 return (int8x8_t)__a;
14986 __extension__ extern __inline int8x8_t
14987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14988 vreinterpret_s8_u64 (uint64x1_t __a)
14990 return (int8x8_t)__a;
14993 __extension__ extern __inline int8x8_t
14994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14995 vreinterpret_s8_s16 (int16x4_t __a)
14997 return (int8x8_t)__a;
15000 __extension__ extern __inline int8x8_t
15001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15002 vreinterpret_s8_s32 (int32x2_t __a)
15004 return (int8x8_t)__a;
15007 __extension__ extern __inline int8x8_t
15008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15009 vreinterpret_s8_u8 (uint8x8_t __a)
15011 return (int8x8_t)__a;
15014 __extension__ extern __inline int8x8_t
15015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15016 vreinterpret_s8_u16 (uint16x4_t __a)
15018 return (int8x8_t)__a;
15021 __extension__ extern __inline int8x8_t
15022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15023 vreinterpret_s8_u32 (uint32x2_t __a)
15025 return (int8x8_t)__a;
15028 __extension__ extern __inline int16x4_t
15029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15030 vreinterpret_s16_p8 (poly8x8_t __a)
15032 return (int16x4_t)__a;
15035 __extension__ extern __inline int16x4_t
15036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15037 vreinterpret_s16_p16 (poly16x4_t __a)
15039 return (int16x4_t)__a;
15042 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15043 __extension__ extern __inline int16x4_t
15044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15045 vreinterpret_s16_f16 (float16x4_t __a)
15047 return (int16x4_t) __a;
15049 #endif
15051 __extension__ extern __inline int16x4_t
15052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15053 vreinterpret_s16_f32 (float32x2_t __a)
15055 return (int16x4_t)__a;
15058 #pragma GCC push_options
15059 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15060 __extension__ extern __inline int16x4_t
15061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15062 vreinterpret_s16_p64 (poly64x1_t __a)
15064 return (int16x4_t)__a;
15067 #pragma GCC pop_options
15068 __extension__ extern __inline int16x4_t
15069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15070 vreinterpret_s16_s64 (int64x1_t __a)
15072 return (int16x4_t)__a;
15075 __extension__ extern __inline int16x4_t
15076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15077 vreinterpret_s16_u64 (uint64x1_t __a)
15079 return (int16x4_t)__a;
15082 __extension__ extern __inline int16x4_t
15083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15084 vreinterpret_s16_s8 (int8x8_t __a)
15086 return (int16x4_t)__a;
15089 __extension__ extern __inline int16x4_t
15090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15091 vreinterpret_s16_s32 (int32x2_t __a)
15093 return (int16x4_t)__a;
15096 __extension__ extern __inline int16x4_t
15097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15098 vreinterpret_s16_u8 (uint8x8_t __a)
15100 return (int16x4_t)__a;
15103 __extension__ extern __inline int16x4_t
15104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15105 vreinterpret_s16_u16 (uint16x4_t __a)
15107 return (int16x4_t)__a;
15110 __extension__ extern __inline int16x4_t
15111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15112 vreinterpret_s16_u32 (uint32x2_t __a)
15114 return (int16x4_t)__a;
15117 __extension__ extern __inline int32x2_t
15118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15119 vreinterpret_s32_p8 (poly8x8_t __a)
15121 return (int32x2_t)__a;
15124 __extension__ extern __inline int32x2_t
15125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15126 vreinterpret_s32_p16 (poly16x4_t __a)
15128 return (int32x2_t)__a;
15131 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15132 __extension__ extern __inline int32x2_t
15133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15134 vreinterpret_s32_f16 (float16x4_t __a)
15136 return (int32x2_t) __a;
15138 #endif
15140 __extension__ extern __inline int32x2_t
15141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15142 vreinterpret_s32_f32 (float32x2_t __a)
15144 return (int32x2_t)__a;
15147 #pragma GCC push_options
15148 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15149 __extension__ extern __inline int32x2_t
15150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15151 vreinterpret_s32_p64 (poly64x1_t __a)
15153 return (int32x2_t)__a;
15156 #pragma GCC pop_options
15157 __extension__ extern __inline int32x2_t
15158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15159 vreinterpret_s32_s64 (int64x1_t __a)
15161 return (int32x2_t)__a;
15164 __extension__ extern __inline int32x2_t
15165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15166 vreinterpret_s32_u64 (uint64x1_t __a)
15168 return (int32x2_t)__a;
15171 __extension__ extern __inline int32x2_t
15172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15173 vreinterpret_s32_s8 (int8x8_t __a)
15175 return (int32x2_t)__a;
15178 __extension__ extern __inline int32x2_t
15179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15180 vreinterpret_s32_s16 (int16x4_t __a)
15182 return (int32x2_t)__a;
15185 __extension__ extern __inline int32x2_t
15186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15187 vreinterpret_s32_u8 (uint8x8_t __a)
15189 return (int32x2_t)__a;
15192 __extension__ extern __inline int32x2_t
15193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15194 vreinterpret_s32_u16 (uint16x4_t __a)
15196 return (int32x2_t)__a;
15199 __extension__ extern __inline int32x2_t
15200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15201 vreinterpret_s32_u32 (uint32x2_t __a)
15203 return (int32x2_t)__a;
15206 __extension__ extern __inline uint8x8_t
15207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15208 vreinterpret_u8_p8 (poly8x8_t __a)
15210 return (uint8x8_t)__a;
15213 __extension__ extern __inline uint8x8_t
15214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15215 vreinterpret_u8_p16 (poly16x4_t __a)
15217 return (uint8x8_t)__a;
15220 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15221 __extension__ extern __inline uint8x8_t
15222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15223 vreinterpret_u8_f16 (float16x4_t __a)
15225 return (uint8x8_t) __a;
15227 #endif
15229 __extension__ extern __inline uint8x8_t
15230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15231 vreinterpret_u8_f32 (float32x2_t __a)
15233 return (uint8x8_t)__a;
15236 #pragma GCC push_options
15237 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15238 __extension__ extern __inline uint8x8_t
15239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15240 vreinterpret_u8_p64 (poly64x1_t __a)
15242 return (uint8x8_t)__a;
15245 #pragma GCC pop_options
15246 __extension__ extern __inline uint8x8_t
15247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15248 vreinterpret_u8_s64 (int64x1_t __a)
15250 return (uint8x8_t)__a;
15253 __extension__ extern __inline uint8x8_t
15254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15255 vreinterpret_u8_u64 (uint64x1_t __a)
15257 return (uint8x8_t)__a;
15260 __extension__ extern __inline uint8x8_t
15261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15262 vreinterpret_u8_s8 (int8x8_t __a)
15264 return (uint8x8_t)__a;
15267 __extension__ extern __inline uint8x8_t
15268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15269 vreinterpret_u8_s16 (int16x4_t __a)
15271 return (uint8x8_t)__a;
15274 __extension__ extern __inline uint8x8_t
15275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15276 vreinterpret_u8_s32 (int32x2_t __a)
15278 return (uint8x8_t)__a;
15281 __extension__ extern __inline uint8x8_t
15282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15283 vreinterpret_u8_u16 (uint16x4_t __a)
15285 return (uint8x8_t)__a;
15288 __extension__ extern __inline uint8x8_t
15289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15290 vreinterpret_u8_u32 (uint32x2_t __a)
15292 return (uint8x8_t)__a;
15295 __extension__ extern __inline uint16x4_t
15296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15297 vreinterpret_u16_p8 (poly8x8_t __a)
15299 return (uint16x4_t)__a;
15302 __extension__ extern __inline uint16x4_t
15303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15304 vreinterpret_u16_p16 (poly16x4_t __a)
15306 return (uint16x4_t)__a;
15309 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15310 __extension__ extern __inline uint16x4_t
15311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15312 vreinterpret_u16_f16 (float16x4_t __a)
15314 return (uint16x4_t) __a;
15316 #endif
15318 __extension__ extern __inline uint16x4_t
15319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15320 vreinterpret_u16_f32 (float32x2_t __a)
15322 return (uint16x4_t)__a;
15325 #pragma GCC push_options
15326 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15327 __extension__ extern __inline uint16x4_t
15328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15329 vreinterpret_u16_p64 (poly64x1_t __a)
15331 return (uint16x4_t)__a;
15334 #pragma GCC pop_options
15335 __extension__ extern __inline uint16x4_t
15336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15337 vreinterpret_u16_s64 (int64x1_t __a)
15339 return (uint16x4_t)__a;
15342 __extension__ extern __inline uint16x4_t
15343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15344 vreinterpret_u16_u64 (uint64x1_t __a)
15346 return (uint16x4_t)__a;
15349 __extension__ extern __inline uint16x4_t
15350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15351 vreinterpret_u16_s8 (int8x8_t __a)
15353 return (uint16x4_t)__a;
15356 __extension__ extern __inline uint16x4_t
15357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15358 vreinterpret_u16_s16 (int16x4_t __a)
15360 return (uint16x4_t)__a;
15363 __extension__ extern __inline uint16x4_t
15364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15365 vreinterpret_u16_s32 (int32x2_t __a)
15367 return (uint16x4_t)__a;
15370 __extension__ extern __inline uint16x4_t
15371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15372 vreinterpret_u16_u8 (uint8x8_t __a)
15374 return (uint16x4_t)__a;
15377 __extension__ extern __inline uint16x4_t
15378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15379 vreinterpret_u16_u32 (uint32x2_t __a)
15381 return (uint16x4_t)__a;
15384 __extension__ extern __inline uint32x2_t
15385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15386 vreinterpret_u32_p8 (poly8x8_t __a)
15388 return (uint32x2_t)__a;
15391 __extension__ extern __inline uint32x2_t
15392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15393 vreinterpret_u32_p16 (poly16x4_t __a)
15395 return (uint32x2_t)__a;
15398 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15399 __extension__ extern __inline uint32x2_t
15400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15401 vreinterpret_u32_f16 (float16x4_t __a)
15403 return (uint32x2_t) __a;
15405 #endif
15407 __extension__ extern __inline uint32x2_t
15408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15409 vreinterpret_u32_f32 (float32x2_t __a)
15411 return (uint32x2_t)__a;
15414 #pragma GCC push_options
15415 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15416 __extension__ extern __inline uint32x2_t
15417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15418 vreinterpret_u32_p64 (poly64x1_t __a)
15420 return (uint32x2_t)__a;
15423 #pragma GCC pop_options
15424 __extension__ extern __inline uint32x2_t
15425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15426 vreinterpret_u32_s64 (int64x1_t __a)
15428 return (uint32x2_t)__a;
15431 __extension__ extern __inline uint32x2_t
15432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15433 vreinterpret_u32_u64 (uint64x1_t __a)
15435 return (uint32x2_t)__a;
15438 __extension__ extern __inline uint32x2_t
15439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15440 vreinterpret_u32_s8 (int8x8_t __a)
15442 return (uint32x2_t)__a;
15445 __extension__ extern __inline uint32x2_t
15446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15447 vreinterpret_u32_s16 (int16x4_t __a)
15449 return (uint32x2_t)__a;
15452 __extension__ extern __inline uint32x2_t
15453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15454 vreinterpret_u32_s32 (int32x2_t __a)
15456 return (uint32x2_t)__a;
15459 __extension__ extern __inline uint32x2_t
15460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15461 vreinterpret_u32_u8 (uint8x8_t __a)
15463 return (uint32x2_t)__a;
15466 __extension__ extern __inline uint32x2_t
15467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15468 vreinterpret_u32_u16 (uint16x4_t __a)
15470 return (uint32x2_t)__a;
15473 __extension__ extern __inline poly8x16_t
15474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15475 vreinterpretq_p8_p16 (poly16x8_t __a)
15477 return (poly8x16_t)__a;
15480 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15481 __extension__ extern __inline poly8x16_t
15482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15483 vreinterpretq_p8_f16 (float16x8_t __a)
15485 return (poly8x16_t) __a;
15487 #endif
15489 __extension__ extern __inline poly8x16_t
15490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15491 vreinterpretq_p8_f32 (float32x4_t __a)
15493 return (poly8x16_t)__a;
15496 #pragma GCC push_options
15497 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15498 __extension__ extern __inline poly8x16_t
15499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15500 vreinterpretq_p8_p64 (poly64x2_t __a)
15502 return (poly8x16_t)__a;
15506 __extension__ extern __inline poly8x16_t
15507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15508 vreinterpretq_p8_p128 (poly128_t __a)
15510 return (poly8x16_t)__a;
15513 #pragma GCC pop_options
15514 __extension__ extern __inline poly8x16_t
15515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15516 vreinterpretq_p8_s64 (int64x2_t __a)
15518 return (poly8x16_t)__a;
15521 __extension__ extern __inline poly8x16_t
15522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15523 vreinterpretq_p8_u64 (uint64x2_t __a)
15525 return (poly8x16_t)__a;
15528 __extension__ extern __inline poly8x16_t
15529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15530 vreinterpretq_p8_s8 (int8x16_t __a)
15532 return (poly8x16_t)__a;
15535 __extension__ extern __inline poly8x16_t
15536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15537 vreinterpretq_p8_s16 (int16x8_t __a)
15539 return (poly8x16_t)__a;
15542 __extension__ extern __inline poly8x16_t
15543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15544 vreinterpretq_p8_s32 (int32x4_t __a)
15546 return (poly8x16_t)__a;
15549 __extension__ extern __inline poly8x16_t
15550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15551 vreinterpretq_p8_u8 (uint8x16_t __a)
15553 return (poly8x16_t)__a;
15556 __extension__ extern __inline poly8x16_t
15557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15558 vreinterpretq_p8_u16 (uint16x8_t __a)
15560 return (poly8x16_t)__a;
15563 __extension__ extern __inline poly8x16_t
15564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15565 vreinterpretq_p8_u32 (uint32x4_t __a)
15567 return (poly8x16_t)__a;
15570 __extension__ extern __inline poly16x8_t
15571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15572 vreinterpretq_p16_p8 (poly8x16_t __a)
15574 return (poly16x8_t)__a;
15577 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15578 __extension__ extern __inline poly16x8_t
15579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15580 vreinterpretq_p16_f16 (float16x8_t __a)
15582 return (poly16x8_t) __a;
15584 #endif
15586 __extension__ extern __inline poly16x8_t
15587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15588 vreinterpretq_p16_f32 (float32x4_t __a)
15590 return (poly16x8_t)__a;
15593 #pragma GCC push_options
15594 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15595 __extension__ extern __inline poly16x8_t
15596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15597 vreinterpretq_p16_p64 (poly64x2_t __a)
15599 return (poly16x8_t)__a;
15602 __extension__ extern __inline poly16x8_t
15603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15604 vreinterpretq_p16_p128 (poly128_t __a)
15606 return (poly16x8_t)__a;
15609 #pragma GCC pop_options
15610 __extension__ extern __inline poly16x8_t
15611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15612 vreinterpretq_p16_s64 (int64x2_t __a)
15614 return (poly16x8_t)__a;
15617 __extension__ extern __inline poly16x8_t
15618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15619 vreinterpretq_p16_u64 (uint64x2_t __a)
15621 return (poly16x8_t)__a;
15624 __extension__ extern __inline poly16x8_t
15625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15626 vreinterpretq_p16_s8 (int8x16_t __a)
15628 return (poly16x8_t)__a;
15631 __extension__ extern __inline poly16x8_t
15632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15633 vreinterpretq_p16_s16 (int16x8_t __a)
15635 return (poly16x8_t)__a;
15638 __extension__ extern __inline poly16x8_t
15639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15640 vreinterpretq_p16_s32 (int32x4_t __a)
15642 return (poly16x8_t)__a;
15645 __extension__ extern __inline poly16x8_t
15646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15647 vreinterpretq_p16_u8 (uint8x16_t __a)
15649 return (poly16x8_t)__a;
15652 __extension__ extern __inline poly16x8_t
15653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15654 vreinterpretq_p16_u16 (uint16x8_t __a)
15656 return (poly16x8_t)__a;
15659 __extension__ extern __inline poly16x8_t
15660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15661 vreinterpretq_p16_u32 (uint32x4_t __a)
15663 return (poly16x8_t)__a;
15666 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15667 __extension__ extern __inline float16x8_t
15668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15669 vreinterpretq_f16_p8 (poly8x16_t __a)
15671 return (float16x8_t) __a;
15673 #endif
15675 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15676 __extension__ extern __inline float16x8_t
15677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15678 vreinterpretq_f16_p16 (poly16x8_t __a)
15680 return (float16x8_t) __a;
15682 #endif
15684 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15685 __extension__ extern __inline float16x8_t
15686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15687 vreinterpretq_f16_f32 (float32x4_t __a)
15689 return (float16x8_t) __a;
15691 #endif
15693 #pragma GCC push_options
15694 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15696 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15697 __extension__ extern __inline float16x8_t
15698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15699 vreinterpretq_f16_p64 (poly64x2_t __a)
15701 return (float16x8_t) __a;
15703 #endif
15705 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15706 __extension__ extern __inline float16x8_t
15707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15708 vreinterpretq_f16_p128 (poly128_t __a)
15710 return (float16x8_t) __a;
15712 #endif
15714 #pragma GCC pop_options
15716 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15717 __extension__ extern __inline float16x8_t
15718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15719 vreinterpretq_f16_s64 (int64x2_t __a)
15721 return (float16x8_t) __a;
15723 #endif
15725 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15726 __extension__ extern __inline float16x8_t
15727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15728 vreinterpretq_f16_u64 (uint64x2_t __a)
15730 return (float16x8_t) __a;
15732 #endif
15734 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15735 __extension__ extern __inline float16x8_t
15736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15737 vreinterpretq_f16_s8 (int8x16_t __a)
15739 return (float16x8_t) __a;
15741 #endif
15743 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15744 __extension__ extern __inline float16x8_t
15745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15746 vreinterpretq_f16_s16 (int16x8_t __a)
15748 return (float16x8_t) __a;
15750 #endif
15752 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15753 __extension__ extern __inline float16x8_t
15754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15755 vreinterpretq_f16_s32 (int32x4_t __a)
15757 return (float16x8_t) __a;
15759 #endif
15761 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15762 __extension__ extern __inline float16x8_t
15763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15764 vreinterpretq_f16_u8 (uint8x16_t __a)
15766 return (float16x8_t) __a;
15768 #endif
15770 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15771 __extension__ extern __inline float16x8_t
15772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15773 vreinterpretq_f16_u16 (uint16x8_t __a)
15775 return (float16x8_t) __a;
15777 #endif
15779 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15780 __extension__ extern __inline float16x8_t
15781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15782 vreinterpretq_f16_u32 (uint32x4_t __a)
15784 return (float16x8_t) __a;
15786 #endif
15788 __extension__ extern __inline float32x4_t
15789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15790 vreinterpretq_f32_p8 (poly8x16_t __a)
15792 return (float32x4_t)__a;
15795 __extension__ extern __inline float32x4_t
15796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15797 vreinterpretq_f32_p16 (poly16x8_t __a)
15799 return (float32x4_t)__a;
15802 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15803 __extension__ extern __inline float32x4_t
15804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15805 vreinterpretq_f32_f16 (float16x8_t __a)
15807 return (float32x4_t) __a;
15809 #endif
15811 #pragma GCC push_options
15812 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15813 __extension__ extern __inline float32x4_t
15814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15815 vreinterpretq_f32_p64 (poly64x2_t __a)
15817 return (float32x4_t)__a;
15820 __extension__ extern __inline float32x4_t
15821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15822 vreinterpretq_f32_p128 (poly128_t __a)
15824 return (float32x4_t)__a;
15827 #pragma GCC pop_options
15828 __extension__ extern __inline float32x4_t
15829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15830 vreinterpretq_f32_s64 (int64x2_t __a)
15832 return (float32x4_t)__a;
15835 __extension__ extern __inline float32x4_t
15836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15837 vreinterpretq_f32_u64 (uint64x2_t __a)
15839 return (float32x4_t)__a;
15842 __extension__ extern __inline float32x4_t
15843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15844 vreinterpretq_f32_s8 (int8x16_t __a)
15846 return (float32x4_t)__a;
15849 __extension__ extern __inline float32x4_t
15850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15851 vreinterpretq_f32_s16 (int16x8_t __a)
15853 return (float32x4_t)__a;
15856 __extension__ extern __inline float32x4_t
15857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15858 vreinterpretq_f32_s32 (int32x4_t __a)
15860 return (float32x4_t)__a;
15863 __extension__ extern __inline float32x4_t
15864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15865 vreinterpretq_f32_u8 (uint8x16_t __a)
15867 return (float32x4_t)__a;
15870 __extension__ extern __inline float32x4_t
15871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15872 vreinterpretq_f32_u16 (uint16x8_t __a)
15874 return (float32x4_t)__a;
15877 __extension__ extern __inline float32x4_t
15878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15879 vreinterpretq_f32_u32 (uint32x4_t __a)
15881 return (float32x4_t)__a;
15884 #pragma GCC push_options
15885 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15886 __extension__ extern __inline poly64x2_t
15887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15888 vreinterpretq_p64_p8 (poly8x16_t __a)
15890 return (poly64x2_t)__a;
15893 __extension__ extern __inline poly64x2_t
15894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15895 vreinterpretq_p64_p16 (poly16x8_t __a)
15897 return (poly64x2_t)__a;
15900 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15901 __extension__ extern __inline poly64x2_t
15902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15903 vreinterpretq_p64_f16 (float16x8_t __a)
15905 return (poly64x2_t) __a;
15907 #endif
15909 __extension__ extern __inline poly64x2_t
15910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15911 vreinterpretq_p64_f32 (float32x4_t __a)
15913 return (poly64x2_t)__a;
15916 __extension__ extern __inline poly64x2_t
15917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15918 vreinterpretq_p64_p128 (poly128_t __a)
15920 return (poly64x2_t)__a;
15923 __extension__ extern __inline poly64x2_t
15924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15925 vreinterpretq_p64_s64 (int64x2_t __a)
15927 return (poly64x2_t)__a;
15930 __extension__ extern __inline poly64x2_t
15931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15932 vreinterpretq_p64_u64 (uint64x2_t __a)
15934 return (poly64x2_t)__a;
15937 __extension__ extern __inline poly64x2_t
15938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15939 vreinterpretq_p64_s8 (int8x16_t __a)
15941 return (poly64x2_t)__a;
15944 __extension__ extern __inline poly64x2_t
15945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15946 vreinterpretq_p64_s16 (int16x8_t __a)
15948 return (poly64x2_t)__a;
15951 __extension__ extern __inline poly64x2_t
15952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15953 vreinterpretq_p64_s32 (int32x4_t __a)
15955 return (poly64x2_t)__a;
15958 __extension__ extern __inline poly64x2_t
15959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15960 vreinterpretq_p64_u8 (uint8x16_t __a)
15962 return (poly64x2_t)__a;
15965 __extension__ extern __inline poly64x2_t
15966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15967 vreinterpretq_p64_u16 (uint16x8_t __a)
15969 return (poly64x2_t)__a;
15972 __extension__ extern __inline poly64x2_t
15973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15974 vreinterpretq_p64_u32 (uint32x4_t __a)
15976 return (poly64x2_t)__a;
15979 __extension__ extern __inline poly128_t
15980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15981 vreinterpretq_p128_p8 (poly8x16_t __a)
15983 return (poly128_t)__a;
15986 __extension__ extern __inline poly128_t
15987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15988 vreinterpretq_p128_p16 (poly16x8_t __a)
15990 return (poly128_t)__a;
15993 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15994 __extension__ extern __inline poly128_t
15995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15996 vreinterpretq_p128_f16 (float16x8_t __a)
15998 return (poly128_t) __a;
16000 #endif
16002 __extension__ extern __inline poly128_t
16003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16004 vreinterpretq_p128_f32 (float32x4_t __a)
16006 return (poly128_t)__a;
16009 __extension__ extern __inline poly128_t
16010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16011 vreinterpretq_p128_p64 (poly64x2_t __a)
16013 return (poly128_t)__a;
16016 __extension__ extern __inline poly128_t
16017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16018 vreinterpretq_p128_s64 (int64x2_t __a)
16020 return (poly128_t)__a;
16023 __extension__ extern __inline poly128_t
16024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16025 vreinterpretq_p128_u64 (uint64x2_t __a)
16027 return (poly128_t)__a;
16030 __extension__ extern __inline poly128_t
16031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16032 vreinterpretq_p128_s8 (int8x16_t __a)
16034 return (poly128_t)__a;
16037 __extension__ extern __inline poly128_t
16038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16039 vreinterpretq_p128_s16 (int16x8_t __a)
16041 return (poly128_t)__a;
16044 __extension__ extern __inline poly128_t
16045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16046 vreinterpretq_p128_s32 (int32x4_t __a)
16048 return (poly128_t)__a;
16051 __extension__ extern __inline poly128_t
16052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16053 vreinterpretq_p128_u8 (uint8x16_t __a)
16055 return (poly128_t)__a;
16058 __extension__ extern __inline poly128_t
16059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16060 vreinterpretq_p128_u16 (uint16x8_t __a)
16062 return (poly128_t)__a;
16065 __extension__ extern __inline poly128_t
16066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16067 vreinterpretq_p128_u32 (uint32x4_t __a)
16069 return (poly128_t)__a;
16072 #pragma GCC pop_options
16073 __extension__ extern __inline int64x2_t
16074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16075 vreinterpretq_s64_p8 (poly8x16_t __a)
16077 return (int64x2_t)__a;
16080 __extension__ extern __inline int64x2_t
16081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16082 vreinterpretq_s64_p16 (poly16x8_t __a)
16084 return (int64x2_t)__a;
16087 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16088 __extension__ extern __inline int64x2_t
16089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16090 vreinterpretq_s64_f16 (float16x8_t __a)
16092 return (int64x2_t) __a;
16094 #endif
16096 __extension__ extern __inline int64x2_t
16097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16098 vreinterpretq_s64_f32 (float32x4_t __a)
16100 return (int64x2_t)__a;
16103 #pragma GCC push_options
16104 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16105 __extension__ extern __inline int64x2_t
16106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16107 vreinterpretq_s64_p64 (poly64x2_t __a)
16109 return (int64x2_t)__a;
16112 __extension__ extern __inline int64x2_t
16113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16114 vreinterpretq_s64_p128 (poly128_t __a)
16116 return (int64x2_t)__a;
16119 #pragma GCC pop_options
16120 __extension__ extern __inline int64x2_t
16121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16122 vreinterpretq_s64_u64 (uint64x2_t __a)
16124 return (int64x2_t)__a;
16127 __extension__ extern __inline int64x2_t
16128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16129 vreinterpretq_s64_s8 (int8x16_t __a)
16131 return (int64x2_t)__a;
16134 __extension__ extern __inline int64x2_t
16135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16136 vreinterpretq_s64_s16 (int16x8_t __a)
16138 return (int64x2_t)__a;
16141 __extension__ extern __inline int64x2_t
16142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16143 vreinterpretq_s64_s32 (int32x4_t __a)
16145 return (int64x2_t)__a;
16148 __extension__ extern __inline int64x2_t
16149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16150 vreinterpretq_s64_u8 (uint8x16_t __a)
16152 return (int64x2_t)__a;
16155 __extension__ extern __inline int64x2_t
16156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16157 vreinterpretq_s64_u16 (uint16x8_t __a)
16159 return (int64x2_t)__a;
16162 __extension__ extern __inline int64x2_t
16163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16164 vreinterpretq_s64_u32 (uint32x4_t __a)
16166 return (int64x2_t)__a;
16169 __extension__ extern __inline uint64x2_t
16170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16171 vreinterpretq_u64_p8 (poly8x16_t __a)
16173 return (uint64x2_t)__a;
16176 __extension__ extern __inline uint64x2_t
16177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16178 vreinterpretq_u64_p16 (poly16x8_t __a)
16180 return (uint64x2_t)__a;
16183 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16184 __extension__ extern __inline uint64x2_t
16185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16186 vreinterpretq_u64_f16 (float16x8_t __a)
16188 return (uint64x2_t) __a;
16190 #endif
16192 __extension__ extern __inline uint64x2_t
16193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16194 vreinterpretq_u64_f32 (float32x4_t __a)
16196 return (uint64x2_t)__a;
16199 #pragma GCC push_options
16200 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16201 __extension__ extern __inline uint64x2_t
16202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16203 vreinterpretq_u64_p64 (poly64x2_t __a)
16205 return (uint64x2_t)__a;
16208 __extension__ extern __inline uint64x2_t
16209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16210 vreinterpretq_u64_p128 (poly128_t __a)
16212 return (uint64x2_t)__a;
16215 #pragma GCC pop_options
16216 __extension__ extern __inline uint64x2_t
16217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16218 vreinterpretq_u64_s64 (int64x2_t __a)
16220 return (uint64x2_t)__a;
16223 __extension__ extern __inline uint64x2_t
16224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16225 vreinterpretq_u64_s8 (int8x16_t __a)
16227 return (uint64x2_t)__a;
16230 __extension__ extern __inline uint64x2_t
16231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16232 vreinterpretq_u64_s16 (int16x8_t __a)
16234 return (uint64x2_t)__a;
16237 __extension__ extern __inline uint64x2_t
16238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16239 vreinterpretq_u64_s32 (int32x4_t __a)
16241 return (uint64x2_t)__a;
16244 __extension__ extern __inline uint64x2_t
16245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16246 vreinterpretq_u64_u8 (uint8x16_t __a)
16248 return (uint64x2_t)__a;
16251 __extension__ extern __inline uint64x2_t
16252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16253 vreinterpretq_u64_u16 (uint16x8_t __a)
16255 return (uint64x2_t)__a;
16258 __extension__ extern __inline uint64x2_t
16259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16260 vreinterpretq_u64_u32 (uint32x4_t __a)
16262 return (uint64x2_t)__a;
16265 __extension__ extern __inline int8x16_t
16266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16267 vreinterpretq_s8_p8 (poly8x16_t __a)
16269 return (int8x16_t)__a;
16272 __extension__ extern __inline int8x16_t
16273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16274 vreinterpretq_s8_p16 (poly16x8_t __a)
16276 return (int8x16_t)__a;
16279 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16280 __extension__ extern __inline int8x16_t
16281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16282 vreinterpretq_s8_f16 (float16x8_t __a)
16284 return (int8x16_t) __a;
16286 #endif
16288 __extension__ extern __inline int8x16_t
16289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16290 vreinterpretq_s8_f32 (float32x4_t __a)
16292 return (int8x16_t)__a;
16295 #pragma GCC push_options
16296 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16297 __extension__ extern __inline int8x16_t
16298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16299 vreinterpretq_s8_p64 (poly64x2_t __a)
16301 return (int8x16_t)__a;
16304 __extension__ extern __inline int8x16_t
16305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16306 vreinterpretq_s8_p128 (poly128_t __a)
16308 return (int8x16_t)__a;
16311 #pragma GCC pop_options
16312 __extension__ extern __inline int8x16_t
16313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16314 vreinterpretq_s8_s64 (int64x2_t __a)
16316 return (int8x16_t)__a;
16319 __extension__ extern __inline int8x16_t
16320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16321 vreinterpretq_s8_u64 (uint64x2_t __a)
16323 return (int8x16_t)__a;
16326 __extension__ extern __inline int8x16_t
16327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16328 vreinterpretq_s8_s16 (int16x8_t __a)
16330 return (int8x16_t)__a;
16333 __extension__ extern __inline int8x16_t
16334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16335 vreinterpretq_s8_s32 (int32x4_t __a)
16337 return (int8x16_t)__a;
16340 __extension__ extern __inline int8x16_t
16341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16342 vreinterpretq_s8_u8 (uint8x16_t __a)
16344 return (int8x16_t)__a;
16347 __extension__ extern __inline int8x16_t
16348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16349 vreinterpretq_s8_u16 (uint16x8_t __a)
16351 return (int8x16_t)__a;
16354 __extension__ extern __inline int8x16_t
16355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16356 vreinterpretq_s8_u32 (uint32x4_t __a)
16358 return (int8x16_t)__a;
16361 __extension__ extern __inline int16x8_t
16362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16363 vreinterpretq_s16_p8 (poly8x16_t __a)
16365 return (int16x8_t)__a;
16368 __extension__ extern __inline int16x8_t
16369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16370 vreinterpretq_s16_p16 (poly16x8_t __a)
16372 return (int16x8_t)__a;
16375 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16376 __extension__ extern __inline int16x8_t
16377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16378 vreinterpretq_s16_f16 (float16x8_t __a)
16380 return (int16x8_t) __a;
16382 #endif
16384 __extension__ extern __inline int16x8_t
16385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16386 vreinterpretq_s16_f32 (float32x4_t __a)
16388 return (int16x8_t)__a;
16391 #pragma GCC push_options
16392 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16393 __extension__ extern __inline int16x8_t
16394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16395 vreinterpretq_s16_p64 (poly64x2_t __a)
16397 return (int16x8_t)__a;
16400 __extension__ extern __inline int16x8_t
16401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16402 vreinterpretq_s16_p128 (poly128_t __a)
16404 return (int16x8_t)__a;
16407 #pragma GCC pop_options
16408 __extension__ extern __inline int16x8_t
16409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16410 vreinterpretq_s16_s64 (int64x2_t __a)
16412 return (int16x8_t)__a;
16415 __extension__ extern __inline int16x8_t
16416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16417 vreinterpretq_s16_u64 (uint64x2_t __a)
16419 return (int16x8_t)__a;
16422 __extension__ extern __inline int16x8_t
16423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16424 vreinterpretq_s16_s8 (int8x16_t __a)
16426 return (int16x8_t)__a;
16429 __extension__ extern __inline int16x8_t
16430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16431 vreinterpretq_s16_s32 (int32x4_t __a)
16433 return (int16x8_t)__a;
16436 __extension__ extern __inline int16x8_t
16437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16438 vreinterpretq_s16_u8 (uint8x16_t __a)
16440 return (int16x8_t)__a;
16443 __extension__ extern __inline int16x8_t
16444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16445 vreinterpretq_s16_u16 (uint16x8_t __a)
16447 return (int16x8_t)__a;
16450 __extension__ extern __inline int16x8_t
16451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16452 vreinterpretq_s16_u32 (uint32x4_t __a)
16454 return (int16x8_t)__a;
16457 __extension__ extern __inline int32x4_t
16458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16459 vreinterpretq_s32_p8 (poly8x16_t __a)
16461 return (int32x4_t)__a;
16464 __extension__ extern __inline int32x4_t
16465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16466 vreinterpretq_s32_p16 (poly16x8_t __a)
16468 return (int32x4_t)__a;
16471 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16472 __extension__ extern __inline int32x4_t
16473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16474 vreinterpretq_s32_f16 (float16x8_t __a)
16476 return (int32x4_t)__a;
16478 #endif
16480 __extension__ extern __inline int32x4_t
16481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16482 vreinterpretq_s32_f32 (float32x4_t __a)
16484 return (int32x4_t)__a;
16487 #pragma GCC push_options
16488 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16489 __extension__ extern __inline int32x4_t
16490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16491 vreinterpretq_s32_p64 (poly64x2_t __a)
16493 return (int32x4_t)__a;
16496 __extension__ extern __inline int32x4_t
16497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16498 vreinterpretq_s32_p128 (poly128_t __a)
16500 return (int32x4_t)__a;
16503 #pragma GCC pop_options
16504 __extension__ extern __inline int32x4_t
16505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16506 vreinterpretq_s32_s64 (int64x2_t __a)
16508 return (int32x4_t)__a;
16511 __extension__ extern __inline int32x4_t
16512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16513 vreinterpretq_s32_u64 (uint64x2_t __a)
16515 return (int32x4_t)__a;
16518 __extension__ extern __inline int32x4_t
16519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16520 vreinterpretq_s32_s8 (int8x16_t __a)
16522 return (int32x4_t)__a;
16525 __extension__ extern __inline int32x4_t
16526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16527 vreinterpretq_s32_s16 (int16x8_t __a)
16529 return (int32x4_t)__a;
16532 __extension__ extern __inline int32x4_t
16533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16534 vreinterpretq_s32_u8 (uint8x16_t __a)
16536 return (int32x4_t)__a;
16539 __extension__ extern __inline int32x4_t
16540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16541 vreinterpretq_s32_u16 (uint16x8_t __a)
16543 return (int32x4_t)__a;
16546 __extension__ extern __inline int32x4_t
16547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16548 vreinterpretq_s32_u32 (uint32x4_t __a)
16550 return (int32x4_t)__a;
16553 __extension__ extern __inline uint8x16_t
16554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16555 vreinterpretq_u8_p8 (poly8x16_t __a)
16557 return (uint8x16_t)__a;
16560 __extension__ extern __inline uint8x16_t
16561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16562 vreinterpretq_u8_p16 (poly16x8_t __a)
16564 return (uint8x16_t)__a;
16567 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16568 __extension__ extern __inline uint8x16_t
16569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16570 vreinterpretq_u8_f16 (float16x8_t __a)
16572 return (uint8x16_t) __a;
16574 #endif
16576 __extension__ extern __inline uint8x16_t
16577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16578 vreinterpretq_u8_f32 (float32x4_t __a)
16580 return (uint8x16_t)__a;
16583 #pragma GCC push_options
16584 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16585 __extension__ extern __inline uint8x16_t
16586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16587 vreinterpretq_u8_p64 (poly64x2_t __a)
16589 return (uint8x16_t)__a;
16592 __extension__ extern __inline uint8x16_t
16593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16594 vreinterpretq_u8_p128 (poly128_t __a)
16596 return (uint8x16_t)__a;
16599 #pragma GCC pop_options
16600 __extension__ extern __inline uint8x16_t
16601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16602 vreinterpretq_u8_s64 (int64x2_t __a)
16604 return (uint8x16_t)__a;
16607 __extension__ extern __inline uint8x16_t
16608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16609 vreinterpretq_u8_u64 (uint64x2_t __a)
16611 return (uint8x16_t)__a;
16614 __extension__ extern __inline uint8x16_t
16615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16616 vreinterpretq_u8_s8 (int8x16_t __a)
16618 return (uint8x16_t)__a;
16621 __extension__ extern __inline uint8x16_t
16622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16623 vreinterpretq_u8_s16 (int16x8_t __a)
16625 return (uint8x16_t)__a;
16628 __extension__ extern __inline uint8x16_t
16629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16630 vreinterpretq_u8_s32 (int32x4_t __a)
16632 return (uint8x16_t)__a;
16635 __extension__ extern __inline uint8x16_t
16636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16637 vreinterpretq_u8_u16 (uint16x8_t __a)
16639 return (uint8x16_t)__a;
16642 __extension__ extern __inline uint8x16_t
16643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16644 vreinterpretq_u8_u32 (uint32x4_t __a)
16646 return (uint8x16_t)__a;
16649 __extension__ extern __inline uint16x8_t
16650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16651 vreinterpretq_u16_p8 (poly8x16_t __a)
16653 return (uint16x8_t)__a;
16656 __extension__ extern __inline uint16x8_t
16657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16658 vreinterpretq_u16_p16 (poly16x8_t __a)
16660 return (uint16x8_t)__a;
16663 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16664 __extension__ extern __inline uint16x8_t
16665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16666 vreinterpretq_u16_f16 (float16x8_t __a)
16668 return (uint16x8_t) __a;
16670 #endif
16672 __extension__ extern __inline uint16x8_t
16673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16674 vreinterpretq_u16_f32 (float32x4_t __a)
16676 return (uint16x8_t)__a;
16679 #pragma GCC push_options
16680 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16681 __extension__ extern __inline uint16x8_t
16682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16683 vreinterpretq_u16_p64 (poly64x2_t __a)
16685 return (uint16x8_t)__a;
16688 __extension__ extern __inline uint16x8_t
16689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16690 vreinterpretq_u16_p128 (poly128_t __a)
16692 return (uint16x8_t)__a;
16695 #pragma GCC pop_options
16696 __extension__ extern __inline uint16x8_t
16697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16698 vreinterpretq_u16_s64 (int64x2_t __a)
16700 return (uint16x8_t)__a;
16703 __extension__ extern __inline uint16x8_t
16704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16705 vreinterpretq_u16_u64 (uint64x2_t __a)
16707 return (uint16x8_t)__a;
16710 __extension__ extern __inline uint16x8_t
16711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16712 vreinterpretq_u16_s8 (int8x16_t __a)
16714 return (uint16x8_t)__a;
16717 __extension__ extern __inline uint16x8_t
16718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16719 vreinterpretq_u16_s16 (int16x8_t __a)
16721 return (uint16x8_t)__a;
16724 __extension__ extern __inline uint16x8_t
16725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16726 vreinterpretq_u16_s32 (int32x4_t __a)
16728 return (uint16x8_t)__a;
16731 __extension__ extern __inline uint16x8_t
16732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16733 vreinterpretq_u16_u8 (uint8x16_t __a)
16735 return (uint16x8_t)__a;
16738 __extension__ extern __inline uint16x8_t
16739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16740 vreinterpretq_u16_u32 (uint32x4_t __a)
16742 return (uint16x8_t)__a;
16745 __extension__ extern __inline uint32x4_t
16746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16747 vreinterpretq_u32_p8 (poly8x16_t __a)
16749 return (uint32x4_t)__a;
16752 __extension__ extern __inline uint32x4_t
16753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16754 vreinterpretq_u32_p16 (poly16x8_t __a)
16756 return (uint32x4_t)__a;
16759 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16760 __extension__ extern __inline uint32x4_t
16761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16762 vreinterpretq_u32_f16 (float16x8_t __a)
16764 return (uint32x4_t) __a;
16766 #endif
16768 __extension__ extern __inline uint32x4_t
16769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16770 vreinterpretq_u32_f32 (float32x4_t __a)
16772 return (uint32x4_t)__a;
16775 #pragma GCC push_options
16776 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16777 __extension__ extern __inline uint32x4_t
16778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16779 vreinterpretq_u32_p64 (poly64x2_t __a)
16781 return (uint32x4_t)__a;
16784 __extension__ extern __inline uint32x4_t
16785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16786 vreinterpretq_u32_p128 (poly128_t __a)
16788 return (uint32x4_t)__a;
16791 #pragma GCC pop_options
16792 __extension__ extern __inline uint32x4_t
16793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16794 vreinterpretq_u32_s64 (int64x2_t __a)
16796 return (uint32x4_t)__a;
16799 __extension__ extern __inline uint32x4_t
16800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16801 vreinterpretq_u32_u64 (uint64x2_t __a)
16803 return (uint32x4_t)__a;
16806 __extension__ extern __inline uint32x4_t
16807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16808 vreinterpretq_u32_s8 (int8x16_t __a)
16810 return (uint32x4_t)__a;
16813 __extension__ extern __inline uint32x4_t
16814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16815 vreinterpretq_u32_s16 (int16x8_t __a)
16817 return (uint32x4_t)__a;
16820 __extension__ extern __inline uint32x4_t
16821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16822 vreinterpretq_u32_s32 (int32x4_t __a)
16824 return (uint32x4_t)__a;
16827 __extension__ extern __inline uint32x4_t
16828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16829 vreinterpretq_u32_u8 (uint8x16_t __a)
16831 return (uint32x4_t)__a;
16834 __extension__ extern __inline uint32x4_t
16835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16836 vreinterpretq_u32_u16 (uint16x8_t __a)
16838 return (uint32x4_t)__a;
16842 #pragma GCC push_options
16843 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16844 __extension__ extern __inline poly128_t
16845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16846 vldrq_p128 (poly128_t const * __ptr)
16848 #ifdef __ARM_BIG_ENDIAN
16849 poly64_t* __ptmp = (poly64_t*) __ptr;
16850 poly64_t __d0 = vld1_p64 (__ptmp);
16851 poly64_t __d1 = vld1_p64 (__ptmp + 1);
16852 return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0));
16853 #else
16854 return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr));
16855 #endif
16858 __extension__ extern __inline void
16859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16860 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
16862 #ifdef __ARM_BIG_ENDIAN
16863 poly64x2_t __tmp = vreinterpretq_p64_p128 (__val);
16864 poly64_t __d0 = vget_high_p64 (__tmp);
16865 poly64_t __d1 = vget_low_p64 (__tmp);
16866 vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1));
16867 #else
16868 vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val));
16869 #endif
16872 /* The vceq_p64 intrinsic does not map to a single instruction.
16873 Instead we emulate it by performing a 32-bit variant of the vceq
16874 and applying a pairwise min reduction to the result.
16875 vceq_u32 will produce two 32-bit halves, each of which will contain either
16876 all ones or all zeros depending on whether the corresponding 32-bit
16877 halves of the poly64_t were equal. The whole poly64_t values are equal
16878 if and only if both halves are equal, i.e. vceq_u32 returns all ones.
16879 If the result is all zeroes for any half then the whole result is zeroes.
16880 This is what the pairwise min reduction achieves. */
16882 __extension__ extern __inline uint64x1_t
16883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16884 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
16886 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16887 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16888 uint32x2_t __c = vceq_u32 (__t_a, __t_b);
16889 uint32x2_t __m = vpmin_u32 (__c, __c);
16890 return vreinterpret_u64_u32 (__m);
16893 /* The vtst_p64 intrinsic does not map to a single instruction.
16894 We emulate it in way similar to vceq_p64 above but here we do
16895 a reduction with max since if any two corresponding bits
16896 in the two poly64_t's match, then the whole result must be all ones. */
16898 __extension__ extern __inline uint64x1_t
16899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16900 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
16902 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16903 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16904 uint32x2_t __c = vtst_u32 (__t_a, __t_b);
16905 uint32x2_t __m = vpmax_u32 (__c, __c);
16906 return vreinterpret_u64_u32 (__m);
16909 __extension__ extern __inline uint8x16_t
16910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16911 vaeseq_u8 (uint8x16_t __data, uint8x16_t __key)
16913 return __builtin_arm_crypto_aese (__data, __key);
16916 __extension__ extern __inline uint8x16_t
16917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16918 vaesdq_u8 (uint8x16_t __data, uint8x16_t __key)
16920 return __builtin_arm_crypto_aesd (__data, __key);
16923 __extension__ extern __inline uint8x16_t
16924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16925 vaesmcq_u8 (uint8x16_t __data)
16927 return __builtin_arm_crypto_aesmc (__data);
16930 __extension__ extern __inline uint8x16_t
16931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16932 vaesimcq_u8 (uint8x16_t __data)
16934 return __builtin_arm_crypto_aesimc (__data);
16937 __extension__ extern __inline uint32_t
16938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16939 vsha1h_u32 (uint32_t __hash_e)
16941 uint32x4_t __t = vdupq_n_u32 (0);
16942 __t = vsetq_lane_u32 (__hash_e, __t, 0);
16943 __t = __builtin_arm_crypto_sha1h (__t);
16944 return vgetq_lane_u32 (__t, 0);
16947 __extension__ extern __inline uint32x4_t
16948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16949 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16951 uint32x4_t __t = vdupq_n_u32 (0);
16952 __t = vsetq_lane_u32 (__hash_e, __t, 0);
16953 return __builtin_arm_crypto_sha1c (__hash_abcd, __t, __wk);
16956 __extension__ extern __inline uint32x4_t
16957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16958 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16960 uint32x4_t __t = vdupq_n_u32 (0);
16961 __t = vsetq_lane_u32 (__hash_e, __t, 0);
16962 return __builtin_arm_crypto_sha1p (__hash_abcd, __t, __wk);
16965 __extension__ extern __inline uint32x4_t
16966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16967 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
16969 uint32x4_t __t = vdupq_n_u32 (0);
16970 __t = vsetq_lane_u32 (__hash_e, __t, 0);
16971 return __builtin_arm_crypto_sha1m (__hash_abcd, __t, __wk);
16974 __extension__ extern __inline uint32x4_t
16975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16976 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
16978 return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11);
16981 __extension__ extern __inline uint32x4_t
16982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16983 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
16985 return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15);
16988 __extension__ extern __inline uint32x4_t
16989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16990 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
16992 return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk);
16995 __extension__ extern __inline uint32x4_t
16996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16997 vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
16999 return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk);
17002 __extension__ extern __inline uint32x4_t
17003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17004 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
17006 return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7);
17009 __extension__ extern __inline uint32x4_t
17010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17011 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
17013 return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15);
17016 __extension__ extern __inline poly128_t
17017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17018 vmull_p64 (poly64_t __a, poly64_t __b)
17020 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b);
17023 __extension__ extern __inline poly128_t
17024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17025 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
17027 poly64_t __t1 = vget_high_p64 (__a);
17028 poly64_t __t2 = vget_high_p64 (__b);
17030 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2);
17033 #pragma GCC pop_options
17035 /* Intrinsics for FP16 instructions. */
17036 #pragma GCC push_options
17037 #pragma GCC target ("fpu=neon-fp-armv8")
17038 #if defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
17040 __extension__ extern __inline float16x4_t
17041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17042 vabd_f16 (float16x4_t __a, float16x4_t __b)
17044 return __builtin_neon_vabdv4hf (__a, __b);
17047 __extension__ extern __inline float16x8_t
17048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17049 vabdq_f16 (float16x8_t __a, float16x8_t __b)
17051 return __builtin_neon_vabdv8hf (__a, __b);
17054 __extension__ extern __inline float16x4_t
17055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17056 vabs_f16 (float16x4_t __a)
17058 return __builtin_neon_vabsv4hf (__a);
17061 __extension__ extern __inline float16x8_t
17062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17063 vabsq_f16 (float16x8_t __a)
17065 return __builtin_neon_vabsv8hf (__a);
17068 __extension__ extern __inline float16x4_t
17069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17070 vadd_f16 (float16x4_t __a, float16x4_t __b)
17072 #ifdef __FAST_MATH__
17073 return __a + __b;
17074 #else
17075 return __builtin_neon_vaddv4hf (__a, __b);
17076 #endif
17079 __extension__ extern __inline float16x8_t
17080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17081 vaddq_f16 (float16x8_t __a, float16x8_t __b)
17083 #ifdef __FAST_MATH__
17084 return __a + __b;
17085 #else
17086 return __builtin_neon_vaddv8hf (__a, __b);
17087 #endif
17090 __extension__ extern __inline uint16x4_t
17091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17092 vcage_f16 (float16x4_t __a, float16x4_t __b)
17094 return (uint16x4_t)__builtin_neon_vcagev4hf (__a, __b);
17097 __extension__ extern __inline uint16x8_t
17098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17099 vcageq_f16 (float16x8_t __a, float16x8_t __b)
17101 return (uint16x8_t)__builtin_neon_vcagev8hf (__a, __b);
17104 __extension__ extern __inline uint16x4_t
17105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17106 vcagt_f16 (float16x4_t __a, float16x4_t __b)
17108 return (uint16x4_t)__builtin_neon_vcagtv4hf (__a, __b);
17111 __extension__ extern __inline uint16x8_t
17112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17113 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
17115 return (uint16x8_t)__builtin_neon_vcagtv8hf (__a, __b);
17118 __extension__ extern __inline uint16x4_t
17119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17120 vcale_f16 (float16x4_t __a, float16x4_t __b)
17122 return (uint16x4_t)__builtin_neon_vcalev4hf (__a, __b);
17125 __extension__ extern __inline uint16x8_t
17126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17127 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
17129 return (uint16x8_t)__builtin_neon_vcalev8hf (__a, __b);
17132 __extension__ extern __inline uint16x4_t
17133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17134 vcalt_f16 (float16x4_t __a, float16x4_t __b)
17136 return (uint16x4_t)__builtin_neon_vcaltv4hf (__a, __b);
17139 __extension__ extern __inline uint16x8_t
17140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17141 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
17143 return (uint16x8_t)__builtin_neon_vcaltv8hf (__a, __b);
17146 __extension__ extern __inline uint16x4_t
17147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17148 vceq_f16 (float16x4_t __a, float16x4_t __b)
17150 return (uint16x4_t)__builtin_neon_vceqv4hf (__a, __b);
17153 __extension__ extern __inline uint16x8_t
17154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17155 vceqq_f16 (float16x8_t __a, float16x8_t __b)
17157 return (uint16x8_t)__builtin_neon_vceqv8hf (__a, __b);
17160 __extension__ extern __inline uint16x4_t
17161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17162 vceqz_f16 (float16x4_t __a)
17164 return (uint16x4_t)__builtin_neon_vceqzv4hf (__a);
17167 __extension__ extern __inline uint16x8_t
17168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17169 vceqzq_f16 (float16x8_t __a)
17171 return (uint16x8_t)__builtin_neon_vceqzv8hf (__a);
17174 __extension__ extern __inline uint16x4_t
17175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17176 vcge_f16 (float16x4_t __a, float16x4_t __b)
17178 return (uint16x4_t)__builtin_neon_vcgev4hf (__a, __b);
17181 __extension__ extern __inline uint16x8_t
17182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17183 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
17185 return (uint16x8_t)__builtin_neon_vcgev8hf (__a, __b);
17188 __extension__ extern __inline uint16x4_t
17189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17190 vcgez_f16 (float16x4_t __a)
17192 return (uint16x4_t)__builtin_neon_vcgezv4hf (__a);
17195 __extension__ extern __inline uint16x8_t
17196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17197 vcgezq_f16 (float16x8_t __a)
17199 return (uint16x8_t)__builtin_neon_vcgezv8hf (__a);
17202 __extension__ extern __inline uint16x4_t
17203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17204 vcgt_f16 (float16x4_t __a, float16x4_t __b)
17206 return (uint16x4_t)__builtin_neon_vcgtv4hf (__a, __b);
17209 __extension__ extern __inline uint16x8_t
17210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17211 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
17213 return (uint16x8_t)__builtin_neon_vcgtv8hf (__a, __b);
17216 __extension__ extern __inline uint16x4_t
17217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17218 vcgtz_f16 (float16x4_t __a)
17220 return (uint16x4_t)__builtin_neon_vcgtzv4hf (__a);
17223 __extension__ extern __inline uint16x8_t
17224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17225 vcgtzq_f16 (float16x8_t __a)
17227 return (uint16x8_t)__builtin_neon_vcgtzv8hf (__a);
17230 __extension__ extern __inline uint16x4_t
17231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17232 vcle_f16 (float16x4_t __a, float16x4_t __b)
17234 return (uint16x4_t)__builtin_neon_vclev4hf (__a, __b);
17237 __extension__ extern __inline uint16x8_t
17238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17239 vcleq_f16 (float16x8_t __a, float16x8_t __b)
17241 return (uint16x8_t)__builtin_neon_vclev8hf (__a, __b);
17244 __extension__ extern __inline uint16x4_t
17245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17246 vclez_f16 (float16x4_t __a)
17248 return (uint16x4_t)__builtin_neon_vclezv4hf (__a);
17251 __extension__ extern __inline uint16x8_t
17252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17253 vclezq_f16 (float16x8_t __a)
17255 return (uint16x8_t)__builtin_neon_vclezv8hf (__a);
17258 __extension__ extern __inline uint16x4_t
17259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17260 vclt_f16 (float16x4_t __a, float16x4_t __b)
17262 return (uint16x4_t)__builtin_neon_vcltv4hf (__a, __b);
17265 __extension__ extern __inline uint16x8_t
17266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17267 vcltq_f16 (float16x8_t __a, float16x8_t __b)
17269 return (uint16x8_t)__builtin_neon_vcltv8hf (__a, __b);
17272 __extension__ extern __inline uint16x4_t
17273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17274 vcltz_f16 (float16x4_t __a)
17276 return (uint16x4_t)__builtin_neon_vcltzv4hf (__a);
17279 __extension__ extern __inline uint16x8_t
17280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17281 vcltzq_f16 (float16x8_t __a)
17283 return (uint16x8_t)__builtin_neon_vcltzv8hf (__a);
17286 __extension__ extern __inline float16x4_t
17287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17288 vcvt_f16_s16 (int16x4_t __a)
17290 return (float16x4_t)__builtin_neon_vcvtsv4hi (__a);
17293 __extension__ extern __inline float16x4_t
17294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17295 vcvt_f16_u16 (uint16x4_t __a)
17297 return (float16x4_t)__builtin_neon_vcvtuv4hi ((int16x4_t)__a);
17300 __extension__ extern __inline int16x4_t
17301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17302 vcvt_s16_f16 (float16x4_t __a)
17304 return (int16x4_t)__builtin_neon_vcvtsv4hf (__a);
17307 __extension__ extern __inline uint16x4_t
17308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17309 vcvt_u16_f16 (float16x4_t __a)
17311 return (uint16x4_t)__builtin_neon_vcvtuv4hf (__a);
17314 __extension__ extern __inline float16x8_t
17315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17316 vcvtq_f16_s16 (int16x8_t __a)
17318 return (float16x8_t)__builtin_neon_vcvtsv8hi (__a);
17321 __extension__ extern __inline float16x8_t
17322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17323 vcvtq_f16_u16 (uint16x8_t __a)
17325 return (float16x8_t)__builtin_neon_vcvtuv8hi ((int16x8_t)__a);
17328 __extension__ extern __inline int16x8_t
17329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17330 vcvtq_s16_f16 (float16x8_t __a)
17332 return (int16x8_t)__builtin_neon_vcvtsv8hf (__a);
17335 __extension__ extern __inline uint16x8_t
17336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17337 vcvtq_u16_f16 (float16x8_t __a)
17339 return (uint16x8_t)__builtin_neon_vcvtuv8hf (__a);
17342 __extension__ extern __inline int16x4_t
17343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17344 vcvta_s16_f16 (float16x4_t __a)
17346 return __builtin_neon_vcvtasv4hf (__a);
17349 __extension__ extern __inline uint16x4_t
17350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17351 vcvta_u16_f16 (float16x4_t __a)
17353 return (uint16x4_t)__builtin_neon_vcvtauv4hf (__a);
17356 __extension__ extern __inline int16x8_t
17357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17358 vcvtaq_s16_f16 (float16x8_t __a)
17360 return __builtin_neon_vcvtasv8hf (__a);
17363 __extension__ extern __inline uint16x8_t
17364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17365 vcvtaq_u16_f16 (float16x8_t __a)
17367 return (uint16x8_t)__builtin_neon_vcvtauv8hf (__a);
17370 __extension__ extern __inline int16x4_t
17371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17372 vcvtm_s16_f16 (float16x4_t __a)
17374 return __builtin_neon_vcvtmsv4hf (__a);
17377 __extension__ extern __inline uint16x4_t
17378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17379 vcvtm_u16_f16 (float16x4_t __a)
17381 return (uint16x4_t)__builtin_neon_vcvtmuv4hf (__a);
17384 __extension__ extern __inline int16x8_t
17385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17386 vcvtmq_s16_f16 (float16x8_t __a)
17388 return __builtin_neon_vcvtmsv8hf (__a);
17391 __extension__ extern __inline uint16x8_t
17392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17393 vcvtmq_u16_f16 (float16x8_t __a)
17395 return (uint16x8_t)__builtin_neon_vcvtmuv8hf (__a);
17398 __extension__ extern __inline int16x4_t
17399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17400 vcvtn_s16_f16 (float16x4_t __a)
17402 return __builtin_neon_vcvtnsv4hf (__a);
17405 __extension__ extern __inline uint16x4_t
17406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17407 vcvtn_u16_f16 (float16x4_t __a)
17409 return (uint16x4_t)__builtin_neon_vcvtnuv4hf (__a);
17412 __extension__ extern __inline int16x8_t
17413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17414 vcvtnq_s16_f16 (float16x8_t __a)
17416 return __builtin_neon_vcvtnsv8hf (__a);
17419 __extension__ extern __inline uint16x8_t
17420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17421 vcvtnq_u16_f16 (float16x8_t __a)
17423 return (uint16x8_t)__builtin_neon_vcvtnuv8hf (__a);
17426 __extension__ extern __inline int16x4_t
17427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17428 vcvtp_s16_f16 (float16x4_t __a)
17430 return __builtin_neon_vcvtpsv4hf (__a);
17433 __extension__ extern __inline uint16x4_t
17434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17435 vcvtp_u16_f16 (float16x4_t __a)
17437 return (uint16x4_t)__builtin_neon_vcvtpuv4hf (__a);
17440 __extension__ extern __inline int16x8_t
17441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17442 vcvtpq_s16_f16 (float16x8_t __a)
17444 return __builtin_neon_vcvtpsv8hf (__a);
17447 __extension__ extern __inline uint16x8_t
17448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17449 vcvtpq_u16_f16 (float16x8_t __a)
17451 return (uint16x8_t)__builtin_neon_vcvtpuv8hf (__a);
17454 __extension__ extern __inline float16x4_t
17455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17456 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
17458 return __builtin_neon_vcvts_nv4hi (__a, __b);
17461 __extension__ extern __inline float16x4_t
17462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17463 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
17465 return __builtin_neon_vcvtu_nv4hi ((int16x4_t)__a, __b);
17468 __extension__ extern __inline float16x8_t
17469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17470 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
17472 return __builtin_neon_vcvts_nv8hi (__a, __b);
17475 __extension__ extern __inline float16x8_t
17476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17477 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
17479 return __builtin_neon_vcvtu_nv8hi ((int16x8_t)__a, __b);
17482 __extension__ extern __inline int16x4_t
17483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17484 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
17486 return __builtin_neon_vcvts_nv4hf (__a, __b);
17489 __extension__ extern __inline uint16x4_t
17490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17491 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
17493 return (uint16x4_t)__builtin_neon_vcvtu_nv4hf (__a, __b);
17496 __extension__ extern __inline int16x8_t
17497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17498 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
17500 return __builtin_neon_vcvts_nv8hf (__a, __b);
17503 __extension__ extern __inline uint16x8_t
17504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17505 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
17507 return (uint16x8_t)__builtin_neon_vcvtu_nv8hf (__a, __b);
17510 __extension__ extern __inline float16x4_t
17511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17512 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17514 return __builtin_neon_vfmav4hf (__a, __b, __c);
17517 __extension__ extern __inline float16x8_t
17518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17519 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17521 return __builtin_neon_vfmav8hf (__a, __b, __c);
17524 __extension__ extern __inline float16x4_t
17525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17526 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17528 return __builtin_neon_vfmsv4hf (__a, __b, __c);
17531 __extension__ extern __inline float16x8_t
17532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17533 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17535 return __builtin_neon_vfmsv8hf (__a, __b, __c);
17538 __extension__ extern __inline float16x4_t
17539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17540 vmax_f16 (float16x4_t __a, float16x4_t __b)
17542 return __builtin_neon_vmaxfv4hf (__a, __b);
17545 __extension__ extern __inline float16x8_t
17546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17547 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
17549 return __builtin_neon_vmaxfv8hf (__a, __b);
17552 __extension__ extern __inline float16x4_t
17553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17554 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
17556 return __builtin_neon_vmaxnmv4hf (__a, __b);
17559 __extension__ extern __inline float16x8_t
17560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17561 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
17563 return __builtin_neon_vmaxnmv8hf (__a, __b);
17566 __extension__ extern __inline float16x4_t
17567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17568 vmin_f16 (float16x4_t __a, float16x4_t __b)
17570 return __builtin_neon_vminfv4hf (__a, __b);
17573 __extension__ extern __inline float16x8_t
17574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17575 vminq_f16 (float16x8_t __a, float16x8_t __b)
17577 return __builtin_neon_vminfv8hf (__a, __b);
17580 __extension__ extern __inline float16x4_t
17581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17582 vminnm_f16 (float16x4_t __a, float16x4_t __b)
17584 return __builtin_neon_vminnmv4hf (__a, __b);
17587 __extension__ extern __inline float16x8_t
17588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17589 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
17591 return __builtin_neon_vminnmv8hf (__a, __b);
17594 __extension__ extern __inline float16x4_t
17595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17596 vmul_f16 (float16x4_t __a, float16x4_t __b)
17598 #ifdef __FAST_MATH__
17599 return __a * __b;
17600 #else
17601 return __builtin_neon_vmulfv4hf (__a, __b);
17602 #endif
17605 __extension__ extern __inline float16x4_t
17606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17607 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17609 return __builtin_neon_vmul_lanev4hf (__a, __b, __c);
17612 __extension__ extern __inline float16x4_t
17613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17614 vmul_n_f16 (float16x4_t __a, float16_t __b)
17616 return __builtin_neon_vmul_nv4hf (__a, __b);
17619 __extension__ extern __inline float16x8_t
17620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17621 vmulq_f16 (float16x8_t __a, float16x8_t __b)
17623 #ifdef __FAST_MATH__
17624 return __a * __b;
17625 #else
17626 return __builtin_neon_vmulfv8hf (__a, __b);
17627 #endif
17630 __extension__ extern __inline float16x8_t
17631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17632 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __c)
17634 return __builtin_neon_vmul_lanev8hf (__a, __b, __c);
17637 __extension__ extern __inline float16x8_t
17638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17639 vmulq_n_f16 (float16x8_t __a, float16_t __b)
17641 return __builtin_neon_vmul_nv8hf (__a, __b);
17644 __extension__ extern __inline float16x4_t
17645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17646 vneg_f16 (float16x4_t __a)
17648 return __builtin_neon_vnegv4hf (__a);
17651 __extension__ extern __inline float16x8_t
17652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17653 vnegq_f16 (float16x8_t __a)
17655 return __builtin_neon_vnegv8hf (__a);
17658 __extension__ extern __inline float16x4_t
17659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17660 vpadd_f16 (float16x4_t __a, float16x4_t __b)
17662 return __builtin_neon_vpaddv4hf (__a, __b);
17665 __extension__ extern __inline float16x4_t
17666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17667 vpmax_f16 (float16x4_t __a, float16x4_t __b)
17669 return __builtin_neon_vpmaxfv4hf (__a, __b);
17672 __extension__ extern __inline float16x4_t
17673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17674 vpmin_f16 (float16x4_t __a, float16x4_t __b)
17676 return __builtin_neon_vpminfv4hf (__a, __b);
17679 __extension__ extern __inline float16x4_t
17680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17681 vrecpe_f16 (float16x4_t __a)
17683 return __builtin_neon_vrecpev4hf (__a);
17686 __extension__ extern __inline float16x8_t
17687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17688 vrecpeq_f16 (float16x8_t __a)
17690 return __builtin_neon_vrecpev8hf (__a);
17693 __extension__ extern __inline float16x4_t
17694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17695 vrnd_f16 (float16x4_t __a)
17697 return __builtin_neon_vrndv4hf (__a);
17700 __extension__ extern __inline float16x8_t
17701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17702 vrndq_f16 (float16x8_t __a)
17704 return __builtin_neon_vrndv8hf (__a);
17707 __extension__ extern __inline float16x4_t
17708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17709 vrnda_f16 (float16x4_t __a)
17711 return __builtin_neon_vrndav4hf (__a);
17714 __extension__ extern __inline float16x8_t
17715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17716 vrndaq_f16 (float16x8_t __a)
17718 return __builtin_neon_vrndav8hf (__a);
17721 __extension__ extern __inline float16x4_t
17722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17723 vrndm_f16 (float16x4_t __a)
17725 return __builtin_neon_vrndmv4hf (__a);
17728 __extension__ extern __inline float16x8_t
17729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17730 vrndmq_f16 (float16x8_t __a)
17732 return __builtin_neon_vrndmv8hf (__a);
17735 __extension__ extern __inline float16x4_t
17736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17737 vrndn_f16 (float16x4_t __a)
17739 return __builtin_neon_vrndnv4hf (__a);
17742 __extension__ extern __inline float16x8_t
17743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17744 vrndnq_f16 (float16x8_t __a)
17746 return __builtin_neon_vrndnv8hf (__a);
17749 __extension__ extern __inline float16x4_t
17750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17751 vrndp_f16 (float16x4_t __a)
17753 return __builtin_neon_vrndpv4hf (__a);
17756 __extension__ extern __inline float16x8_t
17757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17758 vrndpq_f16 (float16x8_t __a)
17760 return __builtin_neon_vrndpv8hf (__a);
17763 __extension__ extern __inline float16x4_t
17764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17765 vrndx_f16 (float16x4_t __a)
17767 return __builtin_neon_vrndxv4hf (__a);
17770 __extension__ extern __inline float16x8_t
17771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17772 vrndxq_f16 (float16x8_t __a)
17774 return __builtin_neon_vrndxv8hf (__a);
17777 __extension__ extern __inline float16x4_t
17778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17779 vrsqrte_f16 (float16x4_t __a)
17781 return __builtin_neon_vrsqrtev4hf (__a);
17784 __extension__ extern __inline float16x8_t
17785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17786 vrsqrteq_f16 (float16x8_t __a)
17788 return __builtin_neon_vrsqrtev8hf (__a);
17791 __extension__ extern __inline float16x4_t
17792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17793 vrecps_f16 (float16x4_t __a, float16x4_t __b)
17795 return __builtin_neon_vrecpsv4hf (__a, __b);
17798 __extension__ extern __inline float16x8_t
17799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17800 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
17802 return __builtin_neon_vrecpsv8hf (__a, __b);
17805 __extension__ extern __inline float16x4_t
17806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17807 vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
17809 return __builtin_neon_vrsqrtsv4hf (__a, __b);
17812 __extension__ extern __inline float16x8_t
17813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17814 vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
17816 return __builtin_neon_vrsqrtsv8hf (__a, __b);
17819 __extension__ extern __inline float16x4_t
17820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17821 vsub_f16 (float16x4_t __a, float16x4_t __b)
17823 #ifdef __FAST_MATH__
17824 return __a - __b;
17825 #else
17826 return __builtin_neon_vsubv4hf (__a, __b);
17827 #endif
17830 __extension__ extern __inline float16x8_t
17831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17832 vsubq_f16 (float16x8_t __a, float16x8_t __b)
17834 #ifdef __FAST_MATH__
17835 return __a - __b;
17836 #else
17837 return __builtin_neon_vsubv8hf (__a, __b);
17838 #endif
17841 #endif /* __ARM_FEATURE_VECTOR_FP16_ARITHMETIC. */
17842 #pragma GCC pop_options
17844 /* Half-precision data processing intrinsics. */
17845 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
17847 __extension__ extern __inline float16x4_t
17848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17849 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
17851 return __builtin_neon_vbslv4hf ((int16x4_t)__a, __b, __c);
17854 __extension__ extern __inline float16x8_t
17855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17856 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
17858 return __builtin_neon_vbslv8hf ((int16x8_t)__a, __b, __c);
17861 __extension__ extern __inline float16x4_t
17862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17863 vdup_n_f16 (float16_t __a)
17865 return __builtin_neon_vdup_nv4hf (__a);
17868 __extension__ extern __inline float16x8_t
17869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17870 vdupq_n_f16 (float16_t __a)
17872 return __builtin_neon_vdup_nv8hf (__a);
17875 __extension__ extern __inline float16x4_t
17876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17877 vdup_lane_f16 (float16x4_t __a, const int __b)
17879 return __builtin_neon_vdup_lanev4hf (__a, __b);
17882 __extension__ extern __inline float16x8_t
17883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17884 vdupq_lane_f16 (float16x4_t __a, const int __b)
17886 return __builtin_neon_vdup_lanev8hf (__a, __b);
17889 __extension__ extern __inline float16x4_t
17890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17891 vext_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17893 return __builtin_neon_vextv4hf (__a, __b, __c);
17896 __extension__ extern __inline float16x8_t
17897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17898 vextq_f16 (float16x8_t __a, float16x8_t __b, const int __c)
17900 return __builtin_neon_vextv8hf (__a, __b, __c);
17903 __extension__ extern __inline float16x4_t
17904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17905 vmov_n_f16 (float16_t __a)
17907 return __builtin_neon_vdup_nv4hf (__a);
17910 __extension__ extern __inline float16x8_t
17911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17912 vmovq_n_f16 (float16_t __a)
17914 return __builtin_neon_vdup_nv8hf (__a);
17917 __extension__ extern __inline float16x4_t
17918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17919 vrev64_f16 (float16x4_t __a)
17921 return (float16x4_t)__builtin_shuffle (__a, (uint16x4_t){ 3, 2, 1, 0 });
17924 __extension__ extern __inline float16x8_t
17925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17926 vrev64q_f16 (float16x8_t __a)
17928 return
17929 (float16x8_t)__builtin_shuffle (__a,
17930 (uint16x8_t){ 3, 2, 1, 0, 7, 6, 5, 4 });
17933 __extension__ extern __inline float16x4x2_t
17934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17935 vtrn_f16 (float16x4_t __a, float16x4_t __b)
17937 float16x4x2_t __rv;
17938 #ifdef __ARM_BIG_ENDIAN
17939 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 1, 7, 3 });
17940 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 6, 2 });
17941 #else
17942 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 2, 6 });
17943 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 5, 3, 7 });
17944 #endif
17945 return __rv;
17948 __extension__ extern __inline float16x8x2_t
17949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17950 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
17952 float16x8x2_t __rv;
17953 #ifdef __ARM_BIG_ENDIAN
17954 __rv.val[0] = __builtin_shuffle (__a, __b,
17955 (uint16x8_t){ 9, 1, 11, 3, 13, 5, 15, 7 });
17956 __rv.val[1] = __builtin_shuffle (__a, __b,
17957 (uint16x8_t){ 8, 0, 10, 2, 12, 4, 14, 6 });
17958 #else
17959 __rv.val[0] = __builtin_shuffle (__a, __b,
17960 (uint16x8_t){ 0, 8, 2, 10, 4, 12, 6, 14 });
17961 __rv.val[1] = __builtin_shuffle (__a, __b,
17962 (uint16x8_t){ 1, 9, 3, 11, 5, 13, 7, 15 });
17963 #endif
17964 return __rv;
17967 __extension__ extern __inline float16x4x2_t
17968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17969 vuzp_f16 (float16x4_t __a, float16x4_t __b)
17971 float16x4x2_t __rv;
17972 #ifdef __ARM_BIG_ENDIAN
17973 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 7, 1, 3 });
17974 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 6, 0, 2 });
17975 #else
17976 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 2, 4, 6 });
17977 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 3, 5, 7 });
17978 #endif
17979 return __rv;
17982 __extension__ extern __inline float16x8x2_t
17983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17984 vuzpq_f16 (float16x8_t __a, float16x8_t __b)
17986 float16x8x2_t __rv;
17987 #ifdef __ARM_BIG_ENDIAN
17988 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
17989 { 5, 7, 1, 3, 13, 15, 9, 11 });
17990 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
17991 { 4, 6, 0, 2, 12, 14, 8, 10 });
17992 #else
17993 __rv.val[0] = __builtin_shuffle (__a, __b,
17994 (uint16x8_t){ 0, 2, 4, 6, 8, 10, 12, 14 });
17995 __rv.val[1] = __builtin_shuffle (__a, __b,
17996 (uint16x8_t){ 1, 3, 5, 7, 9, 11, 13, 15 });
17997 #endif
17998 return __rv;
18001 __extension__ extern __inline float16x4x2_t
18002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18003 vzip_f16 (float16x4_t __a, float16x4_t __b)
18005 float16x4x2_t __rv;
18006 #ifdef __ARM_BIG_ENDIAN
18007 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 6, 2, 7, 3 });
18008 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 5, 1 });
18009 #else
18010 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 1, 5 });
18011 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 2, 6, 3, 7 });
18012 #endif
18013 return __rv;
18016 __extension__ extern __inline float16x8x2_t
18017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18018 vzipq_f16 (float16x8_t __a, float16x8_t __b)
18020 float16x8x2_t __rv;
18021 #ifdef __ARM_BIG_ENDIAN
18022 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
18023 { 10, 2, 11, 3, 8, 0, 9, 1 });
18024 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
18025 { 14, 6, 15, 7, 12, 4, 13, 5 });
18026 #else
18027 __rv.val[0] = __builtin_shuffle (__a, __b,
18028 (uint16x8_t){ 0, 8, 1, 9, 2, 10, 3, 11 });
18029 __rv.val[1] = __builtin_shuffle (__a, __b,
18030 (uint16x8_t){ 4, 12, 5, 13, 6, 14, 7, 15 });
18031 #endif
18032 return __rv;
18035 #endif
18037 /* AdvSIMD Dot Product intrinsics. */
18039 #if __ARM_ARCH >= 8
18040 #pragma GCC push_options
18041 #pragma GCC target ("arch=armv8.2-a+dotprod")
18043 __extension__ extern __inline uint32x2_t
18044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18045 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
18047 return __builtin_neon_udotv8qi_uuuu (__r, __a, __b);
18050 __extension__ extern __inline uint32x4_t
18051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18052 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
18054 return __builtin_neon_udotv16qi_uuuu (__r, __a, __b);
18057 __extension__ extern __inline int32x2_t
18058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18059 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
18061 return __builtin_neon_sdotv8qi (__r, __a, __b);
18064 __extension__ extern __inline int32x4_t
18065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18066 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
18068 return __builtin_neon_sdotv16qi (__r, __a, __b);
18071 __extension__ extern __inline uint32x2_t
18072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18073 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
18075 return __builtin_neon_udot_lanev8qi_uuuus (__r, __a, __b, __index);
18078 __extension__ extern __inline uint32x4_t
18079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18080 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
18081 const int __index)
18083 return __builtin_neon_udot_lanev16qi_uuuus (__r, __a, __b, __index);
18086 __extension__ extern __inline int32x2_t
18087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18088 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
18090 return __builtin_neon_sdot_lanev8qi (__r, __a, __b, __index);
18093 __extension__ extern __inline int32x4_t
18094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18095 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
18097 return __builtin_neon_sdot_lanev16qi (__r, __a, __b, __index);
18100 #pragma GCC pop_options
18101 #endif
18103 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18104 #pragma GCC push_options
18105 #pragma GCC target ("arch=armv8.2-a+fp16fml")
18107 __extension__ extern __inline float32x2_t
18108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18109 vfmlal_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18111 return __builtin_neon_vfmal_lowv2sf (__r, __a, __b);
18114 __extension__ extern __inline float32x2_t
18115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18116 vfmlsl_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18118 return __builtin_neon_vfmsl_lowv2sf (__r, __a, __b);
18121 __extension__ extern __inline float32x2_t
18122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18123 vfmlal_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18125 return __builtin_neon_vfmal_highv2sf (__r, __a, __b);
18128 __extension__ extern __inline float32x2_t
18129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18130 vfmlsl_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18132 return __builtin_neon_vfmsl_highv2sf (__r, __a, __b);
18135 __extension__ extern __inline float32x4_t
18136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18137 vfmlalq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18139 return __builtin_neon_vfmal_lowv4sf (__r, __a, __b);
18142 __extension__ extern __inline float32x4_t
18143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18144 vfmlslq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18146 return __builtin_neon_vfmsl_lowv4sf (__r, __a, __b);
18149 __extension__ extern __inline float32x4_t
18150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18151 vfmlalq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18153 return __builtin_neon_vfmal_highv4sf (__r, __a, __b);
18156 __extension__ extern __inline float32x4_t
18157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18158 vfmlslq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18160 return __builtin_neon_vfmsl_highv4sf (__r, __a, __b);
18163 __extension__ extern __inline float32x2_t
18164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18165 vfmlal_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18166 const int __index)
18168 __builtin_arm_lane_check (4, __index);
18169 return __builtin_neon_vfmal_lane_lowv2sf (__r, __a, __b, __index);
18172 __extension__ extern __inline float32x2_t
18173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18174 vfmlal_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18175 const int __index)
18177 __builtin_arm_lane_check (4, __index);
18178 return __builtin_neon_vfmal_lane_highv2sf (__r, __a, __b, __index);
18181 __extension__ extern __inline float32x4_t
18182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18183 vfmlalq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18184 const int __index)
18186 __builtin_arm_lane_check (8, __index);
18187 return __builtin_neon_vfmal_lane_lowv4sf (__r, __a, __b, __index);
18190 __extension__ extern __inline float32x4_t
18191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18192 vfmlalq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18193 const int __index)
18195 __builtin_arm_lane_check (4, __index);
18196 return __builtin_neon_vfmal_lane_lowv4hfv4sf (__r, __a, __b, __index);
18199 __extension__ extern __inline float32x2_t
18200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18201 vfmlal_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18202 const int __index)
18204 __builtin_arm_lane_check (8, __index);
18205 return __builtin_neon_vfmal_lane_lowv8hfv2sf (__r, __a, __b, __index);
18208 __extension__ extern __inline float32x4_t
18209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18210 vfmlalq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18211 const int __index)
18213 __builtin_arm_lane_check (8, __index);
18214 return __builtin_neon_vfmal_lane_highv4sf (__r, __a, __b, __index);
18217 __extension__ extern __inline float32x4_t
18218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18219 vfmlalq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18220 const int __index)
18222 __builtin_arm_lane_check (4, __index);
18223 return __builtin_neon_vfmal_lane_highv4hfv4sf (__r, __a, __b, __index);
18226 __extension__ extern __inline float32x2_t
18227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18228 vfmlal_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18229 const int __index)
18231 __builtin_arm_lane_check (8, __index);
18232 return __builtin_neon_vfmal_lane_highv8hfv2sf (__r, __a, __b, __index);
18235 __extension__ extern __inline float32x2_t
18236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18237 vfmlsl_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18238 const int __index)
18240 __builtin_arm_lane_check (4, __index);
18241 return __builtin_neon_vfmsl_lane_lowv2sf (__r, __a, __b, __index);
18244 __extension__ extern __inline float32x2_t
18245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18246 vfmlsl_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18247 const int __index)
18249 __builtin_arm_lane_check (4, __index);
18250 return __builtin_neon_vfmsl_lane_highv2sf (__r, __a, __b, __index);
18253 __extension__ extern __inline float32x4_t
18254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18255 vfmlslq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18256 const int __index)
18258 __builtin_arm_lane_check (8, __index);
18259 return __builtin_neon_vfmsl_lane_lowv4sf (__r, __a, __b, __index);
18262 __extension__ extern __inline float32x4_t
18263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18264 vfmlslq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18265 const int __index)
18267 __builtin_arm_lane_check (4, __index);
18268 return __builtin_neon_vfmsl_lane_lowv4hfv4sf (__r, __a, __b, __index);
18271 __extension__ extern __inline float32x2_t
18272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18273 vfmlsl_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18274 const int __index)
18276 __builtin_arm_lane_check (8, __index);
18277 return __builtin_neon_vfmsl_lane_lowv8hfv2sf (__r, __a, __b, __index);
18280 __extension__ extern __inline float32x4_t
18281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18282 vfmlslq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18283 const int __index)
18285 __builtin_arm_lane_check (8, __index);
18286 return __builtin_neon_vfmsl_lane_highv4sf (__r, __a, __b, __index);
18289 __extension__ extern __inline float32x4_t
18290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18291 vfmlslq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18292 const int __index)
18294 __builtin_arm_lane_check (4, __index);
18295 return __builtin_neon_vfmsl_lane_highv4hfv4sf (__r, __a, __b, __index);
18298 __extension__ extern __inline float32x2_t
18299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18300 vfmlsl_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18301 const int __index)
18303 __builtin_arm_lane_check (8, __index);
18304 return __builtin_neon_vfmsl_lane_highv8hfv2sf (__r, __a, __b, __index);
18307 #pragma GCC pop_options
18308 #endif
18310 #ifdef __cplusplus
18312 #endif
18314 #pragma GCC pop_options
18316 #endif
18317 #endif