Add assember CFI directives to millicode division and remainder routines.
[official-gcc.git] / gcc / config / arm / arm_neon.h
blobcdfdb44259a163c9d1edd6d8cf6dae6228c0b03e
1 /* ARM NEON intrinsics include file.
3 Copyright (C) 2006-2023 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 <arm_bf16.h>
43 #include <stdint.h>
45 /* For big-endian, GCC's vector indices are reversed within each 64
46 bits compared to the architectural lane indices used by Neon
47 intrinsics. */
48 #ifdef __ARM_BIG_ENDIAN
49 #define __ARM_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
50 #define __arm_lane(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec) - 1))
51 #define __arm_laneq(__vec, __idx) (__idx ^ (__ARM_NUM_LANES(__vec)/2 - 1))
52 #else
53 #define __arm_lane(__vec, __idx) __idx
54 #define __arm_laneq(__vec, __idx) __idx
55 #endif
57 typedef __simd64_int8_t int8x8_t;
58 typedef __simd64_int16_t int16x4_t;
59 typedef __simd64_int32_t int32x2_t;
60 typedef __builtin_neon_di int64x1_t;
61 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
62 typedef __fp16 float16_t;
63 typedef __simd64_float16_t float16x4_t;
64 #endif
65 typedef __simd64_float32_t float32x2_t;
66 typedef __simd64_poly8_t poly8x8_t;
67 typedef __simd64_poly16_t poly16x4_t;
68 #pragma GCC push_options
69 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
70 typedef __builtin_neon_poly64 poly64x1_t;
71 #pragma GCC pop_options
72 typedef __simd64_uint8_t uint8x8_t;
73 typedef __simd64_uint16_t uint16x4_t;
74 typedef __simd64_uint32_t uint32x2_t;
75 typedef __builtin_neon_udi uint64x1_t;
77 typedef __simd128_int8_t int8x16_t;
78 typedef __simd128_int16_t int16x8_t;
79 typedef __simd128_int32_t int32x4_t;
80 typedef __simd128_int64_t int64x2_t;
81 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
82 typedef __simd128_float16_t float16x8_t;
83 #endif
84 typedef __simd128_float32_t float32x4_t;
85 typedef __simd128_poly8_t poly8x16_t;
86 typedef __simd128_poly16_t poly16x8_t;
87 #pragma GCC push_options
88 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
89 typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16)));
90 #pragma GCC pop_options
92 typedef __simd128_uint8_t uint8x16_t;
93 typedef __simd128_uint16_t uint16x8_t;
94 typedef __simd128_uint32_t uint32x4_t;
95 typedef __simd128_uint64_t uint64x2_t;
97 typedef float float32_t;
99 typedef __simd128_bfloat16_t bfloat16x8_t;
100 typedef __simd64_bfloat16_t bfloat16x4_t;
102 /* The Poly types are user visible and live in their own world,
103 keep them that way. */
104 typedef __builtin_neon_poly8 poly8_t;
105 typedef __builtin_neon_poly16 poly16_t;
106 #pragma GCC push_options
107 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
108 typedef __builtin_neon_poly64 poly64_t;
109 typedef __builtin_neon_poly128 poly128_t;
110 #pragma GCC pop_options
112 typedef struct int8x8x2_t
114 int8x8_t val[2];
115 } int8x8x2_t;
117 typedef struct int8x16x2_t
119 int8x16_t val[2];
120 } int8x16x2_t;
122 typedef struct int16x4x2_t
124 int16x4_t val[2];
125 } int16x4x2_t;
127 typedef struct int16x8x2_t
129 int16x8_t val[2];
130 } int16x8x2_t;
132 typedef struct int32x2x2_t
134 int32x2_t val[2];
135 } int32x2x2_t;
137 typedef struct int32x4x2_t
139 int32x4_t val[2];
140 } int32x4x2_t;
142 typedef struct int64x1x2_t
144 int64x1_t val[2];
145 } int64x1x2_t;
147 typedef struct int64x2x2_t
149 int64x2_t val[2];
150 } int64x2x2_t;
152 typedef struct uint8x8x2_t
154 uint8x8_t val[2];
155 } uint8x8x2_t;
157 typedef struct uint8x16x2_t
159 uint8x16_t val[2];
160 } uint8x16x2_t;
162 typedef struct uint16x4x2_t
164 uint16x4_t val[2];
165 } uint16x4x2_t;
167 typedef struct uint16x8x2_t
169 uint16x8_t val[2];
170 } uint16x8x2_t;
172 typedef struct uint32x2x2_t
174 uint32x2_t val[2];
175 } uint32x2x2_t;
177 typedef struct uint32x4x2_t
179 uint32x4_t val[2];
180 } uint32x4x2_t;
182 typedef struct uint64x1x2_t
184 uint64x1_t val[2];
185 } uint64x1x2_t;
187 typedef struct uint64x2x2_t
189 uint64x2_t val[2];
190 } uint64x2x2_t;
192 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
193 typedef struct float16x4x2_t
195 float16x4_t val[2];
196 } float16x4x2_t;
197 #endif
199 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
200 typedef struct float16x8x2_t
202 float16x8_t val[2];
203 } float16x8x2_t;
204 #endif
206 typedef struct float32x2x2_t
208 float32x2_t val[2];
209 } float32x2x2_t;
211 typedef struct float32x4x2_t
213 float32x4_t val[2];
214 } float32x4x2_t;
216 typedef struct poly8x8x2_t
218 poly8x8_t val[2];
219 } poly8x8x2_t;
221 typedef struct poly8x16x2_t
223 poly8x16_t val[2];
224 } poly8x16x2_t;
226 typedef struct poly16x4x2_t
228 poly16x4_t val[2];
229 } poly16x4x2_t;
231 typedef struct poly16x8x2_t
233 poly16x8_t val[2];
234 } poly16x8x2_t;
236 #pragma GCC push_options
237 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
238 typedef struct poly64x1x2_t
240 poly64x1_t val[2];
241 } poly64x1x2_t;
244 typedef struct poly64x2x2_t
246 poly64x2_t val[2];
247 } poly64x2x2_t;
248 #pragma GCC pop_options
251 typedef struct int8x8x3_t
253 int8x8_t val[3];
254 } int8x8x3_t;
256 typedef struct int8x16x3_t
258 int8x16_t val[3];
259 } int8x16x3_t;
261 typedef struct int16x4x3_t
263 int16x4_t val[3];
264 } int16x4x3_t;
266 typedef struct int16x8x3_t
268 int16x8_t val[3];
269 } int16x8x3_t;
271 typedef struct int32x2x3_t
273 int32x2_t val[3];
274 } int32x2x3_t;
276 typedef struct int32x4x3_t
278 int32x4_t val[3];
279 } int32x4x3_t;
281 typedef struct int64x1x3_t
283 int64x1_t val[3];
284 } int64x1x3_t;
286 typedef struct int64x2x3_t
288 int64x2_t val[3];
289 } int64x2x3_t;
291 typedef struct uint8x8x3_t
293 uint8x8_t val[3];
294 } uint8x8x3_t;
296 typedef struct uint8x16x3_t
298 uint8x16_t val[3];
299 } uint8x16x3_t;
301 typedef struct uint16x4x3_t
303 uint16x4_t val[3];
304 } uint16x4x3_t;
306 typedef struct uint16x8x3_t
308 uint16x8_t val[3];
309 } uint16x8x3_t;
311 typedef struct uint32x2x3_t
313 uint32x2_t val[3];
314 } uint32x2x3_t;
316 typedef struct uint32x4x3_t
318 uint32x4_t val[3];
319 } uint32x4x3_t;
321 typedef struct uint64x1x3_t
323 uint64x1_t val[3];
324 } uint64x1x3_t;
326 typedef struct uint64x2x3_t
328 uint64x2_t val[3];
329 } uint64x2x3_t;
331 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
332 typedef struct float16x4x3_t
334 float16x4_t val[3];
335 } float16x4x3_t;
336 #endif
338 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
339 typedef struct float16x8x3_t
341 float16x8_t val[3];
342 } float16x8x3_t;
343 #endif
345 typedef struct float32x2x3_t
347 float32x2_t val[3];
348 } float32x2x3_t;
350 typedef struct float32x4x3_t
352 float32x4_t val[3];
353 } float32x4x3_t;
355 typedef struct poly8x8x3_t
357 poly8x8_t val[3];
358 } poly8x8x3_t;
360 typedef struct poly8x16x3_t
362 poly8x16_t val[3];
363 } poly8x16x3_t;
365 typedef struct poly16x4x3_t
367 poly16x4_t val[3];
368 } poly16x4x3_t;
370 typedef struct poly16x8x3_t
372 poly16x8_t val[3];
373 } poly16x8x3_t;
375 #pragma GCC push_options
376 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
377 typedef struct poly64x1x3_t
379 poly64x1_t val[3];
380 } poly64x1x3_t;
383 typedef struct poly64x2x3_t
385 poly64x2_t val[3];
386 } poly64x2x3_t;
387 #pragma GCC pop_options
390 typedef struct int8x8x4_t
392 int8x8_t val[4];
393 } int8x8x4_t;
395 typedef struct int8x16x4_t
397 int8x16_t val[4];
398 } int8x16x4_t;
400 typedef struct int16x4x4_t
402 int16x4_t val[4];
403 } int16x4x4_t;
405 typedef struct int16x8x4_t
407 int16x8_t val[4];
408 } int16x8x4_t;
410 typedef struct int32x2x4_t
412 int32x2_t val[4];
413 } int32x2x4_t;
415 typedef struct int32x4x4_t
417 int32x4_t val[4];
418 } int32x4x4_t;
420 typedef struct int64x1x4_t
422 int64x1_t val[4];
423 } int64x1x4_t;
425 typedef struct int64x2x4_t
427 int64x2_t val[4];
428 } int64x2x4_t;
430 typedef struct uint8x8x4_t
432 uint8x8_t val[4];
433 } uint8x8x4_t;
435 typedef struct uint8x16x4_t
437 uint8x16_t val[4];
438 } uint8x16x4_t;
440 typedef struct uint16x4x4_t
442 uint16x4_t val[4];
443 } uint16x4x4_t;
445 typedef struct uint16x8x4_t
447 uint16x8_t val[4];
448 } uint16x8x4_t;
450 typedef struct uint32x2x4_t
452 uint32x2_t val[4];
453 } uint32x2x4_t;
455 typedef struct uint32x4x4_t
457 uint32x4_t val[4];
458 } uint32x4x4_t;
460 typedef struct uint64x1x4_t
462 uint64x1_t val[4];
463 } uint64x1x4_t;
465 typedef struct uint64x2x4_t
467 uint64x2_t val[4];
468 } uint64x2x4_t;
470 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
471 typedef struct float16x4x4_t
473 float16x4_t val[4];
474 } float16x4x4_t;
475 #endif
477 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
478 typedef struct float16x8x4_t
480 float16x8_t val[4];
481 } float16x8x4_t;
482 #endif
484 typedef struct float32x2x4_t
486 float32x2_t val[4];
487 } float32x2x4_t;
489 typedef struct float32x4x4_t
491 float32x4_t val[4];
492 } float32x4x4_t;
494 typedef struct poly8x8x4_t
496 poly8x8_t val[4];
497 } poly8x8x4_t;
499 typedef struct poly8x16x4_t
501 poly8x16_t val[4];
502 } poly8x16x4_t;
504 typedef struct poly16x4x4_t
506 poly16x4_t val[4];
507 } poly16x4x4_t;
509 typedef struct poly16x8x4_t
511 poly16x8_t val[4];
512 } poly16x8x4_t;
514 #pragma GCC push_options
515 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
516 typedef struct poly64x1x4_t
518 poly64x1_t val[4];
519 } poly64x1x4_t;
522 typedef struct poly64x2x4_t
524 poly64x2_t val[4];
525 } poly64x2x4_t;
526 #pragma GCC pop_options
528 /* vadd */
529 __extension__ extern __inline int8x8_t
530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
531 vadd_s8 (int8x8_t __a, int8x8_t __b)
533 return __a + __b;
536 __extension__ extern __inline int16x4_t
537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
538 vadd_s16 (int16x4_t __a, int16x4_t __b)
540 return __a + __b;
543 __extension__ extern __inline int32x2_t
544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
545 vadd_s32 (int32x2_t __a, int32x2_t __b)
547 return __a + __b;
550 __extension__ extern __inline float32x2_t
551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
552 vadd_f32 (float32x2_t __a, float32x2_t __b)
554 #ifdef __FAST_MATH__
555 return __a + __b;
556 #else
557 return (float32x2_t) __builtin_neon_vaddv2sf (__a, __b);
558 #endif
561 __extension__ extern __inline uint8x8_t
562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
563 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
565 return __a + __b;
568 __extension__ extern __inline uint16x4_t
569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
570 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
572 return __a + __b;
575 __extension__ extern __inline uint32x2_t
576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
577 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
579 return __a + __b;
582 __extension__ extern __inline int64x1_t
583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
584 vadd_s64 (int64x1_t __a, int64x1_t __b)
586 return __a + __b;
589 __extension__ extern __inline uint64x1_t
590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
591 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
593 return __a + __b;
596 __extension__ extern __inline int8x16_t
597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
598 vaddq_s8 (int8x16_t __a, int8x16_t __b)
600 return __a + __b;
603 __extension__ extern __inline int16x8_t
604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
605 vaddq_s16 (int16x8_t __a, int16x8_t __b)
607 return __a + __b;
610 __extension__ extern __inline int32x4_t
611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
612 vaddq_s32 (int32x4_t __a, int32x4_t __b)
614 return __a + __b;
617 __extension__ extern __inline int64x2_t
618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
619 vaddq_s64 (int64x2_t __a, int64x2_t __b)
621 return __a + __b;
624 __extension__ extern __inline float32x4_t
625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
626 vaddq_f32 (float32x4_t __a, float32x4_t __b)
628 #ifdef __FAST_MATH__
629 return __a + __b;
630 #else
631 return (float32x4_t) __builtin_neon_vaddv4sf (__a, __b);
632 #endif
635 __extension__ extern __inline uint8x16_t
636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
637 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
639 return __a + __b;
642 __extension__ extern __inline uint16x8_t
643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
644 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
646 return __a + __b;
649 __extension__ extern __inline uint32x4_t
650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
651 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
653 return __a + __b;
656 __extension__ extern __inline uint64x2_t
657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
658 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
660 return __a + __b;
663 __extension__ extern __inline int16x8_t
664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
665 vaddl_s8 (int8x8_t __a, int8x8_t __b)
667 return (int16x8_t)__builtin_neon_vaddlsv8qi (__a, __b);
670 __extension__ extern __inline int32x4_t
671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
672 vaddl_s16 (int16x4_t __a, int16x4_t __b)
674 return (int32x4_t)__builtin_neon_vaddlsv4hi (__a, __b);
677 __extension__ extern __inline int64x2_t
678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
679 vaddl_s32 (int32x2_t __a, int32x2_t __b)
681 return (int64x2_t)__builtin_neon_vaddlsv2si (__a, __b);
684 __extension__ extern __inline uint16x8_t
685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
686 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
688 return (uint16x8_t)__builtin_neon_vaddluv8qi ((int8x8_t) __a, (int8x8_t) __b);
691 __extension__ extern __inline uint32x4_t
692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
693 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
695 return (uint32x4_t)__builtin_neon_vaddluv4hi ((int16x4_t) __a, (int16x4_t) __b);
698 __extension__ extern __inline uint64x2_t
699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
700 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
702 return (uint64x2_t)__builtin_neon_vaddluv2si ((int32x2_t) __a, (int32x2_t) __b);
705 __extension__ extern __inline int16x8_t
706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
707 vaddw_s8 (int16x8_t __a, int8x8_t __b)
709 return (int16x8_t)__builtin_neon_vaddwsv8qi (__a, __b);
712 __extension__ extern __inline int32x4_t
713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
714 vaddw_s16 (int32x4_t __a, int16x4_t __b)
716 return (int32x4_t)__builtin_neon_vaddwsv4hi (__a, __b);
719 __extension__ extern __inline int64x2_t
720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
721 vaddw_s32 (int64x2_t __a, int32x2_t __b)
723 return (int64x2_t)__builtin_neon_vaddwsv2si (__a, __b);
726 __extension__ extern __inline uint16x8_t
727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
728 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
730 return (uint16x8_t)__builtin_neon_vaddwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
733 __extension__ extern __inline uint32x4_t
734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
735 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
737 return (uint32x4_t)__builtin_neon_vaddwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
740 __extension__ extern __inline uint64x2_t
741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
742 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
744 return (uint64x2_t)__builtin_neon_vaddwuv2si ((int64x2_t) __a, (int32x2_t) __b);
747 __extension__ extern __inline int8x8_t
748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
749 vhadd_s8 (int8x8_t __a, int8x8_t __b)
751 return (int8x8_t)__builtin_neon_vhaddsv8qi (__a, __b);
754 __extension__ extern __inline int16x4_t
755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
756 vhadd_s16 (int16x4_t __a, int16x4_t __b)
758 return (int16x4_t)__builtin_neon_vhaddsv4hi (__a, __b);
761 __extension__ extern __inline int32x2_t
762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
763 vhadd_s32 (int32x2_t __a, int32x2_t __b)
765 return (int32x2_t)__builtin_neon_vhaddsv2si (__a, __b);
768 __extension__ extern __inline uint8x8_t
769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
770 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
772 return (uint8x8_t)__builtin_neon_vhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
775 __extension__ extern __inline uint16x4_t
776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
777 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
779 return (uint16x4_t)__builtin_neon_vhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
782 __extension__ extern __inline uint32x2_t
783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
784 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
786 return (uint32x2_t)__builtin_neon_vhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
789 __extension__ extern __inline int8x16_t
790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
791 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
793 return (int8x16_t)__builtin_neon_vhaddsv16qi (__a, __b);
796 __extension__ extern __inline int16x8_t
797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
798 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
800 return (int16x8_t)__builtin_neon_vhaddsv8hi (__a, __b);
803 __extension__ extern __inline int32x4_t
804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
805 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
807 return (int32x4_t)__builtin_neon_vhaddsv4si (__a, __b);
810 __extension__ extern __inline uint8x16_t
811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
812 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
814 return (uint8x16_t)__builtin_neon_vhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
817 __extension__ extern __inline uint16x8_t
818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
819 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
821 return (uint16x8_t)__builtin_neon_vhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
824 __extension__ extern __inline uint32x4_t
825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
826 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
828 return (uint32x4_t)__builtin_neon_vhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
831 __extension__ extern __inline int8x8_t
832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
833 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
835 return (int8x8_t)__builtin_neon_vrhaddsv8qi (__a, __b);
838 __extension__ extern __inline int16x4_t
839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
840 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
842 return (int16x4_t)__builtin_neon_vrhaddsv4hi (__a, __b);
845 __extension__ extern __inline int32x2_t
846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
847 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
849 return (int32x2_t)__builtin_neon_vrhaddsv2si (__a, __b);
852 __extension__ extern __inline uint8x8_t
853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
854 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
856 return (uint8x8_t)__builtin_neon_vrhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
859 __extension__ extern __inline uint16x4_t
860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
861 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
863 return (uint16x4_t)__builtin_neon_vrhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
866 __extension__ extern __inline uint32x2_t
867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
868 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
870 return (uint32x2_t)__builtin_neon_vrhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
873 __extension__ extern __inline int8x16_t
874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
875 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
877 return (int8x16_t)__builtin_neon_vrhaddsv16qi (__a, __b);
880 __extension__ extern __inline int16x8_t
881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
882 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
884 return (int16x8_t)__builtin_neon_vrhaddsv8hi (__a, __b);
887 __extension__ extern __inline int32x4_t
888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
889 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
891 return (int32x4_t)__builtin_neon_vrhaddsv4si (__a, __b);
894 __extension__ extern __inline uint8x16_t
895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
896 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
898 return (uint8x16_t)__builtin_neon_vrhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
901 __extension__ extern __inline uint16x8_t
902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
903 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
905 return (uint16x8_t)__builtin_neon_vrhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
908 __extension__ extern __inline uint32x4_t
909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
910 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
912 return (uint32x4_t)__builtin_neon_vrhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
915 __extension__ extern __inline int8x8_t
916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
917 vqadd_s8 (int8x8_t __a, int8x8_t __b)
919 return (int8x8_t)__builtin_neon_vqaddsv8qi (__a, __b);
922 __extension__ extern __inline int16x4_t
923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
924 vqadd_s16 (int16x4_t __a, int16x4_t __b)
926 return (int16x4_t)__builtin_neon_vqaddsv4hi (__a, __b);
929 __extension__ extern __inline int32x2_t
930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
931 vqadd_s32 (int32x2_t __a, int32x2_t __b)
933 return (int32x2_t)__builtin_neon_vqaddsv2si (__a, __b);
936 __extension__ extern __inline int64x1_t
937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
938 vqadd_s64 (int64x1_t __a, int64x1_t __b)
940 return (int64x1_t)__builtin_neon_vqaddsdi (__a, __b);
943 __extension__ extern __inline uint8x8_t
944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
945 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
947 return (uint8x8_t)__builtin_neon_vqadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
950 __extension__ extern __inline uint16x4_t
951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
952 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
954 return (uint16x4_t)__builtin_neon_vqadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
957 __extension__ extern __inline uint32x2_t
958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
959 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
961 return (uint32x2_t)__builtin_neon_vqadduv2si ((int32x2_t) __a, (int32x2_t) __b);
964 __extension__ extern __inline uint64x1_t
965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
966 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
968 return (uint64x1_t)__builtin_neon_vqaddudi ((int64x1_t) __a, (int64x1_t) __b);
971 __extension__ extern __inline int8x16_t
972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
973 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
975 return (int8x16_t)__builtin_neon_vqaddsv16qi (__a, __b);
978 __extension__ extern __inline int16x8_t
979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
980 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
982 return (int16x8_t)__builtin_neon_vqaddsv8hi (__a, __b);
985 __extension__ extern __inline int32x4_t
986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
987 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
989 return (int32x4_t)__builtin_neon_vqaddsv4si (__a, __b);
992 __extension__ extern __inline int64x2_t
993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
994 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
996 return (int64x2_t)__builtin_neon_vqaddsv2di (__a, __b);
999 __extension__ extern __inline uint8x16_t
1000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1001 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1003 return (uint8x16_t)__builtin_neon_vqadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
1006 __extension__ extern __inline uint16x8_t
1007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1008 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1010 return (uint16x8_t)__builtin_neon_vqadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
1013 __extension__ extern __inline uint32x4_t
1014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1015 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1017 return (uint32x4_t)__builtin_neon_vqadduv4si ((int32x4_t) __a, (int32x4_t) __b);
1020 __extension__ extern __inline uint64x2_t
1021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1022 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
1024 return (uint64x2_t)__builtin_neon_vqadduv2di ((int64x2_t) __a, (int64x2_t) __b);
1027 __extension__ extern __inline int8x8_t
1028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1029 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1031 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b);
1034 __extension__ extern __inline int16x4_t
1035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1036 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1038 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b);
1041 __extension__ extern __inline int32x2_t
1042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1043 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1045 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b);
1048 __extension__ extern __inline uint8x8_t
1049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1050 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1052 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1055 __extension__ extern __inline uint16x4_t
1056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1057 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1059 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1062 __extension__ extern __inline uint32x2_t
1063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1064 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1066 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1069 __extension__ extern __inline int8x8_t
1070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1071 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1073 return (int8x8_t)__builtin_neon_vraddhnv8hi (__a, __b);
1076 __extension__ extern __inline int16x4_t
1077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1078 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1080 return (int16x4_t)__builtin_neon_vraddhnv4si (__a, __b);
1083 __extension__ extern __inline int32x2_t
1084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1085 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1087 return (int32x2_t)__builtin_neon_vraddhnv2di (__a, __b);
1090 __extension__ extern __inline uint8x8_t
1091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1092 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1094 return (uint8x8_t)__builtin_neon_vraddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1097 __extension__ extern __inline uint16x4_t
1098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1099 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1101 return (uint16x4_t)__builtin_neon_vraddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1104 __extension__ extern __inline uint32x2_t
1105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1106 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1108 return (uint32x2_t)__builtin_neon_vraddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1111 __extension__ extern __inline int8x8_t
1112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1113 vmul_s8 (int8x8_t __a, int8x8_t __b)
1115 return __a * __b;
1118 __extension__ extern __inline int16x4_t
1119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1120 vmul_s16 (int16x4_t __a, int16x4_t __b)
1122 return __a * __b;
1125 __extension__ extern __inline int32x2_t
1126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1127 vmul_s32 (int32x2_t __a, int32x2_t __b)
1129 return __a * __b;
1132 __extension__ extern __inline float32x2_t
1133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1134 vmul_f32 (float32x2_t __a, float32x2_t __b)
1136 #ifdef __FAST_MATH__
1137 return __a * __b;
1138 #else
1139 return (float32x2_t) __builtin_neon_vmulfv2sf (__a, __b);
1140 #endif
1144 __extension__ extern __inline uint8x8_t
1145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1146 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1148 return __a * __b;
1151 __extension__ extern __inline uint16x4_t
1152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1153 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1155 return __a * __b;
1158 __extension__ extern __inline uint32x2_t
1159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1160 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1162 return __a * __b;
1165 __extension__ extern __inline int8x16_t
1166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1167 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1169 return __a * __b;
1172 __extension__ extern __inline int16x8_t
1173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1174 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1176 return __a * __b;
1179 __extension__ extern __inline int32x4_t
1180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1181 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1183 return __a * __b;
1186 __extension__ extern __inline float32x4_t
1187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1188 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1190 #ifdef __FAST_MATH__
1191 return __a * __b;
1192 #else
1193 return (float32x4_t) __builtin_neon_vmulfv4sf (__a, __b);
1194 #endif
1197 __extension__ extern __inline uint8x16_t
1198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1199 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1201 return __a * __b;
1204 __extension__ extern __inline uint16x8_t
1205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1206 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1208 return __a * __b;
1211 __extension__ extern __inline uint32x4_t
1212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1213 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1215 return __a * __b;
1218 __extension__ extern __inline poly8x8_t
1219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1220 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1222 return (poly8x8_t)__builtin_neon_vmulpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1225 __extension__ extern __inline poly8x16_t
1226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1227 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1229 return (poly8x16_t)__builtin_neon_vmulpv16qi ((int8x16_t) __a, (int8x16_t) __b);
1232 __extension__ extern __inline int16x4_t
1233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1234 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
1236 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b);
1239 __extension__ extern __inline int32x2_t
1240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1241 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
1243 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b);
1246 __extension__ extern __inline int16x8_t
1247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1248 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1250 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b);
1253 __extension__ extern __inline int32x4_t
1254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1255 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1257 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b);
1260 __extension__ extern __inline int16x4_t
1261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1262 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1264 return (int16x4_t)__builtin_neon_vqrdmulhv4hi (__a, __b);
1267 __extension__ extern __inline int32x2_t
1268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1269 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1271 return (int32x2_t)__builtin_neon_vqrdmulhv2si (__a, __b);
1274 __extension__ extern __inline int16x8_t
1275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1276 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1278 return (int16x8_t)__builtin_neon_vqrdmulhv8hi (__a, __b);
1281 __extension__ extern __inline int32x4_t
1282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1283 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1285 return (int32x4_t)__builtin_neon_vqrdmulhv4si (__a, __b);
1288 #ifdef __ARM_FEATURE_QRDMX
1289 __extension__ extern __inline int16x4_t
1290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1291 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1293 return (int16x4_t)__builtin_neon_vqrdmlahv4hi (__a, __b, __c);
1296 __extension__ extern __inline int32x2_t
1297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1298 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1300 return (int32x2_t)__builtin_neon_vqrdmlahv2si (__a, __b, __c);
1303 __extension__ extern __inline int16x8_t
1304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1305 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1307 return (int16x8_t)__builtin_neon_vqrdmlahv8hi (__a, __b, __c);
1310 __extension__ extern __inline int32x4_t
1311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1312 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1314 return (int32x4_t)__builtin_neon_vqrdmlahv4si (__a, __b, __c);
1317 __extension__ extern __inline int16x4_t
1318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1319 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1321 return (int16x4_t)__builtin_neon_vqrdmlshv4hi (__a, __b, __c);
1324 __extension__ extern __inline int32x2_t
1325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1326 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1328 return (int32x2_t)__builtin_neon_vqrdmlshv2si (__a, __b, __c);
1331 __extension__ extern __inline int16x8_t
1332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1333 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1335 return (int16x8_t)__builtin_neon_vqrdmlshv8hi (__a, __b, __c);
1338 __extension__ extern __inline int32x4_t
1339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1340 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1342 return (int32x4_t)__builtin_neon_vqrdmlshv4si (__a, __b, __c);
1344 #endif
1346 __extension__ extern __inline int16x8_t
1347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1348 vmull_s8 (int8x8_t __a, int8x8_t __b)
1350 return (int16x8_t)__builtin_neon_vmullsv8qi (__a, __b);
1353 __extension__ extern __inline int32x4_t
1354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1355 vmull_s16 (int16x4_t __a, int16x4_t __b)
1357 return (int32x4_t)__builtin_neon_vmullsv4hi (__a, __b);
1360 __extension__ extern __inline int64x2_t
1361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1362 vmull_s32 (int32x2_t __a, int32x2_t __b)
1364 return (int64x2_t)__builtin_neon_vmullsv2si (__a, __b);
1367 __extension__ extern __inline uint16x8_t
1368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1369 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1371 return (uint16x8_t)__builtin_neon_vmulluv8qi ((int8x8_t) __a, (int8x8_t) __b);
1374 __extension__ extern __inline uint32x4_t
1375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1376 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1378 return (uint32x4_t)__builtin_neon_vmulluv4hi ((int16x4_t) __a, (int16x4_t) __b);
1381 __extension__ extern __inline uint64x2_t
1382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1383 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1385 return (uint64x2_t)__builtin_neon_vmulluv2si ((int32x2_t) __a, (int32x2_t) __b);
1388 __extension__ extern __inline poly16x8_t
1389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1390 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1392 return (poly16x8_t)__builtin_neon_vmullpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1395 __extension__ extern __inline int32x4_t
1396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1397 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1399 return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b);
1402 __extension__ extern __inline int64x2_t
1403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1404 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1406 return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b);
1409 __extension__ extern __inline int8x8_t
1410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1411 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1413 return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c);
1416 __extension__ extern __inline int16x4_t
1417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1418 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1420 return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c);
1423 __extension__ extern __inline int32x2_t
1424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1425 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1427 return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c);
1430 __extension__ extern __inline float32x2_t
1431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1432 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1434 return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c);
1437 __extension__ extern __inline uint8x8_t
1438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1439 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1441 return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1444 __extension__ extern __inline uint16x4_t
1445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1446 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1448 return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1451 __extension__ extern __inline uint32x2_t
1452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1453 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1455 return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1458 __extension__ extern __inline int8x16_t
1459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1460 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1462 return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c);
1465 __extension__ extern __inline int16x8_t
1466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1467 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1469 return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c);
1472 __extension__ extern __inline int32x4_t
1473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1474 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1476 return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c);
1479 __extension__ extern __inline float32x4_t
1480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1481 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1483 return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c);
1486 __extension__ extern __inline uint8x16_t
1487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1488 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1490 return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1493 __extension__ extern __inline uint16x8_t
1494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1495 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1497 return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1500 __extension__ extern __inline uint32x4_t
1501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1502 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1504 return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1507 __extension__ extern __inline int16x8_t
1508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1509 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1511 return (int16x8_t)__builtin_neon_vmlalsv8qi (__a, __b, __c);
1514 __extension__ extern __inline int32x4_t
1515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1516 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1518 return (int32x4_t)__builtin_neon_vmlalsv4hi (__a, __b, __c);
1521 __extension__ extern __inline int64x2_t
1522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1523 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1525 return (int64x2_t)__builtin_neon_vmlalsv2si (__a, __b, __c);
1528 __extension__ extern __inline uint16x8_t
1529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1530 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1532 return (uint16x8_t)__builtin_neon_vmlaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1535 __extension__ extern __inline uint32x4_t
1536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1537 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1539 return (uint32x4_t)__builtin_neon_vmlaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1542 __extension__ extern __inline uint64x2_t
1543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1544 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1546 return (uint64x2_t)__builtin_neon_vmlaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1549 __extension__ extern __inline int32x4_t
1550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1551 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1553 return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c);
1556 __extension__ extern __inline int64x2_t
1557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1558 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1560 return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c);
1563 __extension__ extern __inline int8x8_t
1564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1565 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1567 return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c);
1570 __extension__ extern __inline int16x4_t
1571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1572 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1574 return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c);
1577 __extension__ extern __inline int32x2_t
1578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1579 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1581 return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c);
1584 __extension__ extern __inline float32x2_t
1585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1586 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1588 return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c);
1591 __extension__ extern __inline uint8x8_t
1592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1593 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1595 return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1598 __extension__ extern __inline uint16x4_t
1599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1600 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1602 return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1605 __extension__ extern __inline uint32x2_t
1606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1607 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1609 return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1612 __extension__ extern __inline int8x16_t
1613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1614 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1616 return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c);
1619 __extension__ extern __inline int16x8_t
1620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1621 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1623 return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c);
1626 __extension__ extern __inline int32x4_t
1627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1628 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1630 return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c);
1633 __extension__ extern __inline float32x4_t
1634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1635 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1637 return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c);
1640 __extension__ extern __inline uint8x16_t
1641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1642 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1644 return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1647 __extension__ extern __inline uint16x8_t
1648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1649 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1651 return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1654 __extension__ extern __inline uint32x4_t
1655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1656 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1658 return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1661 __extension__ extern __inline int16x8_t
1662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1663 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1665 return (int16x8_t)__builtin_neon_vmlslsv8qi (__a, __b, __c);
1668 __extension__ extern __inline int32x4_t
1669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1670 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1672 return (int32x4_t)__builtin_neon_vmlslsv4hi (__a, __b, __c);
1675 __extension__ extern __inline int64x2_t
1676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1677 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1679 return (int64x2_t)__builtin_neon_vmlslsv2si (__a, __b, __c);
1682 __extension__ extern __inline uint16x8_t
1683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1684 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1686 return (uint16x8_t)__builtin_neon_vmlsluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1689 __extension__ extern __inline uint32x4_t
1690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1691 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1693 return (uint32x4_t)__builtin_neon_vmlsluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1696 __extension__ extern __inline uint64x2_t
1697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1698 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1700 return (uint64x2_t)__builtin_neon_vmlsluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1703 __extension__ extern __inline int32x4_t
1704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1705 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1707 return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c);
1710 __extension__ extern __inline int64x2_t
1711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1712 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1714 return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c);
1717 #pragma GCC push_options
1718 #pragma GCC target ("fpu=neon-vfpv4")
1719 __extension__ extern __inline float32x2_t
1720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1721 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1723 return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c);
1726 __extension__ extern __inline float32x4_t
1727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1728 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1730 return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c);
1733 __extension__ extern __inline float32x2_t
1734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1735 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1737 return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c);
1740 __extension__ extern __inline float32x4_t
1741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1742 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1744 return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c);
1746 #pragma GCC pop_options
1748 #if __ARM_ARCH >= 8
1749 __extension__ extern __inline float32x2_t
1750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1751 vrndn_f32 (float32x2_t __a)
1753 return (float32x2_t)__builtin_neon_vrintnv2sf (__a);
1756 #endif
1757 #if __ARM_ARCH >= 8
1758 __extension__ extern __inline float32x4_t
1759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1760 vrndnq_f32 (float32x4_t __a)
1762 return (float32x4_t)__builtin_neon_vrintnv4sf (__a);
1765 #endif
1766 #if __ARM_ARCH >= 8
1767 __extension__ extern __inline float32x2_t
1768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1769 vrnda_f32 (float32x2_t __a)
1771 return (float32x2_t)__builtin_neon_vrintav2sf (__a);
1774 #endif
1775 #if __ARM_ARCH >= 8
1776 __extension__ extern __inline float32x4_t
1777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1778 vrndaq_f32 (float32x4_t __a)
1780 return (float32x4_t)__builtin_neon_vrintav4sf (__a);
1783 #endif
1784 #if __ARM_ARCH >= 8
1785 __extension__ extern __inline float32x2_t
1786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1787 vrndp_f32 (float32x2_t __a)
1789 return (float32x2_t)__builtin_neon_vrintpv2sf (__a);
1792 #endif
1793 #if __ARM_ARCH >= 8
1794 __extension__ extern __inline float32x4_t
1795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1796 vrndpq_f32 (float32x4_t __a)
1798 return (float32x4_t)__builtin_neon_vrintpv4sf (__a);
1801 #endif
1802 #if __ARM_ARCH >= 8
1803 __extension__ extern __inline float32x2_t
1804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1805 vrndm_f32 (float32x2_t __a)
1807 return (float32x2_t)__builtin_neon_vrintmv2sf (__a);
1810 #endif
1811 #if __ARM_ARCH >= 8
1812 __extension__ extern __inline float32x4_t
1813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1814 vrndmq_f32 (float32x4_t __a)
1816 return (float32x4_t)__builtin_neon_vrintmv4sf (__a);
1819 #endif
1821 #if __ARM_ARCH >= 8
1822 __extension__ extern __inline float32x2_t
1823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1824 vrndx_f32 (float32x2_t __a)
1826 return (float32x2_t)__builtin_neon_vrintxv2sf (__a);
1829 #endif
1831 #if __ARM_ARCH >= 8
1832 __extension__ extern __inline float32x4_t
1833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1834 vrndxq_f32 (float32x4_t __a)
1836 return (float32x4_t)__builtin_neon_vrintxv4sf (__a);
1839 #endif
1841 #if __ARM_ARCH >= 8
1842 __extension__ extern __inline float32x2_t
1843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1844 vrnd_f32 (float32x2_t __a)
1846 return (float32x2_t)__builtin_neon_vrintzv2sf (__a);
1849 #endif
1850 #if __ARM_ARCH >= 8
1851 __extension__ extern __inline float32x4_t
1852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1853 vrndq_f32 (float32x4_t __a)
1855 return (float32x4_t)__builtin_neon_vrintzv4sf (__a);
1858 #endif
1860 __extension__ extern __inline int8x8_t
1861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1862 vsub_s8 (int8x8_t __a, int8x8_t __b)
1864 return __a - __b;
1867 __extension__ extern __inline int16x4_t
1868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1869 vsub_s16 (int16x4_t __a, int16x4_t __b)
1871 return __a - __b;
1874 __extension__ extern __inline int32x2_t
1875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1876 vsub_s32 (int32x2_t __a, int32x2_t __b)
1878 return __a - __b;
1881 __extension__ extern __inline float32x2_t
1882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1883 vsub_f32 (float32x2_t __a, float32x2_t __b)
1885 #ifdef __FAST_MATH__
1886 return __a - __b;
1887 #else
1888 return (float32x2_t) __builtin_neon_vsubv2sf (__a, __b);
1889 #endif
1892 __extension__ extern __inline uint8x8_t
1893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1894 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1896 return __a - __b;
1899 __extension__ extern __inline uint16x4_t
1900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1901 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1903 return __a - __b;
1906 __extension__ extern __inline uint32x2_t
1907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1908 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1910 return __a - __b;
1913 __extension__ extern __inline int64x1_t
1914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1915 vsub_s64 (int64x1_t __a, int64x1_t __b)
1917 return __a - __b;
1920 __extension__ extern __inline uint64x1_t
1921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1922 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1924 return __a - __b;
1927 __extension__ extern __inline int8x16_t
1928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1929 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1931 return __a - __b;
1934 __extension__ extern __inline int16x8_t
1935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1936 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1938 return __a - __b;
1941 __extension__ extern __inline int32x4_t
1942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1943 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1945 return __a - __b;
1948 __extension__ extern __inline int64x2_t
1949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1950 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1952 return __a - __b;
1955 __extension__ extern __inline float32x4_t
1956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1957 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1959 #ifdef __FAST_MATH__
1960 return __a - __b;
1961 #else
1962 return (float32x4_t) __builtin_neon_vsubv4sf (__a, __b);
1963 #endif
1966 __extension__ extern __inline uint8x16_t
1967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1968 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1970 return __a - __b;
1973 __extension__ extern __inline uint16x8_t
1974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1975 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1977 return __a - __b;
1980 __extension__ extern __inline uint32x4_t
1981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1982 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1984 return __a - __b;
1987 __extension__ extern __inline uint64x2_t
1988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1989 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1991 return __a - __b;
1994 __extension__ extern __inline int16x8_t
1995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
1996 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1998 return (int16x8_t)__builtin_neon_vsublsv8qi (__a, __b);
2001 __extension__ extern __inline int32x4_t
2002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2003 vsubl_s16 (int16x4_t __a, int16x4_t __b)
2005 return (int32x4_t)__builtin_neon_vsublsv4hi (__a, __b);
2008 __extension__ extern __inline int64x2_t
2009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2010 vsubl_s32 (int32x2_t __a, int32x2_t __b)
2012 return (int64x2_t)__builtin_neon_vsublsv2si (__a, __b);
2015 __extension__ extern __inline uint16x8_t
2016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2017 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2019 return (uint16x8_t)__builtin_neon_vsubluv8qi ((int8x8_t) __a, (int8x8_t) __b);
2022 __extension__ extern __inline uint32x4_t
2023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2024 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2026 return (uint32x4_t)__builtin_neon_vsubluv4hi ((int16x4_t) __a, (int16x4_t) __b);
2029 __extension__ extern __inline uint64x2_t
2030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2031 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2033 return (uint64x2_t)__builtin_neon_vsubluv2si ((int32x2_t) __a, (int32x2_t) __b);
2036 __extension__ extern __inline int16x8_t
2037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2038 vsubw_s8 (int16x8_t __a, int8x8_t __b)
2040 return (int16x8_t)__builtin_neon_vsubwsv8qi (__a, __b);
2043 __extension__ extern __inline int32x4_t
2044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2045 vsubw_s16 (int32x4_t __a, int16x4_t __b)
2047 return (int32x4_t)__builtin_neon_vsubwsv4hi (__a, __b);
2050 __extension__ extern __inline int64x2_t
2051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2052 vsubw_s32 (int64x2_t __a, int32x2_t __b)
2054 return (int64x2_t)__builtin_neon_vsubwsv2si (__a, __b);
2057 __extension__ extern __inline uint16x8_t
2058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2059 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2061 return (uint16x8_t)__builtin_neon_vsubwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
2064 __extension__ extern __inline uint32x4_t
2065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2066 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2068 return (uint32x4_t)__builtin_neon_vsubwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
2071 __extension__ extern __inline uint64x2_t
2072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2073 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2075 return (uint64x2_t)__builtin_neon_vsubwuv2si ((int64x2_t) __a, (int32x2_t) __b);
2078 __extension__ extern __inline int8x8_t
2079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2080 vhsub_s8 (int8x8_t __a, int8x8_t __b)
2082 return (int8x8_t)__builtin_neon_vhsubsv8qi (__a, __b);
2085 __extension__ extern __inline int16x4_t
2086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2087 vhsub_s16 (int16x4_t __a, int16x4_t __b)
2089 return (int16x4_t)__builtin_neon_vhsubsv4hi (__a, __b);
2092 __extension__ extern __inline int32x2_t
2093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2094 vhsub_s32 (int32x2_t __a, int32x2_t __b)
2096 return (int32x2_t)__builtin_neon_vhsubsv2si (__a, __b);
2099 __extension__ extern __inline uint8x8_t
2100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2101 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2103 return (uint8x8_t)__builtin_neon_vhsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2106 __extension__ extern __inline uint16x4_t
2107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2108 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2110 return (uint16x4_t)__builtin_neon_vhsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2113 __extension__ extern __inline uint32x2_t
2114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2115 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2117 return (uint32x2_t)__builtin_neon_vhsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2120 __extension__ extern __inline int8x16_t
2121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2122 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2124 return (int8x16_t)__builtin_neon_vhsubsv16qi (__a, __b);
2127 __extension__ extern __inline int16x8_t
2128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2129 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2131 return (int16x8_t)__builtin_neon_vhsubsv8hi (__a, __b);
2134 __extension__ extern __inline int32x4_t
2135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2136 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2138 return (int32x4_t)__builtin_neon_vhsubsv4si (__a, __b);
2141 __extension__ extern __inline uint8x16_t
2142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2143 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2145 return (uint8x16_t)__builtin_neon_vhsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2148 __extension__ extern __inline uint16x8_t
2149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2150 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2152 return (uint16x8_t)__builtin_neon_vhsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2155 __extension__ extern __inline uint32x4_t
2156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2157 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2159 return (uint32x4_t)__builtin_neon_vhsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2162 __extension__ extern __inline int8x8_t
2163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2164 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2166 return (int8x8_t)__builtin_neon_vqsubsv8qi (__a, __b);
2169 __extension__ extern __inline int16x4_t
2170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2171 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2173 return (int16x4_t)__builtin_neon_vqsubsv4hi (__a, __b);
2176 __extension__ extern __inline int32x2_t
2177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2178 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2180 return (int32x2_t)__builtin_neon_vqsubsv2si (__a, __b);
2183 __extension__ extern __inline int64x1_t
2184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2185 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2187 return (int64x1_t)__builtin_neon_vqsubsdi (__a, __b);
2190 __extension__ extern __inline uint8x8_t
2191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2192 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2194 return (uint8x8_t)__builtin_neon_vqsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2197 __extension__ extern __inline uint16x4_t
2198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2199 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2201 return (uint16x4_t)__builtin_neon_vqsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2204 __extension__ extern __inline uint32x2_t
2205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2206 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2208 return (uint32x2_t)__builtin_neon_vqsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
2211 __extension__ extern __inline uint64x1_t
2212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2213 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2215 return (uint64x1_t)__builtin_neon_vqsubudi ((int64x1_t) __a, (int64x1_t) __b);
2218 __extension__ extern __inline int8x16_t
2219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2220 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2222 return (int8x16_t)__builtin_neon_vqsubsv16qi (__a, __b);
2225 __extension__ extern __inline int16x8_t
2226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2227 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2229 return (int16x8_t)__builtin_neon_vqsubsv8hi (__a, __b);
2232 __extension__ extern __inline int32x4_t
2233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2234 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2236 return (int32x4_t)__builtin_neon_vqsubsv4si (__a, __b);
2239 __extension__ extern __inline int64x2_t
2240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2241 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2243 return (int64x2_t)__builtin_neon_vqsubsv2di (__a, __b);
2246 __extension__ extern __inline uint8x16_t
2247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2248 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2250 return (uint8x16_t)__builtin_neon_vqsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2253 __extension__ extern __inline uint16x8_t
2254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2255 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2257 return (uint16x8_t)__builtin_neon_vqsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2260 __extension__ extern __inline uint32x4_t
2261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2262 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2264 return (uint32x4_t)__builtin_neon_vqsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
2267 __extension__ extern __inline uint64x2_t
2268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2269 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2271 return (uint64x2_t)__builtin_neon_vqsubuv2di ((int64x2_t) __a, (int64x2_t) __b);
2274 __extension__ extern __inline int8x8_t
2275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2276 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2278 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b);
2281 __extension__ extern __inline int16x4_t
2282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2283 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2285 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b);
2288 __extension__ extern __inline int32x2_t
2289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2290 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2292 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b);
2295 __extension__ extern __inline uint8x8_t
2296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2297 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2299 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2302 __extension__ extern __inline uint16x4_t
2303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2304 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2306 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2309 __extension__ extern __inline uint32x2_t
2310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2311 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2313 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2316 __extension__ extern __inline int8x8_t
2317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2318 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2320 return (int8x8_t)__builtin_neon_vrsubhnv8hi (__a, __b);
2323 __extension__ extern __inline int16x4_t
2324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2325 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2327 return (int16x4_t)__builtin_neon_vrsubhnv4si (__a, __b);
2330 __extension__ extern __inline int32x2_t
2331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2332 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2334 return (int32x2_t)__builtin_neon_vrsubhnv2di (__a, __b);
2337 __extension__ extern __inline uint8x8_t
2338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2339 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2341 return (uint8x8_t)__builtin_neon_vrsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
2344 __extension__ extern __inline uint16x4_t
2345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2346 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2348 return (uint16x4_t)__builtin_neon_vrsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
2351 __extension__ extern __inline uint32x2_t
2352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2353 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2355 return (uint32x2_t)__builtin_neon_vrsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
2358 __extension__ extern __inline uint8x8_t
2359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2360 vceq_s8 (int8x8_t __a, int8x8_t __b)
2362 return (uint8x8_t) (__a == __b);
2365 __extension__ extern __inline uint16x4_t
2366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2367 vceq_s16 (int16x4_t __a, int16x4_t __b)
2369 return (uint16x4_t) (__a == __b);
2372 __extension__ extern __inline uint32x2_t
2373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2374 vceq_s32 (int32x2_t __a, int32x2_t __b)
2376 return (uint32x2_t) (__a == __b);
2379 __extension__ extern __inline uint32x2_t
2380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2381 vceq_f32 (float32x2_t __a, float32x2_t __b)
2383 #ifdef __FAST_MATH__
2384 return (uint32x2_t) (__a == __b);
2385 #else
2386 return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b);
2387 #endif
2390 __extension__ extern __inline uint8x8_t
2391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2392 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
2394 return (uint8x8_t) (__a == __b);
2397 __extension__ extern __inline uint16x4_t
2398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2399 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
2401 return (uint16x4_t) (__a == __b);
2404 __extension__ extern __inline uint32x2_t
2405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2406 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
2408 return (uint32x2_t) (__a == __b);
2411 __extension__ extern __inline uint8x8_t
2412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2413 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
2415 return (uint8x8_t) (__a == __b);
2418 __extension__ extern __inline uint8x16_t
2419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2420 vceqq_s8 (int8x16_t __a, int8x16_t __b)
2422 return (uint8x16_t) (__a == __b);
2425 __extension__ extern __inline uint16x8_t
2426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2427 vceqq_s16 (int16x8_t __a, int16x8_t __b)
2429 return (uint16x8_t) (__a == __b);
2432 __extension__ extern __inline uint32x4_t
2433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2434 vceqq_s32 (int32x4_t __a, int32x4_t __b)
2436 return (uint32x4_t) (__a == __b);
2439 __extension__ extern __inline uint32x4_t
2440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2441 vceqq_f32 (float32x4_t __a, float32x4_t __b)
2443 #ifdef __FAST_MATH__
2444 return (uint32x4_t) (__a == __b);
2445 #else
2446 return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b);
2447 #endif
2450 __extension__ extern __inline uint8x16_t
2451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2452 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
2454 return (uint8x16_t) (__a == __b);
2457 __extension__ extern __inline uint16x8_t
2458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2459 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
2461 return (uint16x8_t) (__a == __b);
2464 __extension__ extern __inline uint32x4_t
2465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2466 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
2468 return (uint32x4_t) (__a == __b);
2471 __extension__ extern __inline uint8x16_t
2472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2473 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
2475 return (uint8x16_t) (__a == __b);
2478 __extension__ extern __inline uint8x8_t
2479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2480 vcge_s8 (int8x8_t __a, int8x8_t __b)
2482 return (uint8x8_t) (__a >= __b);
2485 __extension__ extern __inline uint16x4_t
2486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2487 vcge_s16 (int16x4_t __a, int16x4_t __b)
2489 return (uint16x4_t) (__a >= __b);
2492 __extension__ extern __inline uint32x2_t
2493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2494 vcge_s32 (int32x2_t __a, int32x2_t __b)
2496 return (uint32x2_t) (__a >= __b);
2499 __extension__ extern __inline uint32x2_t
2500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2501 vcge_f32 (float32x2_t __a, float32x2_t __b)
2503 return (uint32x2_t) (__a >= __b);
2506 __extension__ extern __inline uint8x8_t
2507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2508 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
2510 return (uint8x8_t) (__a >= __b);
2513 __extension__ extern __inline uint16x4_t
2514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2515 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
2517 return (uint16x4_t) (__a >= __b);
2520 __extension__ extern __inline uint32x2_t
2521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2522 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
2524 return (uint32x2_t) (__a >= __b);
2527 __extension__ extern __inline uint8x16_t
2528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2529 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
2531 return (uint8x16_t) (__a >= __b);
2534 __extension__ extern __inline uint16x8_t
2535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2536 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
2538 return (uint16x8_t) (__a >= __b);
2541 __extension__ extern __inline uint32x4_t
2542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2543 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
2545 return (uint32x4_t) (__a >= __b);
2548 __extension__ extern __inline uint32x4_t
2549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2550 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
2552 return (uint32x4_t) (__a >= __b);
2555 __extension__ extern __inline uint8x16_t
2556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2557 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
2559 return (uint8x16_t) (__a >= __b);
2562 __extension__ extern __inline uint16x8_t
2563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2564 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
2566 return (uint16x8_t) (__a >= __b);
2569 __extension__ extern __inline uint32x4_t
2570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2571 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
2573 return (uint32x4_t) (__a >= __b);
2576 __extension__ extern __inline uint8x8_t
2577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2578 vcle_s8 (int8x8_t __a, int8x8_t __b)
2580 return (uint8x8_t) (__a <= __b);
2583 __extension__ extern __inline uint16x4_t
2584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2585 vcle_s16 (int16x4_t __a, int16x4_t __b)
2587 return (uint16x4_t) (__a <= __b);
2590 __extension__ extern __inline uint32x2_t
2591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2592 vcle_s32 (int32x2_t __a, int32x2_t __b)
2594 return (uint32x2_t) (__a <= __b);
2597 __extension__ extern __inline uint32x2_t
2598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2599 vcle_f32 (float32x2_t __a, float32x2_t __b)
2601 return (uint32x2_t) (__a <= __b);
2604 __extension__ extern __inline uint8x8_t
2605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2606 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
2608 return (uint8x8_t) (__a <= __b);
2611 __extension__ extern __inline uint16x4_t
2612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2613 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
2615 return (uint16x4_t) (__a <= __b);
2618 __extension__ extern __inline uint32x2_t
2619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2620 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
2622 return (uint32x2_t) (__a <= __b);
2625 __extension__ extern __inline uint8x16_t
2626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2627 vcleq_s8 (int8x16_t __a, int8x16_t __b)
2629 return (uint8x16_t) (__a <= __b);
2632 __extension__ extern __inline uint16x8_t
2633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2634 vcleq_s16 (int16x8_t __a, int16x8_t __b)
2636 return (uint16x8_t) (__a <= __b);
2639 __extension__ extern __inline uint32x4_t
2640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2641 vcleq_s32 (int32x4_t __a, int32x4_t __b)
2643 return (uint32x4_t) (__a <= __b);
2646 __extension__ extern __inline uint32x4_t
2647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2648 vcleq_f32 (float32x4_t __a, float32x4_t __b)
2650 return (uint32x4_t) (__a <= __b);
2653 __extension__ extern __inline uint8x16_t
2654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2655 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2657 return (uint8x16_t) (__a <= __b);
2660 __extension__ extern __inline uint16x8_t
2661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2662 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2664 return (uint16x8_t) (__a <= __b);
2667 __extension__ extern __inline uint32x4_t
2668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2669 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2671 return (uint32x4_t) (__a <= __b);
2674 __extension__ extern __inline uint8x8_t
2675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2676 vcgt_s8 (int8x8_t __a, int8x8_t __b)
2678 return (uint8x8_t) (__a > __b);
2681 __extension__ extern __inline uint16x4_t
2682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2683 vcgt_s16 (int16x4_t __a, int16x4_t __b)
2685 return (uint16x4_t) (__a > __b);
2688 __extension__ extern __inline uint32x2_t
2689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2690 vcgt_s32 (int32x2_t __a, int32x2_t __b)
2692 return (uint32x2_t) (__a > __b);
2695 __extension__ extern __inline uint32x2_t
2696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2697 vcgt_f32 (float32x2_t __a, float32x2_t __b)
2699 return (uint32x2_t) (__a > __b);
2702 __extension__ extern __inline uint8x8_t
2703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2704 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2706 return (__a > __b);
2709 __extension__ extern __inline uint16x4_t
2710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2711 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2713 return (__a > __b);
2716 __extension__ extern __inline uint32x2_t
2717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2718 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2720 return (__a > __b);
2723 __extension__ extern __inline uint8x16_t
2724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2725 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2727 return (uint8x16_t) (__a > __b);
2730 __extension__ extern __inline uint16x8_t
2731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2732 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2734 return (uint16x8_t) (__a > __b);
2737 __extension__ extern __inline uint32x4_t
2738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2739 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2741 return (uint32x4_t) (__a > __b);
2744 __extension__ extern __inline uint32x4_t
2745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2746 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2748 return (uint32x4_t) (__a > __b);
2751 __extension__ extern __inline uint8x16_t
2752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2753 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2755 return (__a > __b);
2758 __extension__ extern __inline uint16x8_t
2759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2760 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2762 return (__a > __b);
2765 __extension__ extern __inline uint32x4_t
2766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2767 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2769 return (__a > __b);
2772 __extension__ extern __inline uint8x8_t
2773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2774 vclt_s8 (int8x8_t __a, int8x8_t __b)
2776 return (uint8x8_t) (__a < __b);
2779 __extension__ extern __inline uint16x4_t
2780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2781 vclt_s16 (int16x4_t __a, int16x4_t __b)
2783 return (uint16x4_t) (__a < __b);
2786 __extension__ extern __inline uint32x2_t
2787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2788 vclt_s32 (int32x2_t __a, int32x2_t __b)
2790 return (uint32x2_t) (__a < __b);
2793 __extension__ extern __inline uint32x2_t
2794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2795 vclt_f32 (float32x2_t __a, float32x2_t __b)
2797 return (uint32x2_t) (__a < __b);
2800 __extension__ extern __inline uint8x8_t
2801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2802 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2804 return (__a < __b);
2807 __extension__ extern __inline uint16x4_t
2808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2809 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2811 return (__a < __b);
2814 __extension__ extern __inline uint32x2_t
2815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2816 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2818 return (__a < __b);
2821 __extension__ extern __inline uint8x16_t
2822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2823 vcltq_s8 (int8x16_t __a, int8x16_t __b)
2825 return (uint8x16_t) (__a < __b);
2828 __extension__ extern __inline uint16x8_t
2829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2830 vcltq_s16 (int16x8_t __a, int16x8_t __b)
2832 return (uint16x8_t) (__a < __b);
2835 __extension__ extern __inline uint32x4_t
2836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2837 vcltq_s32 (int32x4_t __a, int32x4_t __b)
2839 return (uint32x4_t) (__a < __b);
2842 __extension__ extern __inline uint32x4_t
2843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2844 vcltq_f32 (float32x4_t __a, float32x4_t __b)
2846 return (uint32x4_t) (__a < __b);
2849 __extension__ extern __inline uint8x16_t
2850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2851 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2853 return (__a < __b);
2856 __extension__ extern __inline uint16x8_t
2857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2858 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2860 return (__a < __b);
2863 __extension__ extern __inline uint32x4_t
2864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2865 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2867 return (__a < __b);
2870 __extension__ extern __inline int8x8_t
2871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2872 vabs_s8 (int8x8_t __a)
2874 return (int8x8_t)__builtin_neon_vabsv8qi (__a);
2877 __extension__ extern __inline int16x4_t
2878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2879 vabs_s16 (int16x4_t __a)
2881 return (int16x4_t)__builtin_neon_vabsv4hi (__a);
2884 __extension__ extern __inline int32x2_t
2885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2886 vabs_s32 (int32x2_t __a)
2888 return (int32x2_t)__builtin_neon_vabsv2si (__a);
2891 __extension__ extern __inline float32x2_t
2892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2893 vabs_f32 (float32x2_t __a)
2895 return (float32x2_t)__builtin_neon_vabsv2sf (__a);
2898 __extension__ extern __inline int8x16_t
2899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2900 vabsq_s8 (int8x16_t __a)
2902 return (int8x16_t)__builtin_neon_vabsv16qi (__a);
2905 __extension__ extern __inline int16x8_t
2906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2907 vabsq_s16 (int16x8_t __a)
2909 return (int16x8_t)__builtin_neon_vabsv8hi (__a);
2912 __extension__ extern __inline int32x4_t
2913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2914 vabsq_s32 (int32x4_t __a)
2916 return (int32x4_t)__builtin_neon_vabsv4si (__a);
2919 __extension__ extern __inline float32x4_t
2920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2921 vabsq_f32 (float32x4_t __a)
2923 return (float32x4_t)__builtin_neon_vabsv4sf (__a);
2926 __extension__ extern __inline int8x8_t
2927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2928 vqabs_s8 (int8x8_t __a)
2930 return (int8x8_t)__builtin_neon_vqabsv8qi (__a);
2933 __extension__ extern __inline int16x4_t
2934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2935 vqabs_s16 (int16x4_t __a)
2937 return (int16x4_t)__builtin_neon_vqabsv4hi (__a);
2940 __extension__ extern __inline int32x2_t
2941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2942 vqabs_s32 (int32x2_t __a)
2944 return (int32x2_t)__builtin_neon_vqabsv2si (__a);
2947 __extension__ extern __inline int8x16_t
2948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2949 vqabsq_s8 (int8x16_t __a)
2951 return (int8x16_t)__builtin_neon_vqabsv16qi (__a);
2954 __extension__ extern __inline int16x8_t
2955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2956 vqabsq_s16 (int16x8_t __a)
2958 return (int16x8_t)__builtin_neon_vqabsv8hi (__a);
2961 __extension__ extern __inline int32x4_t
2962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2963 vqabsq_s32 (int32x4_t __a)
2965 return (int32x4_t)__builtin_neon_vqabsv4si (__a);
2967 __extension__ extern __inline uint32x2_t
2968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2969 vcage_f32 (float32x2_t __a, float32x2_t __b)
2971 #ifdef __FAST_MATH__
2972 return (uint32x2_t) (vabs_f32 (__a) >= vabs_f32 (__b));
2973 #else
2974 return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b);
2975 #endif
2978 __extension__ extern __inline uint32x4_t
2979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2980 vcageq_f32 (float32x4_t __a, float32x4_t __b)
2982 #ifdef __FAST_MATH__
2983 return (uint32x4_t) (vabsq_f32 (__a) >= vabsq_f32 (__b));
2984 #else
2985 return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b);
2986 #endif
2989 __extension__ extern __inline uint32x2_t
2990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
2991 vcale_f32 (float32x2_t __a, float32x2_t __b)
2993 #ifdef __FAST_MATH__
2994 return (uint32x2_t) (vabs_f32 (__a) <= vabs_f32 (__b));
2995 #else
2996 return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a);
2997 #endif
3000 __extension__ extern __inline uint32x4_t
3001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3002 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
3004 #ifdef __FAST_MATH__
3005 return (uint32x4_t) (vabsq_f32 (__a) <= vabsq_f32 (__b));
3006 #else
3007 return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a);
3008 #endif
3011 __extension__ extern __inline uint32x2_t
3012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3013 vcagt_f32 (float32x2_t __a, float32x2_t __b)
3015 #ifdef __FAST_MATH__
3016 return (uint32x2_t) (vabs_f32 (__a) > vabs_f32 (__b));
3017 #else
3018 return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b);
3019 #endif
3022 __extension__ extern __inline uint32x4_t
3023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3024 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
3026 #ifdef __FAST_MATH__
3027 return (uint32x4_t) (vabsq_f32 (__a) > vabsq_f32 (__b));
3028 #else
3029 return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b);
3030 #endif
3033 __extension__ extern __inline uint32x2_t
3034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3035 vcalt_f32 (float32x2_t __a, float32x2_t __b)
3037 #ifdef __FAST_MATH__
3038 return (uint32x2_t) (vabs_f32 (__a) < vabs_f32 (__b));
3039 #else
3040 return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a);
3041 #endif
3044 __extension__ extern __inline uint32x4_t
3045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3046 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
3048 #ifdef __FAST_MATH__
3049 return (uint32x4_t) (vabsq_f32 (__a) < vabsq_f32 (__b));
3050 #else
3051 return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a);
3052 #endif
3055 __extension__ extern __inline uint8x8_t
3056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3057 vtst_s8 (int8x8_t __a, int8x8_t __b)
3059 return (uint8x8_t) ((__a & __b) != 0);
3062 __extension__ extern __inline uint16x4_t
3063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3064 vtst_s16 (int16x4_t __a, int16x4_t __b)
3066 return (uint16x4_t) ((__a & __b) != 0);
3069 __extension__ extern __inline uint32x2_t
3070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3071 vtst_s32 (int32x2_t __a, int32x2_t __b)
3073 return (uint32x2_t) ((__a & __b) != 0);
3076 __extension__ extern __inline uint8x8_t
3077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3078 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
3080 return (uint8x8_t) ((__a & __b) != 0);
3083 __extension__ extern __inline uint16x4_t
3084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3085 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
3087 return (uint16x4_t) ((__a & __b) != 0);
3090 __extension__ extern __inline uint32x2_t
3091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3092 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
3094 return (uint32x2_t) ((__a & __b) != 0);
3097 __extension__ extern __inline uint8x8_t
3098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3099 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
3101 return (uint8x8_t) ((__a & __b) != 0);
3104 __extension__ extern __inline uint16x4_t
3105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3106 vtst_p16 (poly16x4_t __a, poly16x4_t __b)
3108 return (uint16x4_t) ((__a & __b) != 0);
3111 __extension__ extern __inline uint8x16_t
3112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3113 vtstq_s8 (int8x16_t __a, int8x16_t __b)
3115 return (uint8x16_t) ((__a & __b) != 0);
3118 __extension__ extern __inline uint16x8_t
3119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3120 vtstq_s16 (int16x8_t __a, int16x8_t __b)
3122 return (uint16x8_t) ((__a & __b) != 0);
3125 __extension__ extern __inline uint32x4_t
3126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3127 vtstq_s32 (int32x4_t __a, int32x4_t __b)
3129 return (uint32x4_t) ((__a & __b) != 0);
3132 __extension__ extern __inline uint8x16_t
3133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3134 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
3136 return (uint8x16_t) ((__a & __b) != 0);
3139 __extension__ extern __inline uint16x8_t
3140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3141 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
3143 return (uint16x8_t) ((__a & __b) != 0);
3146 __extension__ extern __inline uint32x4_t
3147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3148 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
3150 return (uint32x4_t) ((__a & __b) != 0);
3153 __extension__ extern __inline uint8x16_t
3154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3155 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
3157 return (uint8x16_t) ((__a & __b) != 0);
3160 __extension__ extern __inline uint16x8_t
3161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3162 vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
3164 return (uint16x8_t) ((__a & __b) != 0);
3167 __extension__ extern __inline int8x8_t
3168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3169 vabd_s8 (int8x8_t __a, int8x8_t __b)
3171 return (int8x8_t)__builtin_neon_vabdsv8qi (__a, __b);
3174 __extension__ extern __inline int16x4_t
3175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3176 vabd_s16 (int16x4_t __a, int16x4_t __b)
3178 return (int16x4_t)__builtin_neon_vabdsv4hi (__a, __b);
3181 __extension__ extern __inline int32x2_t
3182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3183 vabd_s32 (int32x2_t __a, int32x2_t __b)
3185 return (int32x2_t)__builtin_neon_vabdsv2si (__a, __b);
3188 __extension__ extern __inline float32x2_t
3189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3190 vabd_f32 (float32x2_t __a, float32x2_t __b)
3192 return (float32x2_t)__builtin_neon_vabdfv2sf (__a, __b);
3195 __extension__ extern __inline uint8x8_t
3196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3197 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
3199 return (uint8x8_t)__builtin_neon_vabduv8qi ((int8x8_t) __a, (int8x8_t) __b);
3202 __extension__ extern __inline uint16x4_t
3203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3204 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
3206 return (uint16x4_t)__builtin_neon_vabduv4hi ((int16x4_t) __a, (int16x4_t) __b);
3209 __extension__ extern __inline uint32x2_t
3210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3211 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
3213 return (uint32x2_t)__builtin_neon_vabduv2si ((int32x2_t) __a, (int32x2_t) __b);
3216 __extension__ extern __inline int8x16_t
3217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3218 vabdq_s8 (int8x16_t __a, int8x16_t __b)
3220 return (int8x16_t)__builtin_neon_vabdsv16qi (__a, __b);
3223 __extension__ extern __inline int16x8_t
3224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3225 vabdq_s16 (int16x8_t __a, int16x8_t __b)
3227 return (int16x8_t)__builtin_neon_vabdsv8hi (__a, __b);
3230 __extension__ extern __inline int32x4_t
3231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3232 vabdq_s32 (int32x4_t __a, int32x4_t __b)
3234 return (int32x4_t)__builtin_neon_vabdsv4si (__a, __b);
3237 __extension__ extern __inline float32x4_t
3238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3239 vabdq_f32 (float32x4_t __a, float32x4_t __b)
3241 return (float32x4_t)__builtin_neon_vabdfv4sf (__a, __b);
3244 __extension__ extern __inline uint8x16_t
3245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3246 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
3248 return (uint8x16_t)__builtin_neon_vabduv16qi ((int8x16_t) __a, (int8x16_t) __b);
3251 __extension__ extern __inline uint16x8_t
3252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3253 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
3255 return (uint16x8_t)__builtin_neon_vabduv8hi ((int16x8_t) __a, (int16x8_t) __b);
3258 __extension__ extern __inline uint32x4_t
3259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3260 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
3262 return (uint32x4_t)__builtin_neon_vabduv4si ((int32x4_t) __a, (int32x4_t) __b);
3265 __extension__ extern __inline int16x8_t
3266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3267 vabdl_s8 (int8x8_t __a, int8x8_t __b)
3269 return (int16x8_t)__builtin_neon_vabdlsv8qi (__a, __b);
3272 __extension__ extern __inline int32x4_t
3273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3274 vabdl_s16 (int16x4_t __a, int16x4_t __b)
3276 return (int32x4_t)__builtin_neon_vabdlsv4hi (__a, __b);
3279 __extension__ extern __inline int64x2_t
3280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3281 vabdl_s32 (int32x2_t __a, int32x2_t __b)
3283 return (int64x2_t)__builtin_neon_vabdlsv2si (__a, __b);
3286 __extension__ extern __inline uint16x8_t
3287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3288 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
3290 return (uint16x8_t)__builtin_neon_vabdluv8qi ((int8x8_t) __a, (int8x8_t) __b);
3293 __extension__ extern __inline uint32x4_t
3294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3295 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
3297 return (uint32x4_t)__builtin_neon_vabdluv4hi ((int16x4_t) __a, (int16x4_t) __b);
3300 __extension__ extern __inline uint64x2_t
3301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3302 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
3304 return (uint64x2_t)__builtin_neon_vabdluv2si ((int32x2_t) __a, (int32x2_t) __b);
3307 __extension__ extern __inline int8x8_t
3308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3309 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
3311 return (int8x8_t)__builtin_neon_vabasv8qi (__a, __b, __c);
3314 __extension__ extern __inline int16x4_t
3315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3316 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
3318 return (int16x4_t)__builtin_neon_vabasv4hi (__a, __b, __c);
3321 __extension__ extern __inline int32x2_t
3322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3323 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
3325 return (int32x2_t)__builtin_neon_vabasv2si (__a, __b, __c);
3328 __extension__ extern __inline uint8x8_t
3329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3330 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
3332 return (uint8x8_t)__builtin_neon_vabauv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3335 __extension__ extern __inline uint16x4_t
3336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3337 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
3339 return (uint16x4_t)__builtin_neon_vabauv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3342 __extension__ extern __inline uint32x2_t
3343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3344 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
3346 return (uint32x2_t)__builtin_neon_vabauv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3349 __extension__ extern __inline int8x16_t
3350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3351 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
3353 return (int8x16_t)__builtin_neon_vabasv16qi (__a, __b, __c);
3356 __extension__ extern __inline int16x8_t
3357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3358 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
3360 return (int16x8_t)__builtin_neon_vabasv8hi (__a, __b, __c);
3363 __extension__ extern __inline int32x4_t
3364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3365 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
3367 return (int32x4_t)__builtin_neon_vabasv4si (__a, __b, __c);
3370 __extension__ extern __inline uint8x16_t
3371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3372 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
3374 return (uint8x16_t)__builtin_neon_vabauv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
3377 __extension__ extern __inline uint16x8_t
3378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3379 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
3381 return (uint16x8_t)__builtin_neon_vabauv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
3384 __extension__ extern __inline uint32x4_t
3385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3386 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
3388 return (uint32x4_t)__builtin_neon_vabauv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
3391 __extension__ extern __inline int16x8_t
3392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3393 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
3395 return (int16x8_t)__builtin_neon_vabalsv8qi (__a, __b, __c);
3398 __extension__ extern __inline int32x4_t
3399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3400 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
3402 return (int32x4_t)__builtin_neon_vabalsv4hi (__a, __b, __c);
3405 __extension__ extern __inline int64x2_t
3406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3407 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
3409 return (int64x2_t)__builtin_neon_vabalsv2si (__a, __b, __c);
3412 __extension__ extern __inline uint16x8_t
3413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3414 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
3416 return (uint16x8_t)__builtin_neon_vabaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
3419 __extension__ extern __inline uint32x4_t
3420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3421 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
3423 return (uint32x4_t)__builtin_neon_vabaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
3426 __extension__ extern __inline uint64x2_t
3427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3428 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
3430 return (uint64x2_t)__builtin_neon_vabaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
3433 __extension__ extern __inline int8x8_t
3434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3435 vmax_s8 (int8x8_t __a, int8x8_t __b)
3437 return (int8x8_t)__builtin_neon_vmaxsv8qi (__a, __b);
3440 __extension__ extern __inline int16x4_t
3441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3442 vmax_s16 (int16x4_t __a, int16x4_t __b)
3444 return (int16x4_t)__builtin_neon_vmaxsv4hi (__a, __b);
3447 __extension__ extern __inline int32x2_t
3448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3449 vmax_s32 (int32x2_t __a, int32x2_t __b)
3451 return (int32x2_t)__builtin_neon_vmaxsv2si (__a, __b);
3454 __extension__ extern __inline float32x2_t
3455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3456 vmax_f32 (float32x2_t __a, float32x2_t __b)
3458 return (float32x2_t)__builtin_neon_vmaxfv2sf (__a, __b);
3461 __extension__ extern __inline uint8x8_t
3462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3463 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
3465 return (uint8x8_t)__builtin_neon_vmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3468 __extension__ extern __inline uint16x4_t
3469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3470 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
3472 return (uint16x4_t)__builtin_neon_vmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3475 __extension__ extern __inline uint32x2_t
3476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3477 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
3479 return (uint32x2_t)__builtin_neon_vmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3482 __extension__ extern __inline int8x16_t
3483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3484 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
3486 return (int8x16_t)__builtin_neon_vmaxsv16qi (__a, __b);
3489 __extension__ extern __inline int16x8_t
3490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3491 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
3493 return (int16x8_t)__builtin_neon_vmaxsv8hi (__a, __b);
3496 __extension__ extern __inline int32x4_t
3497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3498 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
3500 return (int32x4_t)__builtin_neon_vmaxsv4si (__a, __b);
3503 __extension__ extern __inline float32x4_t
3504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3505 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
3507 return (float32x4_t)__builtin_neon_vmaxfv4sf (__a, __b);
3510 #pragma GCC push_options
3511 #pragma GCC target ("fpu=neon-fp-armv8")
3512 __extension__ extern __inline float32x2_t
3513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3514 vmaxnm_f32 (float32x2_t a, float32x2_t b)
3516 return (float32x2_t)__builtin_neon_vmaxnmv2sf (a, b);
3519 __extension__ extern __inline float32x4_t
3520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3521 vmaxnmq_f32 (float32x4_t a, float32x4_t b)
3523 return (float32x4_t)__builtin_neon_vmaxnmv4sf (a, b);
3526 __extension__ extern __inline float32x2_t
3527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3528 vminnm_f32 (float32x2_t a, float32x2_t b)
3530 return (float32x2_t)__builtin_neon_vminnmv2sf (a, b);
3533 __extension__ extern __inline float32x4_t
3534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3535 vminnmq_f32 (float32x4_t a, float32x4_t b)
3537 return (float32x4_t)__builtin_neon_vminnmv4sf (a, b);
3539 #pragma GCC pop_options
3542 __extension__ extern __inline uint8x16_t
3543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3544 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
3546 return (uint8x16_t)__builtin_neon_vmaxuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3549 __extension__ extern __inline uint16x8_t
3550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3551 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
3553 return (uint16x8_t)__builtin_neon_vmaxuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3556 __extension__ extern __inline uint32x4_t
3557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3558 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
3560 return (uint32x4_t)__builtin_neon_vmaxuv4si ((int32x4_t) __a, (int32x4_t) __b);
3563 __extension__ extern __inline int8x8_t
3564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3565 vmin_s8 (int8x8_t __a, int8x8_t __b)
3567 return (int8x8_t)__builtin_neon_vminsv8qi (__a, __b);
3570 __extension__ extern __inline int16x4_t
3571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3572 vmin_s16 (int16x4_t __a, int16x4_t __b)
3574 return (int16x4_t)__builtin_neon_vminsv4hi (__a, __b);
3577 __extension__ extern __inline int32x2_t
3578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3579 vmin_s32 (int32x2_t __a, int32x2_t __b)
3581 return (int32x2_t)__builtin_neon_vminsv2si (__a, __b);
3584 __extension__ extern __inline float32x2_t
3585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3586 vmin_f32 (float32x2_t __a, float32x2_t __b)
3588 return (float32x2_t)__builtin_neon_vminfv2sf (__a, __b);
3591 __extension__ extern __inline uint8x8_t
3592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3593 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
3595 return (uint8x8_t)__builtin_neon_vminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3598 __extension__ extern __inline uint16x4_t
3599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3600 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
3602 return (uint16x4_t)__builtin_neon_vminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3605 __extension__ extern __inline uint32x2_t
3606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3607 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
3609 return (uint32x2_t)__builtin_neon_vminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3612 __extension__ extern __inline int8x16_t
3613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3614 vminq_s8 (int8x16_t __a, int8x16_t __b)
3616 return (int8x16_t)__builtin_neon_vminsv16qi (__a, __b);
3619 __extension__ extern __inline int16x8_t
3620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3621 vminq_s16 (int16x8_t __a, int16x8_t __b)
3623 return (int16x8_t)__builtin_neon_vminsv8hi (__a, __b);
3626 __extension__ extern __inline int32x4_t
3627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3628 vminq_s32 (int32x4_t __a, int32x4_t __b)
3630 return (int32x4_t)__builtin_neon_vminsv4si (__a, __b);
3633 __extension__ extern __inline float32x4_t
3634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3635 vminq_f32 (float32x4_t __a, float32x4_t __b)
3637 return (float32x4_t)__builtin_neon_vminfv4sf (__a, __b);
3640 __extension__ extern __inline uint8x16_t
3641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3642 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
3644 return (uint8x16_t)__builtin_neon_vminuv16qi ((int8x16_t) __a, (int8x16_t) __b);
3647 __extension__ extern __inline uint16x8_t
3648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3649 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
3651 return (uint16x8_t)__builtin_neon_vminuv8hi ((int16x8_t) __a, (int16x8_t) __b);
3654 __extension__ extern __inline uint32x4_t
3655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3656 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
3658 return (uint32x4_t)__builtin_neon_vminuv4si ((int32x4_t) __a, (int32x4_t) __b);
3661 __extension__ extern __inline int8x8_t
3662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3663 vpadd_s8 (int8x8_t __a, int8x8_t __b)
3665 return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b);
3668 __extension__ extern __inline int16x4_t
3669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3670 vpadd_s16 (int16x4_t __a, int16x4_t __b)
3672 return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b);
3675 __extension__ extern __inline int32x2_t
3676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3677 vpadd_s32 (int32x2_t __a, int32x2_t __b)
3679 return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b);
3682 __extension__ extern __inline float32x2_t
3683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3684 vpadd_f32 (float32x2_t __a, float32x2_t __b)
3686 return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b);
3689 __extension__ extern __inline uint8x8_t
3690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3691 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
3693 return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b);
3696 __extension__ extern __inline uint16x4_t
3697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3698 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
3700 return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b);
3703 __extension__ extern __inline uint32x2_t
3704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3705 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
3707 return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b);
3710 __extension__ extern __inline int16x4_t
3711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3712 vpaddl_s8 (int8x8_t __a)
3714 return (int16x4_t)__builtin_neon_vpaddlsv8qi (__a);
3717 __extension__ extern __inline int32x2_t
3718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3719 vpaddl_s16 (int16x4_t __a)
3721 return (int32x2_t)__builtin_neon_vpaddlsv4hi (__a);
3724 __extension__ extern __inline int64x1_t
3725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3726 vpaddl_s32 (int32x2_t __a)
3728 return (int64x1_t)__builtin_neon_vpaddlsv2si (__a);
3731 __extension__ extern __inline uint16x4_t
3732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3733 vpaddl_u8 (uint8x8_t __a)
3735 return (uint16x4_t)__builtin_neon_vpaddluv8qi ((int8x8_t) __a);
3738 __extension__ extern __inline uint32x2_t
3739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3740 vpaddl_u16 (uint16x4_t __a)
3742 return (uint32x2_t)__builtin_neon_vpaddluv4hi ((int16x4_t) __a);
3745 __extension__ extern __inline uint64x1_t
3746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3747 vpaddl_u32 (uint32x2_t __a)
3749 return (uint64x1_t)__builtin_neon_vpaddluv2si ((int32x2_t) __a);
3752 __extension__ extern __inline int16x8_t
3753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3754 vpaddlq_s8 (int8x16_t __a)
3756 return (int16x8_t)__builtin_neon_vpaddlsv16qi (__a);
3759 __extension__ extern __inline int32x4_t
3760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3761 vpaddlq_s16 (int16x8_t __a)
3763 return (int32x4_t)__builtin_neon_vpaddlsv8hi (__a);
3766 __extension__ extern __inline int64x2_t
3767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3768 vpaddlq_s32 (int32x4_t __a)
3770 return (int64x2_t)__builtin_neon_vpaddlsv4si (__a);
3773 __extension__ extern __inline uint16x8_t
3774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3775 vpaddlq_u8 (uint8x16_t __a)
3777 return (uint16x8_t)__builtin_neon_vpaddluv16qi ((int8x16_t) __a);
3780 __extension__ extern __inline uint32x4_t
3781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3782 vpaddlq_u16 (uint16x8_t __a)
3784 return (uint32x4_t)__builtin_neon_vpaddluv8hi ((int16x8_t) __a);
3787 __extension__ extern __inline uint64x2_t
3788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3789 vpaddlq_u32 (uint32x4_t __a)
3791 return (uint64x2_t)__builtin_neon_vpaddluv4si ((int32x4_t) __a);
3794 __extension__ extern __inline int16x4_t
3795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3796 vpadal_s8 (int16x4_t __a, int8x8_t __b)
3798 return (int16x4_t)__builtin_neon_vpadalsv8qi (__a, __b);
3801 __extension__ extern __inline int32x2_t
3802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3803 vpadal_s16 (int32x2_t __a, int16x4_t __b)
3805 return (int32x2_t)__builtin_neon_vpadalsv4hi (__a, __b);
3808 __extension__ extern __inline int64x1_t
3809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3810 vpadal_s32 (int64x1_t __a, int32x2_t __b)
3812 return (int64x1_t)__builtin_neon_vpadalsv2si (__a, __b);
3815 __extension__ extern __inline uint16x4_t
3816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3817 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
3819 return (uint16x4_t)__builtin_neon_vpadaluv8qi ((int16x4_t) __a, (int8x8_t) __b);
3822 __extension__ extern __inline uint32x2_t
3823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3824 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
3826 return (uint32x2_t)__builtin_neon_vpadaluv4hi ((int32x2_t) __a, (int16x4_t) __b);
3829 __extension__ extern __inline uint64x1_t
3830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3831 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
3833 return (uint64x1_t)__builtin_neon_vpadaluv2si ((int64x1_t) __a, (int32x2_t) __b);
3836 __extension__ extern __inline int16x8_t
3837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3838 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
3840 return (int16x8_t)__builtin_neon_vpadalsv16qi (__a, __b);
3843 __extension__ extern __inline int32x4_t
3844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3845 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
3847 return (int32x4_t)__builtin_neon_vpadalsv8hi (__a, __b);
3850 __extension__ extern __inline int64x2_t
3851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3852 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
3854 return (int64x2_t)__builtin_neon_vpadalsv4si (__a, __b);
3857 __extension__ extern __inline uint16x8_t
3858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3859 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
3861 return (uint16x8_t)__builtin_neon_vpadaluv16qi ((int16x8_t) __a, (int8x16_t) __b);
3864 __extension__ extern __inline uint32x4_t
3865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3866 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
3868 return (uint32x4_t)__builtin_neon_vpadaluv8hi ((int32x4_t) __a, (int16x8_t) __b);
3871 __extension__ extern __inline uint64x2_t
3872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3873 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
3875 return (uint64x2_t)__builtin_neon_vpadaluv4si ((int64x2_t) __a, (int32x4_t) __b);
3878 __extension__ extern __inline int8x8_t
3879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3880 vpmax_s8 (int8x8_t __a, int8x8_t __b)
3882 return (int8x8_t)__builtin_neon_vpmaxsv8qi (__a, __b);
3885 __extension__ extern __inline int16x4_t
3886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3887 vpmax_s16 (int16x4_t __a, int16x4_t __b)
3889 return (int16x4_t)__builtin_neon_vpmaxsv4hi (__a, __b);
3892 __extension__ extern __inline int32x2_t
3893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3894 vpmax_s32 (int32x2_t __a, int32x2_t __b)
3896 return (int32x2_t)__builtin_neon_vpmaxsv2si (__a, __b);
3899 __extension__ extern __inline float32x2_t
3900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3901 vpmax_f32 (float32x2_t __a, float32x2_t __b)
3903 return (float32x2_t)__builtin_neon_vpmaxfv2sf (__a, __b);
3906 __extension__ extern __inline uint8x8_t
3907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3908 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
3910 return (uint8x8_t)__builtin_neon_vpmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3913 __extension__ extern __inline uint16x4_t
3914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3915 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
3917 return (uint16x4_t)__builtin_neon_vpmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3920 __extension__ extern __inline uint32x2_t
3921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3922 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
3924 return (uint32x2_t)__builtin_neon_vpmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3927 __extension__ extern __inline int8x8_t
3928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3929 vpmin_s8 (int8x8_t __a, int8x8_t __b)
3931 return (int8x8_t)__builtin_neon_vpminsv8qi (__a, __b);
3934 __extension__ extern __inline int16x4_t
3935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3936 vpmin_s16 (int16x4_t __a, int16x4_t __b)
3938 return (int16x4_t)__builtin_neon_vpminsv4hi (__a, __b);
3941 __extension__ extern __inline int32x2_t
3942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3943 vpmin_s32 (int32x2_t __a, int32x2_t __b)
3945 return (int32x2_t)__builtin_neon_vpminsv2si (__a, __b);
3948 __extension__ extern __inline float32x2_t
3949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3950 vpmin_f32 (float32x2_t __a, float32x2_t __b)
3952 return (float32x2_t)__builtin_neon_vpminfv2sf (__a, __b);
3955 __extension__ extern __inline uint8x8_t
3956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3957 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
3959 return (uint8x8_t)__builtin_neon_vpminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3962 __extension__ extern __inline uint16x4_t
3963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3964 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
3966 return (uint16x4_t)__builtin_neon_vpminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3969 __extension__ extern __inline uint32x2_t
3970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3971 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
3973 return (uint32x2_t)__builtin_neon_vpminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3976 __extension__ extern __inline float32x2_t
3977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3978 vrecps_f32 (float32x2_t __a, float32x2_t __b)
3980 return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b);
3983 __extension__ extern __inline float32x4_t
3984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3985 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3987 return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b);
3990 __extension__ extern __inline float32x2_t
3991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3992 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3994 return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b);
3997 __extension__ extern __inline float32x4_t
3998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
3999 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
4001 return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b);
4004 __extension__ extern __inline int8x8_t
4005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4006 vshl_s8 (int8x8_t __a, int8x8_t __b)
4008 return (int8x8_t)__builtin_neon_vshlsv8qi (__a, __b);
4011 __extension__ extern __inline int16x4_t
4012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4013 vshl_s16 (int16x4_t __a, int16x4_t __b)
4015 return (int16x4_t)__builtin_neon_vshlsv4hi (__a, __b);
4018 __extension__ extern __inline int32x2_t
4019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4020 vshl_s32 (int32x2_t __a, int32x2_t __b)
4022 return (int32x2_t)__builtin_neon_vshlsv2si (__a, __b);
4025 __extension__ extern __inline int64x1_t
4026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4027 vshl_s64 (int64x1_t __a, int64x1_t __b)
4029 return (int64x1_t)__builtin_neon_vshlsdi (__a, __b);
4032 __extension__ extern __inline uint8x8_t
4033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4034 vshl_u8 (uint8x8_t __a, int8x8_t __b)
4036 return (uint8x8_t)__builtin_neon_vshluv8qi ((int8x8_t) __a, __b);
4039 __extension__ extern __inline uint16x4_t
4040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4041 vshl_u16 (uint16x4_t __a, int16x4_t __b)
4043 return (uint16x4_t)__builtin_neon_vshluv4hi ((int16x4_t) __a, __b);
4046 __extension__ extern __inline uint32x2_t
4047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4048 vshl_u32 (uint32x2_t __a, int32x2_t __b)
4050 return (uint32x2_t)__builtin_neon_vshluv2si ((int32x2_t) __a, __b);
4053 __extension__ extern __inline uint64x1_t
4054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4055 vshl_u64 (uint64x1_t __a, int64x1_t __b)
4057 return (uint64x1_t)__builtin_neon_vshludi ((int64x1_t) __a, __b);
4060 __extension__ extern __inline int8x16_t
4061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4062 vshlq_s8 (int8x16_t __a, int8x16_t __b)
4064 return (int8x16_t)__builtin_neon_vshlsv16qi (__a, __b);
4067 __extension__ extern __inline int16x8_t
4068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4069 vshlq_s16 (int16x8_t __a, int16x8_t __b)
4071 return (int16x8_t)__builtin_neon_vshlsv8hi (__a, __b);
4074 __extension__ extern __inline int32x4_t
4075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4076 vshlq_s32 (int32x4_t __a, int32x4_t __b)
4078 return (int32x4_t)__builtin_neon_vshlsv4si (__a, __b);
4081 __extension__ extern __inline int64x2_t
4082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4083 vshlq_s64 (int64x2_t __a, int64x2_t __b)
4085 return (int64x2_t)__builtin_neon_vshlsv2di (__a, __b);
4088 __extension__ extern __inline uint8x16_t
4089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4090 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
4092 return (uint8x16_t)__builtin_neon_vshluv16qi ((int8x16_t) __a, __b);
4095 __extension__ extern __inline uint16x8_t
4096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4097 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
4099 return (uint16x8_t)__builtin_neon_vshluv8hi ((int16x8_t) __a, __b);
4102 __extension__ extern __inline uint32x4_t
4103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4104 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
4106 return (uint32x4_t)__builtin_neon_vshluv4si ((int32x4_t) __a, __b);
4109 __extension__ extern __inline uint64x2_t
4110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4111 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
4113 return (uint64x2_t)__builtin_neon_vshluv2di ((int64x2_t) __a, __b);
4116 __extension__ extern __inline int8x8_t
4117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4118 vrshl_s8 (int8x8_t __a, int8x8_t __b)
4120 return (int8x8_t)__builtin_neon_vrshlsv8qi (__a, __b);
4123 __extension__ extern __inline int16x4_t
4124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4125 vrshl_s16 (int16x4_t __a, int16x4_t __b)
4127 return (int16x4_t)__builtin_neon_vrshlsv4hi (__a, __b);
4130 __extension__ extern __inline int32x2_t
4131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4132 vrshl_s32 (int32x2_t __a, int32x2_t __b)
4134 return (int32x2_t)__builtin_neon_vrshlsv2si (__a, __b);
4137 __extension__ extern __inline int64x1_t
4138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4139 vrshl_s64 (int64x1_t __a, int64x1_t __b)
4141 return (int64x1_t)__builtin_neon_vrshlsdi (__a, __b);
4144 __extension__ extern __inline uint8x8_t
4145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4146 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
4148 return (uint8x8_t)__builtin_neon_vrshluv8qi ((int8x8_t) __a, __b);
4151 __extension__ extern __inline uint16x4_t
4152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4153 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
4155 return (uint16x4_t)__builtin_neon_vrshluv4hi ((int16x4_t) __a, __b);
4158 __extension__ extern __inline uint32x2_t
4159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4160 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
4162 return (uint32x2_t)__builtin_neon_vrshluv2si ((int32x2_t) __a, __b);
4165 __extension__ extern __inline uint64x1_t
4166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4167 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
4169 return (uint64x1_t)__builtin_neon_vrshludi ((int64x1_t) __a, __b);
4172 __extension__ extern __inline int8x16_t
4173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4174 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
4176 return (int8x16_t)__builtin_neon_vrshlsv16qi (__a, __b);
4179 __extension__ extern __inline int16x8_t
4180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4181 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
4183 return (int16x8_t)__builtin_neon_vrshlsv8hi (__a, __b);
4186 __extension__ extern __inline int32x4_t
4187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4188 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
4190 return (int32x4_t)__builtin_neon_vrshlsv4si (__a, __b);
4193 __extension__ extern __inline int64x2_t
4194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4195 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
4197 return (int64x2_t)__builtin_neon_vrshlsv2di (__a, __b);
4200 __extension__ extern __inline uint8x16_t
4201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4202 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4204 return (uint8x16_t)__builtin_neon_vrshluv16qi ((int8x16_t) __a, __b);
4207 __extension__ extern __inline uint16x8_t
4208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4209 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4211 return (uint16x8_t)__builtin_neon_vrshluv8hi ((int16x8_t) __a, __b);
4214 __extension__ extern __inline uint32x4_t
4215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4216 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4218 return (uint32x4_t)__builtin_neon_vrshluv4si ((int32x4_t) __a, __b);
4221 __extension__ extern __inline uint64x2_t
4222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4223 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4225 return (uint64x2_t)__builtin_neon_vrshluv2di ((int64x2_t) __a, __b);
4228 __extension__ extern __inline int8x8_t
4229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4230 vqshl_s8 (int8x8_t __a, int8x8_t __b)
4232 return (int8x8_t)__builtin_neon_vqshlsv8qi (__a, __b);
4235 __extension__ extern __inline int16x4_t
4236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4237 vqshl_s16 (int16x4_t __a, int16x4_t __b)
4239 return (int16x4_t)__builtin_neon_vqshlsv4hi (__a, __b);
4242 __extension__ extern __inline int32x2_t
4243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4244 vqshl_s32 (int32x2_t __a, int32x2_t __b)
4246 return (int32x2_t)__builtin_neon_vqshlsv2si (__a, __b);
4249 __extension__ extern __inline int64x1_t
4250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4251 vqshl_s64 (int64x1_t __a, int64x1_t __b)
4253 return (int64x1_t)__builtin_neon_vqshlsdi (__a, __b);
4256 __extension__ extern __inline uint8x8_t
4257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4258 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
4260 return (uint8x8_t)__builtin_neon_vqshluv8qi ((int8x8_t) __a, __b);
4263 __extension__ extern __inline uint16x4_t
4264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4265 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
4267 return (uint16x4_t)__builtin_neon_vqshluv4hi ((int16x4_t) __a, __b);
4270 __extension__ extern __inline uint32x2_t
4271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4272 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
4274 return (uint32x2_t)__builtin_neon_vqshluv2si ((int32x2_t) __a, __b);
4277 __extension__ extern __inline uint64x1_t
4278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4279 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
4281 return (uint64x1_t)__builtin_neon_vqshludi ((int64x1_t) __a, __b);
4284 __extension__ extern __inline int8x16_t
4285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4286 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
4288 return (int8x16_t)__builtin_neon_vqshlsv16qi (__a, __b);
4291 __extension__ extern __inline int16x8_t
4292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4293 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
4295 return (int16x8_t)__builtin_neon_vqshlsv8hi (__a, __b);
4298 __extension__ extern __inline int32x4_t
4299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4300 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
4302 return (int32x4_t)__builtin_neon_vqshlsv4si (__a, __b);
4305 __extension__ extern __inline int64x2_t
4306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4307 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
4309 return (int64x2_t)__builtin_neon_vqshlsv2di (__a, __b);
4312 __extension__ extern __inline uint8x16_t
4313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4314 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
4316 return (uint8x16_t)__builtin_neon_vqshluv16qi ((int8x16_t) __a, __b);
4319 __extension__ extern __inline uint16x8_t
4320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4321 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
4323 return (uint16x8_t)__builtin_neon_vqshluv8hi ((int16x8_t) __a, __b);
4326 __extension__ extern __inline uint32x4_t
4327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4328 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
4330 return (uint32x4_t)__builtin_neon_vqshluv4si ((int32x4_t) __a, __b);
4333 __extension__ extern __inline uint64x2_t
4334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4335 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
4337 return (uint64x2_t)__builtin_neon_vqshluv2di ((int64x2_t) __a, __b);
4340 __extension__ extern __inline int8x8_t
4341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4342 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
4344 return (int8x8_t)__builtin_neon_vqrshlsv8qi (__a, __b);
4347 __extension__ extern __inline int16x4_t
4348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4349 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
4351 return (int16x4_t)__builtin_neon_vqrshlsv4hi (__a, __b);
4354 __extension__ extern __inline int32x2_t
4355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4356 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
4358 return (int32x2_t)__builtin_neon_vqrshlsv2si (__a, __b);
4361 __extension__ extern __inline int64x1_t
4362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4363 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
4365 return (int64x1_t)__builtin_neon_vqrshlsdi (__a, __b);
4368 __extension__ extern __inline uint8x8_t
4369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4370 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
4372 return (uint8x8_t)__builtin_neon_vqrshluv8qi ((int8x8_t) __a, __b);
4375 __extension__ extern __inline uint16x4_t
4376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4377 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
4379 return (uint16x4_t)__builtin_neon_vqrshluv4hi ((int16x4_t) __a, __b);
4382 __extension__ extern __inline uint32x2_t
4383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4384 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
4386 return (uint32x2_t)__builtin_neon_vqrshluv2si ((int32x2_t) __a, __b);
4389 __extension__ extern __inline uint64x1_t
4390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4391 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
4393 return (uint64x1_t)__builtin_neon_vqrshludi ((int64x1_t) __a, __b);
4396 __extension__ extern __inline int8x16_t
4397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4398 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
4400 return (int8x16_t)__builtin_neon_vqrshlsv16qi (__a, __b);
4403 __extension__ extern __inline int16x8_t
4404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4405 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
4407 return (int16x8_t)__builtin_neon_vqrshlsv8hi (__a, __b);
4410 __extension__ extern __inline int32x4_t
4411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4412 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
4414 return (int32x4_t)__builtin_neon_vqrshlsv4si (__a, __b);
4417 __extension__ extern __inline int64x2_t
4418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4419 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
4421 return (int64x2_t)__builtin_neon_vqrshlsv2di (__a, __b);
4424 __extension__ extern __inline uint8x16_t
4425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4426 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
4428 return (uint8x16_t)__builtin_neon_vqrshluv16qi ((int8x16_t) __a, __b);
4431 __extension__ extern __inline uint16x8_t
4432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4433 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
4435 return (uint16x8_t)__builtin_neon_vqrshluv8hi ((int16x8_t) __a, __b);
4438 __extension__ extern __inline uint32x4_t
4439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4440 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
4442 return (uint32x4_t)__builtin_neon_vqrshluv4si ((int32x4_t) __a, __b);
4445 __extension__ extern __inline uint64x2_t
4446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4447 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
4449 return (uint64x2_t)__builtin_neon_vqrshluv2di ((int64x2_t) __a, __b);
4452 __extension__ extern __inline int8x8_t
4453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4454 vshr_n_s8 (int8x8_t __a, const int __b)
4456 return (int8x8_t)__builtin_neon_vshrs_nv8qi (__a, __b);
4459 __extension__ extern __inline int16x4_t
4460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4461 vshr_n_s16 (int16x4_t __a, const int __b)
4463 return (int16x4_t)__builtin_neon_vshrs_nv4hi (__a, __b);
4466 __extension__ extern __inline int32x2_t
4467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4468 vshr_n_s32 (int32x2_t __a, const int __b)
4470 return (int32x2_t)__builtin_neon_vshrs_nv2si (__a, __b);
4473 __extension__ extern __inline int64x1_t
4474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4475 vshr_n_s64 (int64x1_t __a, const int __b)
4477 return (int64x1_t)__builtin_neon_vshrs_ndi (__a, __b);
4480 __extension__ extern __inline uint8x8_t
4481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4482 vshr_n_u8 (uint8x8_t __a, const int __b)
4484 return (uint8x8_t)__builtin_neon_vshru_nv8qi ((int8x8_t) __a, __b);
4487 __extension__ extern __inline uint16x4_t
4488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4489 vshr_n_u16 (uint16x4_t __a, const int __b)
4491 return (uint16x4_t)__builtin_neon_vshru_nv4hi ((int16x4_t) __a, __b);
4494 __extension__ extern __inline uint32x2_t
4495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4496 vshr_n_u32 (uint32x2_t __a, const int __b)
4498 return (uint32x2_t)__builtin_neon_vshru_nv2si ((int32x2_t) __a, __b);
4501 __extension__ extern __inline uint64x1_t
4502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4503 vshr_n_u64 (uint64x1_t __a, const int __b)
4505 return (uint64x1_t)__builtin_neon_vshru_ndi ((int64x1_t) __a, __b);
4508 __extension__ extern __inline int8x16_t
4509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4510 vshrq_n_s8 (int8x16_t __a, const int __b)
4512 return (int8x16_t)__builtin_neon_vshrs_nv16qi (__a, __b);
4515 __extension__ extern __inline int16x8_t
4516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4517 vshrq_n_s16 (int16x8_t __a, const int __b)
4519 return (int16x8_t)__builtin_neon_vshrs_nv8hi (__a, __b);
4522 __extension__ extern __inline int32x4_t
4523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4524 vshrq_n_s32 (int32x4_t __a, const int __b)
4526 return (int32x4_t)__builtin_neon_vshrs_nv4si (__a, __b);
4529 __extension__ extern __inline int64x2_t
4530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4531 vshrq_n_s64 (int64x2_t __a, const int __b)
4533 return (int64x2_t)__builtin_neon_vshrs_nv2di (__a, __b);
4536 __extension__ extern __inline uint8x16_t
4537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4538 vshrq_n_u8 (uint8x16_t __a, const int __b)
4540 return (uint8x16_t)__builtin_neon_vshru_nv16qi ((int8x16_t) __a, __b);
4543 __extension__ extern __inline uint16x8_t
4544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4545 vshrq_n_u16 (uint16x8_t __a, const int __b)
4547 return (uint16x8_t)__builtin_neon_vshru_nv8hi ((int16x8_t) __a, __b);
4550 __extension__ extern __inline uint32x4_t
4551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4552 vshrq_n_u32 (uint32x4_t __a, const int __b)
4554 return (uint32x4_t)__builtin_neon_vshru_nv4si ((int32x4_t) __a, __b);
4557 __extension__ extern __inline uint64x2_t
4558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4559 vshrq_n_u64 (uint64x2_t __a, const int __b)
4561 return (uint64x2_t)__builtin_neon_vshru_nv2di ((int64x2_t) __a, __b);
4564 __extension__ extern __inline int8x8_t
4565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4566 vrshr_n_s8 (int8x8_t __a, const int __b)
4568 return (int8x8_t)__builtin_neon_vrshrs_nv8qi (__a, __b);
4571 __extension__ extern __inline int16x4_t
4572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4573 vrshr_n_s16 (int16x4_t __a, const int __b)
4575 return (int16x4_t)__builtin_neon_vrshrs_nv4hi (__a, __b);
4578 __extension__ extern __inline int32x2_t
4579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4580 vrshr_n_s32 (int32x2_t __a, const int __b)
4582 return (int32x2_t)__builtin_neon_vrshrs_nv2si (__a, __b);
4585 __extension__ extern __inline int64x1_t
4586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4587 vrshr_n_s64 (int64x1_t __a, const int __b)
4589 return (int64x1_t)__builtin_neon_vrshrs_ndi (__a, __b);
4592 __extension__ extern __inline uint8x8_t
4593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4594 vrshr_n_u8 (uint8x8_t __a, const int __b)
4596 return (uint8x8_t)__builtin_neon_vrshru_nv8qi ((int8x8_t) __a, __b);
4599 __extension__ extern __inline uint16x4_t
4600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4601 vrshr_n_u16 (uint16x4_t __a, const int __b)
4603 return (uint16x4_t)__builtin_neon_vrshru_nv4hi ((int16x4_t) __a, __b);
4606 __extension__ extern __inline uint32x2_t
4607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4608 vrshr_n_u32 (uint32x2_t __a, const int __b)
4610 return (uint32x2_t)__builtin_neon_vrshru_nv2si ((int32x2_t) __a, __b);
4613 __extension__ extern __inline uint64x1_t
4614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4615 vrshr_n_u64 (uint64x1_t __a, const int __b)
4617 return (uint64x1_t)__builtin_neon_vrshru_ndi ((int64x1_t) __a, __b);
4620 __extension__ extern __inline int8x16_t
4621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4622 vrshrq_n_s8 (int8x16_t __a, const int __b)
4624 return (int8x16_t)__builtin_neon_vrshrs_nv16qi (__a, __b);
4627 __extension__ extern __inline int16x8_t
4628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4629 vrshrq_n_s16 (int16x8_t __a, const int __b)
4631 return (int16x8_t)__builtin_neon_vrshrs_nv8hi (__a, __b);
4634 __extension__ extern __inline int32x4_t
4635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4636 vrshrq_n_s32 (int32x4_t __a, const int __b)
4638 return (int32x4_t)__builtin_neon_vrshrs_nv4si (__a, __b);
4641 __extension__ extern __inline int64x2_t
4642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4643 vrshrq_n_s64 (int64x2_t __a, const int __b)
4645 return (int64x2_t)__builtin_neon_vrshrs_nv2di (__a, __b);
4648 __extension__ extern __inline uint8x16_t
4649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4650 vrshrq_n_u8 (uint8x16_t __a, const int __b)
4652 return (uint8x16_t)__builtin_neon_vrshru_nv16qi ((int8x16_t) __a, __b);
4655 __extension__ extern __inline uint16x8_t
4656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4657 vrshrq_n_u16 (uint16x8_t __a, const int __b)
4659 return (uint16x8_t)__builtin_neon_vrshru_nv8hi ((int16x8_t) __a, __b);
4662 __extension__ extern __inline uint32x4_t
4663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4664 vrshrq_n_u32 (uint32x4_t __a, const int __b)
4666 return (uint32x4_t)__builtin_neon_vrshru_nv4si ((int32x4_t) __a, __b);
4669 __extension__ extern __inline uint64x2_t
4670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4671 vrshrq_n_u64 (uint64x2_t __a, const int __b)
4673 return (uint64x2_t)__builtin_neon_vrshru_nv2di ((int64x2_t) __a, __b);
4676 __extension__ extern __inline int8x8_t
4677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4678 vshrn_n_s16 (int16x8_t __a, const int __b)
4680 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b);
4683 __extension__ extern __inline int16x4_t
4684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4685 vshrn_n_s32 (int32x4_t __a, const int __b)
4687 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b);
4690 __extension__ extern __inline int32x2_t
4691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4692 vshrn_n_s64 (int64x2_t __a, const int __b)
4694 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b);
4697 __extension__ extern __inline uint8x8_t
4698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4699 vshrn_n_u16 (uint16x8_t __a, const int __b)
4701 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b);
4704 __extension__ extern __inline uint16x4_t
4705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4706 vshrn_n_u32 (uint32x4_t __a, const int __b)
4708 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b);
4711 __extension__ extern __inline uint32x2_t
4712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4713 vshrn_n_u64 (uint64x2_t __a, const int __b)
4715 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b);
4718 __extension__ extern __inline int8x8_t
4719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4720 vrshrn_n_s16 (int16x8_t __a, const int __b)
4722 return (int8x8_t)__builtin_neon_vrshrn_nv8hi (__a, __b);
4725 __extension__ extern __inline int16x4_t
4726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4727 vrshrn_n_s32 (int32x4_t __a, const int __b)
4729 return (int16x4_t)__builtin_neon_vrshrn_nv4si (__a, __b);
4732 __extension__ extern __inline int32x2_t
4733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4734 vrshrn_n_s64 (int64x2_t __a, const int __b)
4736 return (int32x2_t)__builtin_neon_vrshrn_nv2di (__a, __b);
4739 __extension__ extern __inline uint8x8_t
4740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4741 vrshrn_n_u16 (uint16x8_t __a, const int __b)
4743 return (uint8x8_t)__builtin_neon_vrshrn_nv8hi ((int16x8_t) __a, __b);
4746 __extension__ extern __inline uint16x4_t
4747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4748 vrshrn_n_u32 (uint32x4_t __a, const int __b)
4750 return (uint16x4_t)__builtin_neon_vrshrn_nv4si ((int32x4_t) __a, __b);
4753 __extension__ extern __inline uint32x2_t
4754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4755 vrshrn_n_u64 (uint64x2_t __a, const int __b)
4757 return (uint32x2_t)__builtin_neon_vrshrn_nv2di ((int64x2_t) __a, __b);
4760 __extension__ extern __inline int8x8_t
4761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4762 vqshrn_n_s16 (int16x8_t __a, const int __b)
4764 return (int8x8_t)__builtin_neon_vqshrns_nv8hi (__a, __b);
4767 __extension__ extern __inline int16x4_t
4768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4769 vqshrn_n_s32 (int32x4_t __a, const int __b)
4771 return (int16x4_t)__builtin_neon_vqshrns_nv4si (__a, __b);
4774 __extension__ extern __inline int32x2_t
4775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4776 vqshrn_n_s64 (int64x2_t __a, const int __b)
4778 return (int32x2_t)__builtin_neon_vqshrns_nv2di (__a, __b);
4781 __extension__ extern __inline uint8x8_t
4782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4783 vqshrn_n_u16 (uint16x8_t __a, const int __b)
4785 return (uint8x8_t)__builtin_neon_vqshrnu_nv8hi ((int16x8_t) __a, __b);
4788 __extension__ extern __inline uint16x4_t
4789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4790 vqshrn_n_u32 (uint32x4_t __a, const int __b)
4792 return (uint16x4_t)__builtin_neon_vqshrnu_nv4si ((int32x4_t) __a, __b);
4795 __extension__ extern __inline uint32x2_t
4796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4797 vqshrn_n_u64 (uint64x2_t __a, const int __b)
4799 return (uint32x2_t)__builtin_neon_vqshrnu_nv2di ((int64x2_t) __a, __b);
4802 __extension__ extern __inline int8x8_t
4803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4804 vqrshrn_n_s16 (int16x8_t __a, const int __b)
4806 return (int8x8_t)__builtin_neon_vqrshrns_nv8hi (__a, __b);
4809 __extension__ extern __inline int16x4_t
4810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4811 vqrshrn_n_s32 (int32x4_t __a, const int __b)
4813 return (int16x4_t)__builtin_neon_vqrshrns_nv4si (__a, __b);
4816 __extension__ extern __inline int32x2_t
4817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4818 vqrshrn_n_s64 (int64x2_t __a, const int __b)
4820 return (int32x2_t)__builtin_neon_vqrshrns_nv2di (__a, __b);
4823 __extension__ extern __inline uint8x8_t
4824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4825 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
4827 return (uint8x8_t)__builtin_neon_vqrshrnu_nv8hi ((int16x8_t) __a, __b);
4830 __extension__ extern __inline uint16x4_t
4831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4832 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
4834 return (uint16x4_t)__builtin_neon_vqrshrnu_nv4si ((int32x4_t) __a, __b);
4837 __extension__ extern __inline uint32x2_t
4838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4839 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
4841 return (uint32x2_t)__builtin_neon_vqrshrnu_nv2di ((int64x2_t) __a, __b);
4844 __extension__ extern __inline uint8x8_t
4845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4846 vqshrun_n_s16 (int16x8_t __a, const int __b)
4848 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b);
4851 __extension__ extern __inline uint16x4_t
4852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4853 vqshrun_n_s32 (int32x4_t __a, const int __b)
4855 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b);
4858 __extension__ extern __inline uint32x2_t
4859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4860 vqshrun_n_s64 (int64x2_t __a, const int __b)
4862 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b);
4865 __extension__ extern __inline uint8x8_t
4866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4867 vqrshrun_n_s16 (int16x8_t __a, const int __b)
4869 return (uint8x8_t)__builtin_neon_vqrshrun_nv8hi (__a, __b);
4872 __extension__ extern __inline uint16x4_t
4873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4874 vqrshrun_n_s32 (int32x4_t __a, const int __b)
4876 return (uint16x4_t)__builtin_neon_vqrshrun_nv4si (__a, __b);
4879 __extension__ extern __inline uint32x2_t
4880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4881 vqrshrun_n_s64 (int64x2_t __a, const int __b)
4883 return (uint32x2_t)__builtin_neon_vqrshrun_nv2di (__a, __b);
4886 __extension__ extern __inline int8x8_t
4887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4888 vshl_n_s8 (int8x8_t __a, const int __b)
4890 return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b);
4893 __extension__ extern __inline int16x4_t
4894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4895 vshl_n_s16 (int16x4_t __a, const int __b)
4897 return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b);
4900 __extension__ extern __inline int32x2_t
4901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4902 vshl_n_s32 (int32x2_t __a, const int __b)
4904 return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b);
4907 __extension__ extern __inline int64x1_t
4908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4909 vshl_n_s64 (int64x1_t __a, const int __b)
4911 return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b);
4914 __extension__ extern __inline uint8x8_t
4915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4916 vshl_n_u8 (uint8x8_t __a, const int __b)
4918 return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b);
4921 __extension__ extern __inline uint16x4_t
4922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4923 vshl_n_u16 (uint16x4_t __a, const int __b)
4925 return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b);
4928 __extension__ extern __inline uint32x2_t
4929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4930 vshl_n_u32 (uint32x2_t __a, const int __b)
4932 return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b);
4935 __extension__ extern __inline uint64x1_t
4936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4937 vshl_n_u64 (uint64x1_t __a, const int __b)
4939 return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b);
4942 __extension__ extern __inline int8x16_t
4943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4944 vshlq_n_s8 (int8x16_t __a, const int __b)
4946 return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b);
4949 __extension__ extern __inline int16x8_t
4950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4951 vshlq_n_s16 (int16x8_t __a, const int __b)
4953 return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b);
4956 __extension__ extern __inline int32x4_t
4957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4958 vshlq_n_s32 (int32x4_t __a, const int __b)
4960 return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b);
4963 __extension__ extern __inline int64x2_t
4964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4965 vshlq_n_s64 (int64x2_t __a, const int __b)
4967 return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b);
4970 __extension__ extern __inline uint8x16_t
4971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4972 vshlq_n_u8 (uint8x16_t __a, const int __b)
4974 return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b);
4977 __extension__ extern __inline uint16x8_t
4978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4979 vshlq_n_u16 (uint16x8_t __a, const int __b)
4981 return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b);
4984 __extension__ extern __inline uint32x4_t
4985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4986 vshlq_n_u32 (uint32x4_t __a, const int __b)
4988 return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b);
4991 __extension__ extern __inline uint64x2_t
4992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
4993 vshlq_n_u64 (uint64x2_t __a, const int __b)
4995 return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b);
4998 __extension__ extern __inline int8x8_t
4999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5000 vqshl_n_s8 (int8x8_t __a, const int __b)
5002 return (int8x8_t)__builtin_neon_vqshl_s_nv8qi (__a, __b);
5005 __extension__ extern __inline int16x4_t
5006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5007 vqshl_n_s16 (int16x4_t __a, const int __b)
5009 return (int16x4_t)__builtin_neon_vqshl_s_nv4hi (__a, __b);
5012 __extension__ extern __inline int32x2_t
5013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5014 vqshl_n_s32 (int32x2_t __a, const int __b)
5016 return (int32x2_t)__builtin_neon_vqshl_s_nv2si (__a, __b);
5019 __extension__ extern __inline int64x1_t
5020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5021 vqshl_n_s64 (int64x1_t __a, const int __b)
5023 return (int64x1_t)__builtin_neon_vqshl_s_ndi (__a, __b);
5026 __extension__ extern __inline uint8x8_t
5027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5028 vqshl_n_u8 (uint8x8_t __a, const int __b)
5030 return (uint8x8_t)__builtin_neon_vqshl_u_nv8qi ((int8x8_t) __a, __b);
5033 __extension__ extern __inline uint16x4_t
5034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5035 vqshl_n_u16 (uint16x4_t __a, const int __b)
5037 return (uint16x4_t)__builtin_neon_vqshl_u_nv4hi ((int16x4_t) __a, __b);
5040 __extension__ extern __inline uint32x2_t
5041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5042 vqshl_n_u32 (uint32x2_t __a, const int __b)
5044 return (uint32x2_t)__builtin_neon_vqshl_u_nv2si ((int32x2_t) __a, __b);
5047 __extension__ extern __inline uint64x1_t
5048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5049 vqshl_n_u64 (uint64x1_t __a, const int __b)
5051 return (uint64x1_t)__builtin_neon_vqshl_u_ndi ((int64x1_t) __a, __b);
5054 __extension__ extern __inline int8x16_t
5055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5056 vqshlq_n_s8 (int8x16_t __a, const int __b)
5058 return (int8x16_t)__builtin_neon_vqshl_s_nv16qi (__a, __b);
5061 __extension__ extern __inline int16x8_t
5062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5063 vqshlq_n_s16 (int16x8_t __a, const int __b)
5065 return (int16x8_t)__builtin_neon_vqshl_s_nv8hi (__a, __b);
5068 __extension__ extern __inline int32x4_t
5069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5070 vqshlq_n_s32 (int32x4_t __a, const int __b)
5072 return (int32x4_t)__builtin_neon_vqshl_s_nv4si (__a, __b);
5075 __extension__ extern __inline int64x2_t
5076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5077 vqshlq_n_s64 (int64x2_t __a, const int __b)
5079 return (int64x2_t)__builtin_neon_vqshl_s_nv2di (__a, __b);
5082 __extension__ extern __inline uint8x16_t
5083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5084 vqshlq_n_u8 (uint8x16_t __a, const int __b)
5086 return (uint8x16_t)__builtin_neon_vqshl_u_nv16qi ((int8x16_t) __a, __b);
5089 __extension__ extern __inline uint16x8_t
5090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5091 vqshlq_n_u16 (uint16x8_t __a, const int __b)
5093 return (uint16x8_t)__builtin_neon_vqshl_u_nv8hi ((int16x8_t) __a, __b);
5096 __extension__ extern __inline uint32x4_t
5097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5098 vqshlq_n_u32 (uint32x4_t __a, const int __b)
5100 return (uint32x4_t)__builtin_neon_vqshl_u_nv4si ((int32x4_t) __a, __b);
5103 __extension__ extern __inline uint64x2_t
5104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5105 vqshlq_n_u64 (uint64x2_t __a, const int __b)
5107 return (uint64x2_t)__builtin_neon_vqshl_u_nv2di ((int64x2_t) __a, __b);
5110 __extension__ extern __inline uint8x8_t
5111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5112 vqshlu_n_s8 (int8x8_t __a, const int __b)
5114 return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b);
5117 __extension__ extern __inline uint16x4_t
5118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5119 vqshlu_n_s16 (int16x4_t __a, const int __b)
5121 return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b);
5124 __extension__ extern __inline uint32x2_t
5125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5126 vqshlu_n_s32 (int32x2_t __a, const int __b)
5128 return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b);
5131 __extension__ extern __inline uint64x1_t
5132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5133 vqshlu_n_s64 (int64x1_t __a, const int __b)
5135 return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b);
5138 __extension__ extern __inline uint8x16_t
5139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5140 vqshluq_n_s8 (int8x16_t __a, const int __b)
5142 return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b);
5145 __extension__ extern __inline uint16x8_t
5146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5147 vqshluq_n_s16 (int16x8_t __a, const int __b)
5149 return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b);
5152 __extension__ extern __inline uint32x4_t
5153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5154 vqshluq_n_s32 (int32x4_t __a, const int __b)
5156 return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b);
5159 __extension__ extern __inline uint64x2_t
5160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5161 vqshluq_n_s64 (int64x2_t __a, const int __b)
5163 return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b);
5166 __extension__ extern __inline int16x8_t
5167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5168 vshll_n_s8 (int8x8_t __a, const int __b)
5170 return (int16x8_t)__builtin_neon_vshlls_nv8qi (__a, __b);
5173 __extension__ extern __inline int32x4_t
5174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5175 vshll_n_s16 (int16x4_t __a, const int __b)
5177 return (int32x4_t)__builtin_neon_vshlls_nv4hi (__a, __b);
5180 __extension__ extern __inline int64x2_t
5181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5182 vshll_n_s32 (int32x2_t __a, const int __b)
5184 return (int64x2_t)__builtin_neon_vshlls_nv2si (__a, __b);
5187 __extension__ extern __inline uint16x8_t
5188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5189 vshll_n_u8 (uint8x8_t __a, const int __b)
5191 return (uint16x8_t)__builtin_neon_vshllu_nv8qi ((int8x8_t) __a, __b);
5194 __extension__ extern __inline uint32x4_t
5195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5196 vshll_n_u16 (uint16x4_t __a, const int __b)
5198 return (uint32x4_t)__builtin_neon_vshllu_nv4hi ((int16x4_t) __a, __b);
5201 __extension__ extern __inline uint64x2_t
5202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5203 vshll_n_u32 (uint32x2_t __a, const int __b)
5205 return (uint64x2_t)__builtin_neon_vshllu_nv2si ((int32x2_t) __a, __b);
5208 __extension__ extern __inline int8x8_t
5209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5210 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5212 return (int8x8_t)__builtin_neon_vsras_nv8qi (__a, __b, __c);
5215 __extension__ extern __inline int16x4_t
5216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5217 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5219 return (int16x4_t)__builtin_neon_vsras_nv4hi (__a, __b, __c);
5222 __extension__ extern __inline int32x2_t
5223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5224 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5226 return (int32x2_t)__builtin_neon_vsras_nv2si (__a, __b, __c);
5229 __extension__ extern __inline int64x1_t
5230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5231 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5233 return (int64x1_t)__builtin_neon_vsras_ndi (__a, __b, __c);
5236 __extension__ extern __inline uint8x8_t
5237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5238 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5240 return (uint8x8_t)__builtin_neon_vsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5243 __extension__ extern __inline uint16x4_t
5244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5245 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5247 return (uint16x4_t)__builtin_neon_vsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5250 __extension__ extern __inline uint32x2_t
5251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5252 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5254 return (uint32x2_t)__builtin_neon_vsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5257 __extension__ extern __inline uint64x1_t
5258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5259 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5261 return (uint64x1_t)__builtin_neon_vsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5264 __extension__ extern __inline int8x16_t
5265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5266 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5268 return (int8x16_t)__builtin_neon_vsras_nv16qi (__a, __b, __c);
5271 __extension__ extern __inline int16x8_t
5272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5273 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5275 return (int16x8_t)__builtin_neon_vsras_nv8hi (__a, __b, __c);
5278 __extension__ extern __inline int32x4_t
5279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5280 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5282 return (int32x4_t)__builtin_neon_vsras_nv4si (__a, __b, __c);
5285 __extension__ extern __inline int64x2_t
5286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5287 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5289 return (int64x2_t)__builtin_neon_vsras_nv2di (__a, __b, __c);
5292 __extension__ extern __inline uint8x16_t
5293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5294 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5296 return (uint8x16_t)__builtin_neon_vsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5299 __extension__ extern __inline uint16x8_t
5300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5301 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5303 return (uint16x8_t)__builtin_neon_vsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5306 __extension__ extern __inline uint32x4_t
5307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5308 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5310 return (uint32x4_t)__builtin_neon_vsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5313 __extension__ extern __inline uint64x2_t
5314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5315 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5317 return (uint64x2_t)__builtin_neon_vsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5320 __extension__ extern __inline int8x8_t
5321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5322 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5324 return (int8x8_t)__builtin_neon_vrsras_nv8qi (__a, __b, __c);
5327 __extension__ extern __inline int16x4_t
5328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5329 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5331 return (int16x4_t)__builtin_neon_vrsras_nv4hi (__a, __b, __c);
5334 __extension__ extern __inline int32x2_t
5335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5336 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5338 return (int32x2_t)__builtin_neon_vrsras_nv2si (__a, __b, __c);
5341 __extension__ extern __inline int64x1_t
5342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5343 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5345 return (int64x1_t)__builtin_neon_vrsras_ndi (__a, __b, __c);
5348 __extension__ extern __inline uint8x8_t
5349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5350 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5352 return (uint8x8_t)__builtin_neon_vrsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5355 __extension__ extern __inline uint16x4_t
5356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5357 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5359 return (uint16x4_t)__builtin_neon_vrsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5362 __extension__ extern __inline uint32x2_t
5363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5364 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5366 return (uint32x2_t)__builtin_neon_vrsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5369 __extension__ extern __inline uint64x1_t
5370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5371 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5373 return (uint64x1_t)__builtin_neon_vrsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5376 __extension__ extern __inline int8x16_t
5377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5378 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5380 return (int8x16_t)__builtin_neon_vrsras_nv16qi (__a, __b, __c);
5383 __extension__ extern __inline int16x8_t
5384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5385 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5387 return (int16x8_t)__builtin_neon_vrsras_nv8hi (__a, __b, __c);
5390 __extension__ extern __inline int32x4_t
5391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5392 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5394 return (int32x4_t)__builtin_neon_vrsras_nv4si (__a, __b, __c);
5397 __extension__ extern __inline int64x2_t
5398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5399 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5401 return (int64x2_t)__builtin_neon_vrsras_nv2di (__a, __b, __c);
5404 __extension__ extern __inline uint8x16_t
5405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5406 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5408 return (uint8x16_t)__builtin_neon_vrsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5411 __extension__ extern __inline uint16x8_t
5412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5413 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5415 return (uint16x8_t)__builtin_neon_vrsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5418 __extension__ extern __inline uint32x4_t
5419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5420 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5422 return (uint32x4_t)__builtin_neon_vrsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5425 __extension__ extern __inline uint64x2_t
5426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5427 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5429 return (uint64x2_t)__builtin_neon_vrsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5432 #pragma GCC push_options
5433 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5434 __extension__ extern __inline poly64x1_t
5435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5436 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5438 return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5441 #pragma GCC pop_options
5442 __extension__ extern __inline int8x8_t
5443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5444 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5446 return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
5449 __extension__ extern __inline int16x4_t
5450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5451 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5453 return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
5456 __extension__ extern __inline int32x2_t
5457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5458 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5460 return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
5463 __extension__ extern __inline int64x1_t
5464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5465 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5467 return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
5470 __extension__ extern __inline uint8x8_t
5471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5472 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5474 return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5477 __extension__ extern __inline uint16x4_t
5478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5479 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5481 return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5484 __extension__ extern __inline uint32x2_t
5485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5486 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5488 return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5491 __extension__ extern __inline uint64x1_t
5492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5493 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5495 return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5498 __extension__ extern __inline poly8x8_t
5499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5500 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5502 return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5505 __extension__ extern __inline poly16x4_t
5506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5507 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5509 return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5512 #pragma GCC push_options
5513 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5514 __extension__ extern __inline poly64x2_t
5515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5516 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5518 return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5521 #pragma GCC pop_options
5522 __extension__ extern __inline int8x16_t
5523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5524 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5526 return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
5529 __extension__ extern __inline int16x8_t
5530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5531 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5533 return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
5536 __extension__ extern __inline int32x4_t
5537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5538 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5540 return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
5543 __extension__ extern __inline int64x2_t
5544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5545 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5547 return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
5550 __extension__ extern __inline uint8x16_t
5551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5552 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5554 return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5557 __extension__ extern __inline uint16x8_t
5558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5559 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5561 return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5564 __extension__ extern __inline uint32x4_t
5565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5566 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5568 return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5571 __extension__ extern __inline uint64x2_t
5572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5573 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5575 return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5578 __extension__ extern __inline poly8x16_t
5579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5580 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5582 return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5585 __extension__ extern __inline poly16x8_t
5586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5587 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5589 return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5592 #pragma GCC push_options
5593 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5594 __extension__ extern __inline poly64x1_t
5595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5596 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
5598 return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5601 #pragma GCC pop_options
5602 __extension__ extern __inline int8x8_t
5603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5604 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
5606 return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
5609 __extension__ extern __inline int16x4_t
5610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5611 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
5613 return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
5616 __extension__ extern __inline int32x2_t
5617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5618 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
5620 return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
5623 __extension__ extern __inline int64x1_t
5624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5625 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
5627 return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
5630 __extension__ extern __inline uint8x8_t
5631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5632 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
5634 return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5637 __extension__ extern __inline uint16x4_t
5638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5639 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
5641 return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5644 __extension__ extern __inline uint32x2_t
5645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5646 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
5648 return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
5651 __extension__ extern __inline uint64x1_t
5652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5653 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
5655 return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
5658 __extension__ extern __inline poly8x8_t
5659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5660 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
5662 return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
5665 __extension__ extern __inline poly16x4_t
5666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5667 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
5669 return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
5672 #pragma GCC push_options
5673 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
5674 __extension__ extern __inline poly64x2_t
5675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5676 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
5678 return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5681 #pragma GCC pop_options
5682 __extension__ extern __inline int8x16_t
5683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5684 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
5686 return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
5689 __extension__ extern __inline int16x8_t
5690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5691 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
5693 return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
5696 __extension__ extern __inline int32x4_t
5697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5698 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
5700 return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
5703 __extension__ extern __inline int64x2_t
5704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5705 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
5707 return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
5710 __extension__ extern __inline uint8x16_t
5711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5712 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
5714 return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5717 __extension__ extern __inline uint16x8_t
5718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5719 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
5721 return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5724 __extension__ extern __inline uint32x4_t
5725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5726 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
5728 return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
5731 __extension__ extern __inline uint64x2_t
5732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5733 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
5735 return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
5738 __extension__ extern __inline poly8x16_t
5739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5740 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
5742 return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
5745 __extension__ extern __inline poly16x8_t
5746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5747 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
5749 return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
5752 __extension__ extern __inline int8x8_t
5753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5754 vneg_s8 (int8x8_t __a)
5756 return -__a;
5759 __extension__ extern __inline int16x4_t
5760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5761 vneg_s16 (int16x4_t __a)
5763 return -__a;
5766 __extension__ extern __inline int32x2_t
5767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5768 vneg_s32 (int32x2_t __a)
5770 return -__a;
5773 __extension__ extern __inline float32x2_t
5774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5775 vneg_f32 (float32x2_t __a)
5777 return -__a;
5780 __extension__ extern __inline int8x16_t
5781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5782 vnegq_s8 (int8x16_t __a)
5784 return -__a;
5787 __extension__ extern __inline int16x8_t
5788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5789 vnegq_s16 (int16x8_t __a)
5791 return -__a;
5794 __extension__ extern __inline int32x4_t
5795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5796 vnegq_s32 (int32x4_t __a)
5798 return -__a;
5801 __extension__ extern __inline float32x4_t
5802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5803 vnegq_f32 (float32x4_t __a)
5805 return -__a;
5808 __extension__ extern __inline int8x8_t
5809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5810 vqneg_s8 (int8x8_t __a)
5812 return (int8x8_t)__builtin_neon_vqnegv8qi (__a);
5815 __extension__ extern __inline int16x4_t
5816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5817 vqneg_s16 (int16x4_t __a)
5819 return (int16x4_t)__builtin_neon_vqnegv4hi (__a);
5822 __extension__ extern __inline int32x2_t
5823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5824 vqneg_s32 (int32x2_t __a)
5826 return (int32x2_t)__builtin_neon_vqnegv2si (__a);
5829 __extension__ extern __inline int8x16_t
5830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5831 vqnegq_s8 (int8x16_t __a)
5833 return (int8x16_t)__builtin_neon_vqnegv16qi (__a);
5836 __extension__ extern __inline int16x8_t
5837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5838 vqnegq_s16 (int16x8_t __a)
5840 return (int16x8_t)__builtin_neon_vqnegv8hi (__a);
5843 __extension__ extern __inline int32x4_t
5844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5845 vqnegq_s32 (int32x4_t __a)
5847 return (int32x4_t)__builtin_neon_vqnegv4si (__a);
5850 __extension__ extern __inline int8x8_t
5851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5852 vmvn_s8 (int8x8_t __a)
5854 return ~__a;
5857 __extension__ extern __inline int16x4_t
5858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5859 vmvn_s16 (int16x4_t __a)
5861 return ~__a;
5864 __extension__ extern __inline int32x2_t
5865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5866 vmvn_s32 (int32x2_t __a)
5868 return ~__a;
5871 __extension__ extern __inline uint8x8_t
5872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5873 vmvn_u8 (uint8x8_t __a)
5875 return ~__a;
5878 __extension__ extern __inline uint16x4_t
5879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5880 vmvn_u16 (uint16x4_t __a)
5882 return ~__a;
5885 __extension__ extern __inline uint32x2_t
5886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5887 vmvn_u32 (uint32x2_t __a)
5889 return ~__a;
5892 __extension__ extern __inline poly8x8_t
5893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5894 vmvn_p8 (poly8x8_t __a)
5896 return (poly8x8_t) ~((int8x8_t) __a);
5899 __extension__ extern __inline int8x16_t
5900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5901 vmvnq_s8 (int8x16_t __a)
5903 return ~__a;
5906 __extension__ extern __inline int16x8_t
5907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5908 vmvnq_s16 (int16x8_t __a)
5910 return ~__a;
5913 __extension__ extern __inline int32x4_t
5914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5915 vmvnq_s32 (int32x4_t __a)
5917 return ~__a;
5920 __extension__ extern __inline uint8x16_t
5921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5922 vmvnq_u8 (uint8x16_t __a)
5924 return ~__a;
5927 __extension__ extern __inline uint16x8_t
5928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5929 vmvnq_u16 (uint16x8_t __a)
5931 return ~__a;
5934 __extension__ extern __inline uint32x4_t
5935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5936 vmvnq_u32 (uint32x4_t __a)
5938 return ~__a;
5941 __extension__ extern __inline poly8x16_t
5942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5943 vmvnq_p8 (poly8x16_t __a)
5945 return (poly8x16_t) ~((int8x16_t) __a);
5948 __extension__ extern __inline int8x8_t
5949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5950 vcls_s8 (int8x8_t __a)
5952 return (int8x8_t)__builtin_neon_vclsv8qi (__a);
5955 __extension__ extern __inline int16x4_t
5956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5957 vcls_s16 (int16x4_t __a)
5959 return (int16x4_t)__builtin_neon_vclsv4hi (__a);
5962 __extension__ extern __inline int32x2_t
5963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5964 vcls_s32 (int32x2_t __a)
5966 return (int32x2_t)__builtin_neon_vclsv2si (__a);
5969 __extension__ extern __inline int8x16_t
5970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5971 vclsq_s8 (int8x16_t __a)
5973 return (int8x16_t)__builtin_neon_vclsv16qi (__a);
5976 __extension__ extern __inline int16x8_t
5977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5978 vclsq_s16 (int16x8_t __a)
5980 return (int16x8_t)__builtin_neon_vclsv8hi (__a);
5983 __extension__ extern __inline int32x4_t
5984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5985 vclsq_s32 (int32x4_t __a)
5987 return (int32x4_t)__builtin_neon_vclsv4si (__a);
5990 __extension__ extern __inline int8x8_t
5991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5992 vclz_s8 (int8x8_t __a)
5994 return (int8x8_t)__builtin_neon_vclzv8qi (__a);
5997 __extension__ extern __inline int16x4_t
5998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
5999 vclz_s16 (int16x4_t __a)
6001 return (int16x4_t)__builtin_neon_vclzv4hi (__a);
6004 __extension__ extern __inline int32x2_t
6005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6006 vclz_s32 (int32x2_t __a)
6008 return (int32x2_t)__builtin_neon_vclzv2si (__a);
6011 __extension__ extern __inline uint8x8_t
6012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6013 vclz_u8 (uint8x8_t __a)
6015 return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a);
6018 __extension__ extern __inline uint16x4_t
6019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6020 vclz_u16 (uint16x4_t __a)
6022 return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a);
6025 __extension__ extern __inline uint32x2_t
6026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6027 vclz_u32 (uint32x2_t __a)
6029 return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a);
6032 __extension__ extern __inline int8x16_t
6033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6034 vclzq_s8 (int8x16_t __a)
6036 return (int8x16_t)__builtin_neon_vclzv16qi (__a);
6039 __extension__ extern __inline int16x8_t
6040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6041 vclzq_s16 (int16x8_t __a)
6043 return (int16x8_t)__builtin_neon_vclzv8hi (__a);
6046 __extension__ extern __inline int32x4_t
6047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6048 vclzq_s32 (int32x4_t __a)
6050 return (int32x4_t)__builtin_neon_vclzv4si (__a);
6053 __extension__ extern __inline uint8x16_t
6054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6055 vclzq_u8 (uint8x16_t __a)
6057 return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a);
6060 __extension__ extern __inline uint16x8_t
6061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6062 vclzq_u16 (uint16x8_t __a)
6064 return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a);
6067 __extension__ extern __inline uint32x4_t
6068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6069 vclzq_u32 (uint32x4_t __a)
6071 return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a);
6074 __extension__ extern __inline int8x8_t
6075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6076 vcnt_s8 (int8x8_t __a)
6078 return (int8x8_t)__builtin_neon_vcntv8qi (__a);
6081 __extension__ extern __inline uint8x8_t
6082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6083 vcnt_u8 (uint8x8_t __a)
6085 return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6088 __extension__ extern __inline poly8x8_t
6089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6090 vcnt_p8 (poly8x8_t __a)
6092 return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
6095 __extension__ extern __inline int8x16_t
6096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6097 vcntq_s8 (int8x16_t __a)
6099 return (int8x16_t)__builtin_neon_vcntv16qi (__a);
6102 __extension__ extern __inline uint8x16_t
6103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6104 vcntq_u8 (uint8x16_t __a)
6106 return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6109 __extension__ extern __inline poly8x16_t
6110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6111 vcntq_p8 (poly8x16_t __a)
6113 return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
6116 __extension__ extern __inline float32x2_t
6117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6118 vrecpe_f32 (float32x2_t __a)
6120 return (float32x2_t)__builtin_neon_vrecpev2sf (__a);
6123 __extension__ extern __inline uint32x2_t
6124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6125 vrecpe_u32 (uint32x2_t __a)
6127 return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a);
6130 __extension__ extern __inline float32x4_t
6131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6132 vrecpeq_f32 (float32x4_t __a)
6134 return (float32x4_t)__builtin_neon_vrecpev4sf (__a);
6137 __extension__ extern __inline uint32x4_t
6138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6139 vrecpeq_u32 (uint32x4_t __a)
6141 return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a);
6144 __extension__ extern __inline float32x2_t
6145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6146 vrsqrte_f32 (float32x2_t __a)
6148 return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a);
6151 __extension__ extern __inline uint32x2_t
6152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6153 vrsqrte_u32 (uint32x2_t __a)
6155 return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a);
6158 __extension__ extern __inline float32x4_t
6159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6160 vrsqrteq_f32 (float32x4_t __a)
6162 return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a);
6165 __extension__ extern __inline uint32x4_t
6166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6167 vrsqrteq_u32 (uint32x4_t __a)
6169 return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a);
6172 __extension__ extern __inline int8_t
6173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6174 vget_lane_s8 (int8x8_t __a, const int __b)
6176 return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b);
6179 __extension__ extern __inline int16_t
6180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6181 vget_lane_s16 (int16x4_t __a, const int __b)
6183 return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b);
6186 __extension__ extern __inline int32_t
6187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6188 vget_lane_s32 (int32x2_t __a, const int __b)
6190 return (int32_t)__builtin_neon_vget_lanev2si (__a, __b);
6193 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6194 /* Functions cannot accept or return __FP16 types. Even if the function
6195 were marked always-inline so there were no call sites, the declaration
6196 would nonetheless raise an error. Hence, we must use a macro instead. */
6198 #define vget_lane_f16(__v, __idx) \
6199 __extension__ \
6200 ({ \
6201 float16x4_t __vec = (__v); \
6202 __builtin_arm_lane_check (4, __idx); \
6203 float16_t __res = __vec[__arm_lane(__vec, __idx)]; \
6204 __res; \
6206 #endif
6208 __extension__ extern __inline float32_t
6209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6210 vget_lane_f32 (float32x2_t __a, const int __b)
6212 return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b);
6215 __extension__ extern __inline uint8_t
6216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6217 vget_lane_u8 (uint8x8_t __a, const int __b)
6219 return (uint8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6222 __extension__ extern __inline uint16_t
6223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6224 vget_lane_u16 (uint16x4_t __a, const int __b)
6226 return (uint16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6229 __extension__ extern __inline uint32_t
6230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6231 vget_lane_u32 (uint32x2_t __a, const int __b)
6233 return (uint32_t)__builtin_neon_vget_laneuv2si ((int32x2_t) __a, __b);
6236 __extension__ extern __inline poly8_t
6237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6238 vget_lane_p8 (poly8x8_t __a, const int __b)
6240 return (poly8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
6243 __extension__ extern __inline poly16_t
6244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6245 vget_lane_p16 (poly16x4_t __a, const int __b)
6247 return (poly16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
6250 __extension__ extern __inline int64_t
6251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6252 vget_lane_s64 (int64x1_t __a, const int __b)
6254 return (int64_t)__builtin_neon_vget_lanedi (__a, __b);
6257 #pragma GCC push_options
6258 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6259 __extension__ extern __inline poly64_t
6260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6261 vget_lane_p64 (poly64x1_t __a, const int __b)
6263 return (poly64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6266 #pragma GCC pop_options
6267 __extension__ extern __inline uint64_t
6268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6269 vget_lane_u64 (uint64x1_t __a, const int __b)
6271 return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
6274 __extension__ extern __inline int8_t
6275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6276 vgetq_lane_s8 (int8x16_t __a, const int __b)
6278 return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b);
6281 __extension__ extern __inline int16_t
6282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6283 vgetq_lane_s16 (int16x8_t __a, const int __b)
6285 return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b);
6288 __extension__ extern __inline int32_t
6289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6290 vgetq_lane_s32 (int32x4_t __a, const int __b)
6292 return (int32_t)__builtin_neon_vget_lanev4si (__a, __b);
6295 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6296 #define vgetq_lane_f16(__v, __idx) \
6297 __extension__ \
6298 ({ \
6299 float16x8_t __vec = (__v); \
6300 __builtin_arm_lane_check (8, __idx); \
6301 float16_t __res = __vec[__arm_laneq(__vec, __idx)]; \
6302 __res; \
6304 #endif
6306 __extension__ extern __inline float32_t
6307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6308 vgetq_lane_f32 (float32x4_t __a, const int __b)
6310 return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b);
6313 __extension__ extern __inline uint8_t
6314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6315 vgetq_lane_u8 (uint8x16_t __a, const int __b)
6317 return (uint8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6320 __extension__ extern __inline uint16_t
6321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6322 vgetq_lane_u16 (uint16x8_t __a, const int __b)
6324 return (uint16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6327 __extension__ extern __inline uint32_t
6328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6329 vgetq_lane_u32 (uint32x4_t __a, const int __b)
6331 return (uint32_t)__builtin_neon_vget_laneuv4si ((int32x4_t) __a, __b);
6334 __extension__ extern __inline poly8_t
6335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6336 vgetq_lane_p8 (poly8x16_t __a, const int __b)
6338 return (poly8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
6341 __extension__ extern __inline poly16_t
6342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6343 vgetq_lane_p16 (poly16x8_t __a, const int __b)
6345 return (poly16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
6348 __extension__ extern __inline int64_t
6349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6350 vgetq_lane_s64 (int64x2_t __a, const int __b)
6352 return (int64_t)__builtin_neon_vget_lanev2di (__a, __b);
6355 #pragma GCC push_options
6356 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6357 __extension__ extern __inline poly64_t
6358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6359 vgetq_lane_p64 (poly64x2_t __a, const int __b)
6361 return (poly64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6364 #pragma GCC pop_options
6365 __extension__ extern __inline uint64_t
6366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6367 vgetq_lane_u64 (uint64x2_t __a, const int __b)
6369 return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
6372 __extension__ extern __inline int8x8_t
6373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6374 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
6376 return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
6379 __extension__ extern __inline int16x4_t
6380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6381 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
6383 return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
6386 __extension__ extern __inline int32x2_t
6387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6388 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
6390 return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
6393 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6394 #define vset_lane_f16(__e, __v, __idx) \
6395 __extension__ \
6396 ({ \
6397 float16_t __elem = (__e); \
6398 float16x4_t __vec = (__v); \
6399 __builtin_arm_lane_check (4, __idx); \
6400 __vec[__arm_lane (__vec, __idx)] = __elem; \
6401 __vec; \
6403 #endif
6405 __extension__ extern __inline float32x2_t
6406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6407 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
6409 return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
6412 __extension__ extern __inline uint8x8_t
6413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6414 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
6416 return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6419 __extension__ extern __inline uint16x4_t
6420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6421 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
6423 return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6426 __extension__ extern __inline uint32x2_t
6427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6428 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
6430 return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
6433 __extension__ extern __inline poly8x8_t
6434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6435 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
6437 return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
6440 __extension__ extern __inline poly16x4_t
6441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6442 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
6444 return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
6447 __extension__ extern __inline int64x1_t
6448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6449 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
6451 return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
6454 __extension__ extern __inline uint64x1_t
6455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6456 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
6458 return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6461 #pragma GCC push_options
6462 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6463 __extension__ extern __inline poly64x1_t
6464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6465 vset_lane_p64 (poly64_t __a, poly64x1_t __b, const int __c)
6467 return (poly64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
6470 #pragma GCC pop_options
6471 __extension__ extern __inline int8x16_t
6472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6473 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
6475 return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
6478 __extension__ extern __inline int16x8_t
6479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6480 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
6482 return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
6485 __extension__ extern __inline int32x4_t
6486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6487 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
6489 return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
6492 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6493 #define vsetq_lane_f16(__e, __v, __idx) \
6494 __extension__ \
6495 ({ \
6496 float16_t __elem = (__e); \
6497 float16x8_t __vec = (__v); \
6498 __builtin_arm_lane_check (8, __idx); \
6499 __vec[__arm_laneq (__vec, __idx)] = __elem; \
6500 __vec; \
6502 #endif
6504 __extension__ extern __inline float32x4_t
6505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6506 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
6508 return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
6511 __extension__ extern __inline uint8x16_t
6512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6513 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
6515 return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6518 __extension__ extern __inline uint16x8_t
6519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6520 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
6522 return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6525 __extension__ extern __inline uint32x4_t
6526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6527 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
6529 return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
6532 __extension__ extern __inline poly8x16_t
6533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6534 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
6536 return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
6539 __extension__ extern __inline poly16x8_t
6540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6541 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
6543 return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
6546 __extension__ extern __inline int64x2_t
6547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6548 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
6550 return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
6553 __extension__ extern __inline uint64x2_t
6554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6555 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
6557 return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6560 #pragma GCC push_options
6561 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6562 __extension__ extern __inline poly64x2_t
6563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6564 vsetq_lane_p64 (poly64_t __a, poly64x2_t __b, const int __c)
6566 return (poly64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
6569 __extension__ extern __inline poly64x1_t
6570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6571 vcreate_p64 (uint64_t __a)
6573 return (poly64x1_t) __a;
6576 #pragma GCC pop_options
6577 __extension__ extern __inline int8x8_t
6578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6579 vcreate_s8 (uint64_t __a)
6581 return (int8x8_t) __a;
6584 __extension__ extern __inline int16x4_t
6585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6586 vcreate_s16 (uint64_t __a)
6588 return (int16x4_t) __a;
6591 __extension__ extern __inline int32x2_t
6592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6593 vcreate_s32 (uint64_t __a)
6595 return (int32x2_t) __a;
6598 __extension__ extern __inline int64x1_t
6599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6600 vcreate_s64 (uint64_t __a)
6602 return (int64x1_t) {__a};
6605 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
6606 __extension__ extern __inline float16x4_t
6607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6608 vcreate_f16 (uint64_t __a)
6610 return (float16x4_t) __a;
6612 #endif
6614 __extension__ extern __inline float32x2_t
6615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6616 vcreate_f32 (uint64_t __a)
6618 return (float32x2_t) __a;
6621 __extension__ extern __inline uint8x8_t
6622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6623 vcreate_u8 (uint64_t __a)
6625 return (uint8x8_t) __a;
6628 __extension__ extern __inline uint16x4_t
6629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6630 vcreate_u16 (uint64_t __a)
6632 return (uint16x4_t) __a;
6635 __extension__ extern __inline uint32x2_t
6636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6637 vcreate_u32 (uint64_t __a)
6639 return (uint32x2_t) __a;
6642 __extension__ extern __inline uint64x1_t
6643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6644 vcreate_u64 (uint64_t __a)
6646 return (uint64x1_t) {__a};
6649 __extension__ extern __inline poly8x8_t
6650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6651 vcreate_p8 (uint64_t __a)
6653 return (poly8x8_t) __a;
6656 __extension__ extern __inline poly16x4_t
6657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6658 vcreate_p16 (uint64_t __a)
6660 return (poly16x4_t) __a;
6663 __extension__ extern __inline int8x8_t
6664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6665 vdup_n_s8 (int8_t __a)
6667 return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
6670 __extension__ extern __inline int16x4_t
6671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6672 vdup_n_s16 (int16_t __a)
6674 return (int16x4_t) {__a, __a, __a, __a};
6677 __extension__ extern __inline int32x2_t
6678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6679 vdup_n_s32 (int32_t __a)
6681 return (int32x2_t) {__a, __a};
6684 __extension__ extern __inline float32x2_t
6685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6686 vdup_n_f32 (float32_t __a)
6688 return (float32x2_t) {__a, __a};
6691 __extension__ extern __inline uint8x8_t
6692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6693 vdup_n_u8 (uint8_t __a)
6695 return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
6698 __extension__ extern __inline uint16x4_t
6699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6700 vdup_n_u16 (uint16_t __a)
6702 return (uint16x4_t) {__a, __a, __a, __a};
6705 __extension__ extern __inline uint32x2_t
6706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6707 vdup_n_u32 (uint32_t __a)
6709 return (uint32x2_t) {__a, __a};
6712 __extension__ extern __inline poly8x8_t
6713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6714 vdup_n_p8 (poly8_t __a)
6716 return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
6719 __extension__ extern __inline poly16x4_t
6720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6721 vdup_n_p16 (poly16_t __a)
6723 return (poly16x4_t) {__a, __a, __a, __a};
6726 #pragma GCC push_options
6727 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6728 __extension__ extern __inline poly64x1_t
6729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6730 vdup_n_p64 (poly64_t __a)
6732 return (poly64x1_t) {__a};
6735 #pragma GCC pop_options
6736 __extension__ extern __inline int64x1_t
6737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6738 vdup_n_s64 (int64_t __a)
6740 return (int64x1_t) {__a};
6743 __extension__ extern __inline uint64x1_t
6744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6745 vdup_n_u64 (uint64_t __a)
6747 return (uint64x1_t) {__a};
6750 #pragma GCC push_options
6751 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
6752 __extension__ extern __inline poly64x2_t
6753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6754 vdupq_n_p64 (poly64_t __a)
6756 return (poly64x2_t) {__a, __a};
6759 #pragma GCC pop_options
6760 __extension__ extern __inline int8x16_t
6761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6762 vdupq_n_s8 (int8_t __a)
6764 return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
6765 __a, __a, __a, __a, __a, __a, __a, __a};
6768 __extension__ extern __inline int16x8_t
6769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6770 vdupq_n_s16 (int16_t __a)
6772 return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
6775 __extension__ extern __inline int32x4_t
6776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6777 vdupq_n_s32 (int32_t __a)
6779 return (int32x4_t) {__a, __a, __a, __a};
6782 __extension__ extern __inline float32x4_t
6783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6784 vdupq_n_f32 (float32_t __a)
6786 return (float32x4_t) {__a, __a, __a, __a};
6789 __extension__ extern __inline uint8x16_t
6790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6791 vdupq_n_u8 (uint8_t __a)
6793 return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
6794 __a, __a, __a, __a, __a, __a, __a, __a};
6797 __extension__ extern __inline uint16x8_t
6798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6799 vdupq_n_u16 (uint16_t __a)
6801 return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
6804 __extension__ extern __inline uint32x4_t
6805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6806 vdupq_n_u32 (uint32_t __a)
6808 return (uint32x4_t) {__a, __a, __a, __a};
6811 __extension__ extern __inline poly8x16_t
6812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6813 vdupq_n_p8 (poly8_t __a)
6815 return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
6816 __a, __a, __a, __a, __a, __a, __a, __a};
6819 __extension__ extern __inline poly16x8_t
6820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6821 vdupq_n_p16 (poly16_t __a)
6823 return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
6826 __extension__ extern __inline int64x2_t
6827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6828 vdupq_n_s64 (int64_t __a)
6830 return (int64x2_t) {__a, __a};
6833 __extension__ extern __inline uint64x2_t
6834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6835 vdupq_n_u64 (uint64_t __a)
6837 return (uint64x2_t) {__a, __a};
6840 __extension__ extern __inline int8x8_t
6841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6842 vmov_n_s8 (int8_t __a)
6844 return vdup_n_s8 (__a);
6847 __extension__ extern __inline int16x4_t
6848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6849 vmov_n_s16 (int16_t __a)
6851 return vdup_n_s16 (__a);
6854 __extension__ extern __inline int32x2_t
6855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6856 vmov_n_s32 (int32_t __a)
6858 return vdup_n_s32 (__a);
6861 __extension__ extern __inline float32x2_t
6862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6863 vmov_n_f32 (float32_t __a)
6865 return vdup_n_f32 (__a);
6868 __extension__ extern __inline uint8x8_t
6869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6870 vmov_n_u8 (uint8_t __a)
6872 return vdup_n_u8 (__a);
6875 __extension__ extern __inline uint16x4_t
6876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6877 vmov_n_u16 (uint16_t __a)
6879 return vdup_n_u16 (__a);
6882 __extension__ extern __inline uint32x2_t
6883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6884 vmov_n_u32 (uint32_t __a)
6886 return vdup_n_u32 (__a);
6889 __extension__ extern __inline poly8x8_t
6890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6891 vmov_n_p8 (poly8_t __a)
6893 return vdup_n_p8 (__a);
6896 __extension__ extern __inline poly16x4_t
6897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6898 vmov_n_p16 (poly16_t __a)
6900 return vdup_n_p16 (__a);
6903 __extension__ extern __inline int64x1_t
6904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6905 vmov_n_s64 (int64_t __a)
6907 return vdup_n_s64 (__a);
6910 __extension__ extern __inline uint64x1_t
6911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6912 vmov_n_u64 (uint64_t __a)
6914 return vdup_n_u64 (__a);
6917 __extension__ extern __inline int8x16_t
6918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6919 vmovq_n_s8 (int8_t __a)
6921 return vdupq_n_s8 (__a);
6924 __extension__ extern __inline int16x8_t
6925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6926 vmovq_n_s16 (int16_t __a)
6928 return vdupq_n_s16 (__a);
6931 __extension__ extern __inline int32x4_t
6932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6933 vmovq_n_s32 (int32_t __a)
6935 return vdupq_n_s32 (__a);
6938 __extension__ extern __inline float32x4_t
6939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6940 vmovq_n_f32 (float32_t __a)
6942 return vdupq_n_f32 (__a);
6945 __extension__ extern __inline uint8x16_t
6946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6947 vmovq_n_u8 (uint8_t __a)
6949 return vdupq_n_u8 (__a);
6952 __extension__ extern __inline uint16x8_t
6953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6954 vmovq_n_u16 (uint16_t __a)
6956 return vdupq_n_u16 (__a);
6959 __extension__ extern __inline uint32x4_t
6960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6961 vmovq_n_u32 (uint32_t __a)
6963 return vdupq_n_u32 (__a);
6966 __extension__ extern __inline poly8x16_t
6967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6968 vmovq_n_p8 (poly8_t __a)
6970 return vdupq_n_p8 (__a);
6973 __extension__ extern __inline poly16x8_t
6974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6975 vmovq_n_p16 (poly16_t __a)
6977 return vdupq_n_p16 (__a);
6980 __extension__ extern __inline int64x2_t
6981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6982 vmovq_n_s64 (int64_t __a)
6984 return vdupq_n_s64 (__a);
6987 __extension__ extern __inline uint64x2_t
6988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6989 vmovq_n_u64 (uint64_t __a)
6991 return vdupq_n_u64 (__a);
6994 __extension__ extern __inline int8x8_t
6995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
6996 vdup_lane_s8 (int8x8_t __a, const int __b)
6998 return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
7001 __extension__ extern __inline int16x4_t
7002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7003 vdup_lane_s16 (int16x4_t __a, const int __b)
7005 return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
7008 __extension__ extern __inline int32x2_t
7009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7010 vdup_lane_s32 (int32x2_t __a, const int __b)
7012 return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
7015 __extension__ extern __inline float32x2_t
7016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7017 vdup_lane_f32 (float32x2_t __a, const int __b)
7019 return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
7022 __extension__ extern __inline uint8x8_t
7023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7024 vdup_lane_u8 (uint8x8_t __a, const int __b)
7026 return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
7029 __extension__ extern __inline uint16x4_t
7030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7031 vdup_lane_u16 (uint16x4_t __a, const int __b)
7033 return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
7036 __extension__ extern __inline uint32x2_t
7037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7038 vdup_lane_u32 (uint32x2_t __a, const int __b)
7040 return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
7043 __extension__ extern __inline poly8x8_t
7044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7045 vdup_lane_p8 (poly8x8_t __a, const int __b)
7047 return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
7050 __extension__ extern __inline poly16x4_t
7051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7052 vdup_lane_p16 (poly16x4_t __a, const int __b)
7054 return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
7057 #pragma GCC push_options
7058 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7059 __extension__ extern __inline poly64x1_t
7060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7061 vdup_lane_p64 (poly64x1_t __a, const int __b)
7063 return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7066 #pragma GCC pop_options
7067 __extension__ extern __inline int64x1_t
7068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7069 vdup_lane_s64 (int64x1_t __a, const int __b)
7071 return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
7074 __extension__ extern __inline uint64x1_t
7075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7076 vdup_lane_u64 (uint64x1_t __a, const int __b)
7078 return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
7081 __extension__ extern __inline int8x16_t
7082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7083 vdupq_lane_s8 (int8x8_t __a, const int __b)
7085 return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
7088 __extension__ extern __inline int16x8_t
7089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7090 vdupq_lane_s16 (int16x4_t __a, const int __b)
7092 return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
7095 __extension__ extern __inline int32x4_t
7096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7097 vdupq_lane_s32 (int32x2_t __a, const int __b)
7099 return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
7102 __extension__ extern __inline float32x4_t
7103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7104 vdupq_lane_f32 (float32x2_t __a, const int __b)
7106 return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
7109 __extension__ extern __inline uint8x16_t
7110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7111 vdupq_lane_u8 (uint8x8_t __a, const int __b)
7113 return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7116 __extension__ extern __inline uint16x8_t
7117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7118 vdupq_lane_u16 (uint16x4_t __a, const int __b)
7120 return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7123 __extension__ extern __inline uint32x4_t
7124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7125 vdupq_lane_u32 (uint32x2_t __a, const int __b)
7127 return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
7130 __extension__ extern __inline poly8x16_t
7131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7132 vdupq_lane_p8 (poly8x8_t __a, const int __b)
7134 return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
7137 __extension__ extern __inline poly16x8_t
7138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7139 vdupq_lane_p16 (poly16x4_t __a, const int __b)
7141 return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
7144 #pragma GCC push_options
7145 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7146 __extension__ extern __inline poly64x2_t
7147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7148 vdupq_lane_p64 (poly64x1_t __a, const int __b)
7150 return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7153 #pragma GCC pop_options
7154 __extension__ extern __inline int64x2_t
7155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7156 vdupq_lane_s64 (int64x1_t __a, const int __b)
7158 return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
7161 __extension__ extern __inline uint64x2_t
7162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7163 vdupq_lane_u64 (uint64x1_t __a, const int __b)
7165 return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
7168 #pragma GCC push_options
7169 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7170 __extension__ extern __inline poly64x2_t
7171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7172 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
7174 return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b);
7177 #pragma GCC pop_options
7178 __extension__ extern __inline int8x16_t
7179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7180 vcombine_s8 (int8x8_t __a, int8x8_t __b)
7182 return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
7185 __extension__ extern __inline int16x8_t
7186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7187 vcombine_s16 (int16x4_t __a, int16x4_t __b)
7189 return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
7192 __extension__ extern __inline int32x4_t
7193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7194 vcombine_s32 (int32x2_t __a, int32x2_t __b)
7196 return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
7199 __extension__ extern __inline int64x2_t
7200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7201 vcombine_s64 (int64x1_t __a, int64x1_t __b)
7203 return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
7206 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7207 __extension__ extern __inline float16x8_t
7208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7209 vcombine_f16 (float16x4_t __a, float16x4_t __b)
7211 return __builtin_neon_vcombinev4hf (__a, __b);
7213 #endif
7215 __extension__ extern __inline float32x4_t
7216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7217 vcombine_f32 (float32x2_t __a, float32x2_t __b)
7219 return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
7222 __extension__ extern __inline uint8x16_t
7223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7224 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
7226 return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7229 __extension__ extern __inline uint16x8_t
7230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7231 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
7233 return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7236 __extension__ extern __inline uint32x4_t
7237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7238 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
7240 return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
7243 __extension__ extern __inline uint64x2_t
7244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7245 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
7247 return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
7250 __extension__ extern __inline poly8x16_t
7251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7252 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
7254 return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
7257 __extension__ extern __inline poly16x8_t
7258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7259 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
7261 return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
7264 #pragma GCC push_options
7265 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7266 __extension__ extern __inline poly64x1_t
7267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7268 vget_high_p64 (poly64x2_t __a)
7270 return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7273 #pragma GCC pop_options
7274 __extension__ extern __inline int8x8_t
7275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7276 vget_high_s8 (int8x16_t __a)
7278 return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
7281 __extension__ extern __inline int16x4_t
7282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7283 vget_high_s16 (int16x8_t __a)
7285 return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
7288 __extension__ extern __inline int32x2_t
7289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7290 vget_high_s32 (int32x4_t __a)
7292 return (int32x2_t)__builtin_neon_vget_highv4si (__a);
7295 __extension__ extern __inline int64x1_t
7296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7297 vget_high_s64 (int64x2_t __a)
7299 return (int64x1_t)__builtin_neon_vget_highv2di (__a);
7302 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7303 __extension__ extern __inline float16x4_t
7304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7305 vget_high_f16 (float16x8_t __a)
7307 return __builtin_neon_vget_highv8hf (__a);
7309 #endif
7311 __extension__ extern __inline float32x2_t
7312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7313 vget_high_f32 (float32x4_t __a)
7315 return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
7318 __extension__ extern __inline uint8x8_t
7319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7320 vget_high_u8 (uint8x16_t __a)
7322 return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7325 __extension__ extern __inline uint16x4_t
7326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7327 vget_high_u16 (uint16x8_t __a)
7329 return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7332 __extension__ extern __inline uint32x2_t
7333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7334 vget_high_u32 (uint32x4_t __a)
7336 return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
7339 __extension__ extern __inline uint64x1_t
7340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7341 vget_high_u64 (uint64x2_t __a)
7343 return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
7346 __extension__ extern __inline poly8x8_t
7347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7348 vget_high_p8 (poly8x16_t __a)
7350 return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
7353 __extension__ extern __inline poly16x4_t
7354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7355 vget_high_p16 (poly16x8_t __a)
7357 return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
7360 __extension__ extern __inline int8x8_t
7361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7362 vget_low_s8 (int8x16_t __a)
7364 return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
7367 __extension__ extern __inline int16x4_t
7368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7369 vget_low_s16 (int16x8_t __a)
7371 return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
7374 __extension__ extern __inline int32x2_t
7375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7376 vget_low_s32 (int32x4_t __a)
7378 return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
7381 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7382 __extension__ extern __inline float16x4_t
7383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7384 vget_low_f16 (float16x8_t __a)
7386 return __builtin_neon_vget_lowv8hf (__a);
7388 #endif
7390 __extension__ extern __inline float32x2_t
7391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7392 vget_low_f32 (float32x4_t __a)
7394 return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
7397 __extension__ extern __inline uint8x8_t
7398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7399 vget_low_u8 (uint8x16_t __a)
7401 return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7404 __extension__ extern __inline uint16x4_t
7405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7406 vget_low_u16 (uint16x8_t __a)
7408 return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7411 __extension__ extern __inline uint32x2_t
7412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7413 vget_low_u32 (uint32x4_t __a)
7415 return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
7418 __extension__ extern __inline poly8x8_t
7419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7420 vget_low_p8 (poly8x16_t __a)
7422 return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
7425 __extension__ extern __inline poly16x4_t
7426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7427 vget_low_p16 (poly16x8_t __a)
7429 return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
7432 #pragma GCC push_options
7433 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
7434 __extension__ extern __inline poly64x1_t
7435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7436 vget_low_p64 (poly64x2_t __a)
7438 return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7441 #pragma GCC pop_options
7442 __extension__ extern __inline int64x1_t
7443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7444 vget_low_s64 (int64x2_t __a)
7446 return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
7449 __extension__ extern __inline uint64x1_t
7450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7451 vget_low_u64 (uint64x2_t __a)
7453 return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
7456 __extension__ extern __inline int32x2_t
7457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7458 vcvt_s32_f32 (float32x2_t __a)
7460 return (int32x2_t)__builtin_neon_vcvtsv2sf (__a);
7463 __extension__ extern __inline float32x2_t
7464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7465 vcvt_f32_s32 (int32x2_t __a)
7467 return (float32x2_t)__builtin_neon_vcvtsv2si (__a);
7470 __extension__ extern __inline float32x2_t
7471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7472 vcvt_f32_u32 (uint32x2_t __a)
7474 return (float32x2_t)__builtin_neon_vcvtuv2si ((int32x2_t) __a);
7477 __extension__ extern __inline uint32x2_t
7478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7479 vcvt_u32_f32 (float32x2_t __a)
7481 return (uint32x2_t)__builtin_neon_vcvtuv2sf (__a);
7484 __extension__ extern __inline int32x4_t
7485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7486 vcvtq_s32_f32 (float32x4_t __a)
7488 return (int32x4_t)__builtin_neon_vcvtsv4sf (__a);
7491 __extension__ extern __inline float32x4_t
7492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7493 vcvtq_f32_s32 (int32x4_t __a)
7495 return (float32x4_t)__builtin_neon_vcvtsv4si (__a);
7498 __extension__ extern __inline float32x4_t
7499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7500 vcvtq_f32_u32 (uint32x4_t __a)
7502 return (float32x4_t)__builtin_neon_vcvtuv4si ((int32x4_t) __a);
7505 __extension__ extern __inline uint32x4_t
7506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7507 vcvtq_u32_f32 (float32x4_t __a)
7509 return (uint32x4_t)__builtin_neon_vcvtuv4sf (__a);
7512 #pragma GCC push_options
7513 #pragma GCC target ("fpu=neon-fp16")
7514 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7515 __extension__ extern __inline float16x4_t
7516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7517 vcvt_f16_f32 (float32x4_t __a)
7519 return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a);
7521 #endif
7523 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
7524 __extension__ extern __inline float32x4_t
7525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7526 vcvt_f32_f16 (float16x4_t __a)
7528 return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a);
7530 #endif
7531 #pragma GCC pop_options
7533 __extension__ extern __inline int32x2_t
7534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7535 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
7537 return (int32x2_t)__builtin_neon_vcvts_nv2sf (__a, __b);
7540 __extension__ extern __inline float32x2_t
7541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7542 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
7544 return (float32x2_t)__builtin_neon_vcvts_nv2si (__a, __b);
7547 __extension__ extern __inline float32x2_t
7548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7549 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
7551 return (float32x2_t)__builtin_neon_vcvtu_nv2si ((int32x2_t) __a, __b);
7554 __extension__ extern __inline uint32x2_t
7555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7556 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
7558 return (uint32x2_t)__builtin_neon_vcvtu_nv2sf (__a, __b);
7561 __extension__ extern __inline int32x4_t
7562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7563 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
7565 return (int32x4_t)__builtin_neon_vcvts_nv4sf (__a, __b);
7568 __extension__ extern __inline float32x4_t
7569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7570 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
7572 return (float32x4_t)__builtin_neon_vcvts_nv4si (__a, __b);
7575 __extension__ extern __inline float32x4_t
7576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7577 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
7579 return (float32x4_t)__builtin_neon_vcvtu_nv4si ((int32x4_t) __a, __b);
7582 __extension__ extern __inline uint32x4_t
7583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7584 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
7586 return (uint32x4_t)__builtin_neon_vcvtu_nv4sf (__a, __b);
7589 __extension__ extern __inline int8x8_t
7590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7591 vmovn_s16 (int16x8_t __a)
7593 return (int8x8_t)__builtin_neon_vmovnv8hi (__a);
7596 __extension__ extern __inline int16x4_t
7597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7598 vmovn_s32 (int32x4_t __a)
7600 return (int16x4_t)__builtin_neon_vmovnv4si (__a);
7603 __extension__ extern __inline int32x2_t
7604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7605 vmovn_s64 (int64x2_t __a)
7607 return (int32x2_t)__builtin_neon_vmovnv2di (__a);
7610 __extension__ extern __inline uint8x8_t
7611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7612 vmovn_u16 (uint16x8_t __a)
7614 return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a);
7617 __extension__ extern __inline uint16x4_t
7618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7619 vmovn_u32 (uint32x4_t __a)
7621 return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a);
7624 __extension__ extern __inline uint32x2_t
7625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7626 vmovn_u64 (uint64x2_t __a)
7628 return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a);
7631 __extension__ extern __inline int8x8_t
7632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7633 vqmovn_s16 (int16x8_t __a)
7635 return (int8x8_t)__builtin_neon_vqmovnsv8hi (__a);
7638 __extension__ extern __inline int16x4_t
7639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7640 vqmovn_s32 (int32x4_t __a)
7642 return (int16x4_t)__builtin_neon_vqmovnsv4si (__a);
7645 __extension__ extern __inline int32x2_t
7646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7647 vqmovn_s64 (int64x2_t __a)
7649 return (int32x2_t)__builtin_neon_vqmovnsv2di (__a);
7652 __extension__ extern __inline uint8x8_t
7653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7654 vqmovn_u16 (uint16x8_t __a)
7656 return (uint8x8_t)__builtin_neon_vqmovnuv8hi ((int16x8_t) __a);
7659 __extension__ extern __inline uint16x4_t
7660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7661 vqmovn_u32 (uint32x4_t __a)
7663 return (uint16x4_t)__builtin_neon_vqmovnuv4si ((int32x4_t) __a);
7666 __extension__ extern __inline uint32x2_t
7667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7668 vqmovn_u64 (uint64x2_t __a)
7670 return (uint32x2_t)__builtin_neon_vqmovnuv2di ((int64x2_t) __a);
7673 __extension__ extern __inline uint8x8_t
7674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7675 vqmovun_s16 (int16x8_t __a)
7677 return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a);
7680 __extension__ extern __inline uint16x4_t
7681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7682 vqmovun_s32 (int32x4_t __a)
7684 return (uint16x4_t)__builtin_neon_vqmovunv4si (__a);
7687 __extension__ extern __inline uint32x2_t
7688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7689 vqmovun_s64 (int64x2_t __a)
7691 return (uint32x2_t)__builtin_neon_vqmovunv2di (__a);
7694 __extension__ extern __inline int16x8_t
7695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7696 vmovl_s8 (int8x8_t __a)
7698 return (int16x8_t)__builtin_neon_vmovlsv8qi (__a);
7701 __extension__ extern __inline int32x4_t
7702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7703 vmovl_s16 (int16x4_t __a)
7705 return (int32x4_t)__builtin_neon_vmovlsv4hi (__a);
7708 __extension__ extern __inline int64x2_t
7709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7710 vmovl_s32 (int32x2_t __a)
7712 return (int64x2_t)__builtin_neon_vmovlsv2si (__a);
7715 __extension__ extern __inline uint16x8_t
7716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7717 vmovl_u8 (uint8x8_t __a)
7719 return (uint16x8_t)__builtin_neon_vmovluv8qi ((int8x8_t) __a);
7722 __extension__ extern __inline uint32x4_t
7723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7724 vmovl_u16 (uint16x4_t __a)
7726 return (uint32x4_t)__builtin_neon_vmovluv4hi ((int16x4_t) __a);
7729 __extension__ extern __inline uint64x2_t
7730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7731 vmovl_u32 (uint32x2_t __a)
7733 return (uint64x2_t)__builtin_neon_vmovluv2si ((int32x2_t) __a);
7736 __extension__ extern __inline int8x8_t
7737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7738 vtbl1_s8 (int8x8_t __a, int8x8_t __b)
7740 return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
7743 __extension__ extern __inline uint8x8_t
7744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7745 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
7747 return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7750 __extension__ extern __inline poly8x8_t
7751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7752 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
7754 return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
7757 __extension__ extern __inline int8x8_t
7758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7759 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
7761 union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7762 return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
7765 __extension__ extern __inline uint8x8_t
7766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7767 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
7769 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7770 return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7773 __extension__ extern __inline poly8x8_t
7774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7775 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
7777 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
7778 return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
7781 __extension__ extern __inline int8x8_t
7782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7783 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
7785 union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7786 return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
7789 __extension__ extern __inline uint8x8_t
7790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7791 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
7793 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7794 return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7797 __extension__ extern __inline poly8x8_t
7798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7799 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
7801 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
7802 return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
7805 __extension__ extern __inline int8x8_t
7806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7807 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
7809 union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7810 return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
7813 __extension__ extern __inline uint8x8_t
7814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7815 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
7817 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7818 return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7821 __extension__ extern __inline poly8x8_t
7822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7823 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
7825 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
7826 return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
7829 __extension__ extern __inline int8x8_t
7830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7831 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
7833 return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
7836 __extension__ extern __inline uint8x8_t
7837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7838 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7840 return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7843 __extension__ extern __inline poly8x8_t
7844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7845 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
7847 return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7850 __extension__ extern __inline int8x8_t
7851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7852 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
7854 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7855 return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
7858 __extension__ extern __inline uint8x8_t
7859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7860 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
7862 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7863 return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7866 __extension__ extern __inline poly8x8_t
7867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7868 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
7870 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
7871 return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7874 __extension__ extern __inline int8x8_t
7875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7876 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
7878 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7879 return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
7882 __extension__ extern __inline uint8x8_t
7883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7884 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
7886 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7887 return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7890 __extension__ extern __inline poly8x8_t
7891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7892 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
7894 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
7895 return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7898 __extension__ extern __inline int8x8_t
7899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7900 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
7902 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7903 return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
7906 __extension__ extern __inline uint8x8_t
7907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7908 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
7910 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7911 return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7914 __extension__ extern __inline poly8x8_t
7915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7916 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
7918 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7919 return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
7922 __extension__ extern __inline int16x4_t
7923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7924 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7926 return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c);
7929 __extension__ extern __inline int32x2_t
7930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7931 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7933 return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c);
7936 __extension__ extern __inline float32x2_t
7937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7938 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
7940 return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c);
7943 __extension__ extern __inline uint16x4_t
7944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7945 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7947 return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7950 __extension__ extern __inline uint32x2_t
7951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7952 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7954 return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
7957 __extension__ extern __inline int16x8_t
7958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7959 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
7961 return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c);
7964 __extension__ extern __inline int32x4_t
7965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7966 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
7968 return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c);
7971 __extension__ extern __inline float32x4_t
7972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7973 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
7975 return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c);
7978 __extension__ extern __inline uint16x8_t
7979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7980 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
7982 return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c);
7985 __extension__ extern __inline uint32x4_t
7986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7987 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
7989 return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c);
7992 __extension__ extern __inline int16x4_t
7993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
7994 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
7996 return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d);
7999 __extension__ extern __inline int32x2_t
8000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8001 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8003 return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d);
8006 __extension__ extern __inline float32x2_t
8007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8008 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
8010 return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d);
8013 __extension__ extern __inline uint16x4_t
8014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8015 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8017 return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8020 __extension__ extern __inline uint32x2_t
8021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8022 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8024 return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8027 __extension__ extern __inline int16x8_t
8028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8029 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8031 return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d);
8034 __extension__ extern __inline int32x4_t
8035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8036 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8038 return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d);
8041 __extension__ extern __inline float32x4_t
8042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8043 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
8045 return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d);
8048 __extension__ extern __inline uint16x8_t
8049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8050 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8052 return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8055 __extension__ extern __inline uint32x4_t
8056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8057 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8059 return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8062 __extension__ extern __inline int32x4_t
8063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8064 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8066 return (int32x4_t)__builtin_neon_vmlals_lanev4hi (__a, __b, __c, __d);
8069 __extension__ extern __inline int64x2_t
8070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8071 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8073 return (int64x2_t)__builtin_neon_vmlals_lanev2si (__a, __b, __c, __d);
8076 __extension__ extern __inline uint32x4_t
8077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8078 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8080 return (uint32x4_t)__builtin_neon_vmlalu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8083 __extension__ extern __inline uint64x2_t
8084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8085 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8087 return (uint64x2_t)__builtin_neon_vmlalu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8090 __extension__ extern __inline int32x4_t
8091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8092 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8094 return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d);
8097 __extension__ extern __inline int64x2_t
8098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8099 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8101 return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d);
8104 __extension__ extern __inline int16x4_t
8105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8106 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8108 return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d);
8111 __extension__ extern __inline int32x2_t
8112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8113 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8115 return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d);
8118 __extension__ extern __inline float32x2_t
8119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8120 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
8122 return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d);
8125 __extension__ extern __inline uint16x4_t
8126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8127 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8129 return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8132 __extension__ extern __inline uint32x2_t
8133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8134 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8136 return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8139 __extension__ extern __inline int16x8_t
8140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8141 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8143 return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d);
8146 __extension__ extern __inline int32x4_t
8147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8148 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8150 return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d);
8153 __extension__ extern __inline float32x4_t
8154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8155 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
8157 return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d);
8160 __extension__ extern __inline uint16x8_t
8161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8162 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
8164 return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
8167 __extension__ extern __inline uint32x4_t
8168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8169 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
8171 return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
8174 __extension__ extern __inline int32x4_t
8175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8176 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8178 return (int32x4_t)__builtin_neon_vmlsls_lanev4hi (__a, __b, __c, __d);
8181 __extension__ extern __inline int64x2_t
8182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8183 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8185 return (int64x2_t)__builtin_neon_vmlsls_lanev2si (__a, __b, __c, __d);
8188 __extension__ extern __inline uint32x4_t
8189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8190 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
8192 return (uint32x4_t)__builtin_neon_vmlslu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
8195 __extension__ extern __inline uint64x2_t
8196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8197 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
8199 return (uint64x2_t)__builtin_neon_vmlslu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
8202 __extension__ extern __inline int32x4_t
8203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8204 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8206 return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d);
8209 __extension__ extern __inline int64x2_t
8210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8211 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8213 return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d);
8216 __extension__ extern __inline int32x4_t
8217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8218 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8220 return (int32x4_t)__builtin_neon_vmulls_lanev4hi (__a, __b, __c);
8223 __extension__ extern __inline int64x2_t
8224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8225 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8227 return (int64x2_t)__builtin_neon_vmulls_lanev2si (__a, __b, __c);
8230 __extension__ extern __inline uint32x4_t
8231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8232 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8234 return (uint32x4_t)__builtin_neon_vmullu_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8237 __extension__ extern __inline uint64x2_t
8238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8239 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8241 return (uint64x2_t)__builtin_neon_vmullu_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8244 __extension__ extern __inline int32x4_t
8245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8246 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8248 return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c);
8251 __extension__ extern __inline int64x2_t
8252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8253 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8255 return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c);
8258 __extension__ extern __inline int16x8_t
8259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8260 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8262 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c);
8265 __extension__ extern __inline int32x4_t
8266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8267 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8269 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c);
8272 __extension__ extern __inline int16x4_t
8273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8274 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8276 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c);
8279 __extension__ extern __inline int32x2_t
8280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8281 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8283 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c);
8286 __extension__ extern __inline int16x8_t
8287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8288 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
8290 return (int16x8_t)__builtin_neon_vqrdmulh_lanev8hi (__a, __b, __c);
8293 __extension__ extern __inline int32x4_t
8294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8295 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
8297 return (int32x4_t)__builtin_neon_vqrdmulh_lanev4si (__a, __b, __c);
8300 __extension__ extern __inline int16x4_t
8301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8302 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8304 return (int16x4_t)__builtin_neon_vqrdmulh_lanev4hi (__a, __b, __c);
8307 __extension__ extern __inline int32x2_t
8308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8309 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8311 return (int32x2_t)__builtin_neon_vqrdmulh_lanev2si (__a, __b, __c);
8314 #ifdef __ARM_FEATURE_QRDMX
8315 __extension__ extern __inline int16x8_t
8316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8317 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8319 return (int16x8_t)__builtin_neon_vqrdmlah_lanev8hi (__a, __b, __c, __d);
8322 __extension__ extern __inline int32x4_t
8323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8324 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8326 return (int32x4_t)__builtin_neon_vqrdmlah_lanev4si (__a, __b, __c, __d);
8329 __extension__ extern __inline int16x4_t
8330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8331 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8333 return (int16x4_t)__builtin_neon_vqrdmlah_lanev4hi (__a, __b, __c, __d);
8336 __extension__ extern __inline int32x2_t
8337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8338 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8340 return (int32x2_t)__builtin_neon_vqrdmlah_lanev2si (__a, __b, __c, __d);
8343 __extension__ extern __inline int16x8_t
8344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8345 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
8347 return (int16x8_t)__builtin_neon_vqrdmlsh_lanev8hi (__a, __b, __c, __d);
8350 __extension__ extern __inline int32x4_t
8351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8352 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
8354 return (int32x4_t)__builtin_neon_vqrdmlsh_lanev4si (__a, __b, __c, __d);
8357 __extension__ extern __inline int16x4_t
8358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8359 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
8361 return (int16x4_t)__builtin_neon_vqrdmlsh_lanev4hi (__a, __b, __c, __d);
8364 __extension__ extern __inline int32x2_t
8365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8366 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
8368 return (int32x2_t)__builtin_neon_vqrdmlsh_lanev2si (__a, __b, __c, __d);
8370 #endif
8372 __extension__ extern __inline int16x4_t
8373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8374 vmul_n_s16 (int16x4_t __a, int16_t __b)
8376 return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b);
8379 __extension__ extern __inline int32x2_t
8380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8381 vmul_n_s32 (int32x2_t __a, int32_t __b)
8383 return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b);
8386 __extension__ extern __inline float32x2_t
8387 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8388 vmul_n_f32 (float32x2_t __a, float32_t __b)
8390 #ifdef __FAST_MATH__
8391 return __a * __b;
8392 #else
8393 return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b);
8394 #endif
8397 __extension__ extern __inline uint16x4_t
8398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8399 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
8401 return __a * __b;
8404 __extension__ extern __inline uint32x2_t
8405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8406 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
8408 return __a * __b;
8411 __extension__ extern __inline int16x8_t
8412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8413 vmulq_n_s16 (int16x8_t __a, int16_t __b)
8415 return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b);
8418 __extension__ extern __inline int32x4_t
8419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8420 vmulq_n_s32 (int32x4_t __a, int32_t __b)
8422 return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b);
8425 __extension__ extern __inline float32x4_t
8426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8427 vmulq_n_f32 (float32x4_t __a, float32_t __b)
8429 #ifdef __FAST_MATH__
8430 return __a * __b;
8431 #else
8432 return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b);
8433 #endif
8436 __extension__ extern __inline uint16x8_t
8437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8438 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
8440 return __a * __b;
8443 __extension__ extern __inline uint32x4_t
8444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8445 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
8447 return __a * __b;
8450 __extension__ extern __inline int32x4_t
8451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8452 vmull_n_s16 (int16x4_t __a, int16_t __b)
8454 return (int32x4_t)__builtin_neon_vmulls_nv4hi (__a, (__builtin_neon_hi) __b);
8457 __extension__ extern __inline int64x2_t
8458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8459 vmull_n_s32 (int32x2_t __a, int32_t __b)
8461 return (int64x2_t)__builtin_neon_vmulls_nv2si (__a, (__builtin_neon_si) __b);
8464 __extension__ extern __inline uint32x4_t
8465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8466 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
8468 return (uint32x4_t)__builtin_neon_vmullu_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
8471 __extension__ extern __inline uint64x2_t
8472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8473 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
8475 return (uint64x2_t)__builtin_neon_vmullu_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
8478 __extension__ extern __inline int32x4_t
8479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8480 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
8482 return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b);
8485 __extension__ extern __inline int64x2_t
8486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8487 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
8489 return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b);
8492 __extension__ extern __inline int16x8_t
8493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8494 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8496 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8499 __extension__ extern __inline int32x4_t
8500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8501 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8503 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b);
8506 __extension__ extern __inline int16x4_t
8507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8508 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
8510 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8513 __extension__ extern __inline int32x2_t
8514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8515 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
8517 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b);
8520 __extension__ extern __inline int16x8_t
8521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8522 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
8524 return (int16x8_t)__builtin_neon_vqrdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
8527 __extension__ extern __inline int32x4_t
8528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8529 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
8531 return (int32x4_t)__builtin_neon_vqrdmulh_nv4si (__a, (__builtin_neon_si) __b);
8534 __extension__ extern __inline int16x4_t
8535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8536 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
8538 return (int16x4_t)__builtin_neon_vqrdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
8541 __extension__ extern __inline int32x2_t
8542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8543 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
8545 return (int32x2_t)__builtin_neon_vqrdmulh_nv2si (__a, (__builtin_neon_si) __b);
8548 __extension__ extern __inline int16x4_t
8549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8550 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8552 return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8555 __extension__ extern __inline int32x2_t
8556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8557 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8559 return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c);
8562 __extension__ extern __inline float32x2_t
8563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8564 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8566 return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8569 __extension__ extern __inline uint16x4_t
8570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8571 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8573 return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8576 __extension__ extern __inline uint32x2_t
8577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8578 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8580 return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8583 __extension__ extern __inline int16x8_t
8584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8585 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8587 return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8590 __extension__ extern __inline int32x4_t
8591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8592 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8594 return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c);
8597 __extension__ extern __inline float32x4_t
8598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8599 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8601 return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8604 __extension__ extern __inline uint16x8_t
8605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8606 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8608 return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8611 __extension__ extern __inline uint32x4_t
8612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8613 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8615 return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8618 __extension__ extern __inline int32x4_t
8619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8620 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8622 return (int32x4_t)__builtin_neon_vmlals_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8625 __extension__ extern __inline int64x2_t
8626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8627 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8629 return (int64x2_t)__builtin_neon_vmlals_nv2si (__a, __b, (__builtin_neon_si) __c);
8632 __extension__ extern __inline uint32x4_t
8633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8634 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8636 return (uint32x4_t)__builtin_neon_vmlalu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8639 __extension__ extern __inline uint64x2_t
8640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8641 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8643 return (uint64x2_t)__builtin_neon_vmlalu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8646 __extension__ extern __inline int32x4_t
8647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8648 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8650 return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8653 __extension__ extern __inline int64x2_t
8654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8655 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8657 return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c);
8660 __extension__ extern __inline int16x4_t
8661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8662 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8664 return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8667 __extension__ extern __inline int32x2_t
8668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8669 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8671 return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c);
8674 __extension__ extern __inline float32x2_t
8675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8676 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8678 return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c);
8681 __extension__ extern __inline uint16x4_t
8682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8683 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8685 return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8688 __extension__ extern __inline uint32x2_t
8689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8690 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8692 return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8695 __extension__ extern __inline int16x8_t
8696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8697 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8699 return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c);
8702 __extension__ extern __inline int32x4_t
8703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8704 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8706 return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c);
8709 __extension__ extern __inline float32x4_t
8710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8711 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8713 return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c);
8716 __extension__ extern __inline uint16x8_t
8717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8718 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8720 return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
8723 __extension__ extern __inline uint32x4_t
8724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8725 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8727 return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
8730 __extension__ extern __inline int32x4_t
8731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8732 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8734 return (int32x4_t)__builtin_neon_vmlsls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8737 __extension__ extern __inline int64x2_t
8738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8739 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8741 return (int64x2_t)__builtin_neon_vmlsls_nv2si (__a, __b, (__builtin_neon_si) __c);
8744 __extension__ extern __inline uint32x4_t
8745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8746 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8748 return (uint32x4_t)__builtin_neon_vmlslu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
8751 __extension__ extern __inline uint64x2_t
8752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8753 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8755 return (uint64x2_t)__builtin_neon_vmlslu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
8758 __extension__ extern __inline int32x4_t
8759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8760 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8762 return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c);
8765 __extension__ extern __inline int64x2_t
8766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8767 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8769 return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c);
8772 #pragma GCC push_options
8773 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
8774 __extension__ extern __inline poly64x1_t
8775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8776 vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
8778 return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8781 #pragma GCC pop_options
8782 __extension__ extern __inline int8x8_t
8783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8784 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
8786 return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
8789 __extension__ extern __inline int16x4_t
8790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8791 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
8793 return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
8796 __extension__ extern __inline int32x2_t
8797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8798 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
8800 return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
8803 __extension__ extern __inline int64x1_t
8804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8805 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
8807 return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
8810 __extension__ extern __inline float32x2_t
8811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8812 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
8814 return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
8817 __extension__ extern __inline uint8x8_t
8818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8819 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
8821 return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8824 __extension__ extern __inline uint16x4_t
8825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8826 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
8828 return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8831 __extension__ extern __inline uint32x2_t
8832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8833 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
8835 return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
8838 __extension__ extern __inline uint64x1_t
8839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8840 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
8842 return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
8845 __extension__ extern __inline poly8x8_t
8846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8847 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
8849 return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
8852 __extension__ extern __inline poly16x4_t
8853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8854 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
8856 return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
8859 #pragma GCC push_options
8860 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
8861 __extension__ extern __inline poly64x2_t
8862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8863 vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
8865 return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8868 #pragma GCC pop_options
8869 __extension__ extern __inline int8x16_t
8870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8871 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
8873 return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
8876 __extension__ extern __inline int16x8_t
8877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8878 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
8880 return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
8883 __extension__ extern __inline int32x4_t
8884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8885 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
8887 return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
8890 __extension__ extern __inline int64x2_t
8891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8892 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
8894 return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
8897 __extension__ extern __inline float32x4_t
8898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8899 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
8901 return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
8904 __extension__ extern __inline uint8x16_t
8905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8906 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
8908 return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8911 __extension__ extern __inline uint16x8_t
8912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8913 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
8915 return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8918 __extension__ extern __inline uint32x4_t
8919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8920 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
8922 return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
8925 __extension__ extern __inline uint64x2_t
8926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8927 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
8929 return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
8932 __extension__ extern __inline poly8x16_t
8933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8934 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
8936 return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
8939 __extension__ extern __inline poly16x8_t
8940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8941 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
8943 return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
8946 __extension__ extern __inline int8x8_t
8947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8948 vrev64_s8 (int8x8_t __a)
8950 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8953 __extension__ extern __inline int16x4_t
8954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8955 vrev64_s16 (int16x4_t __a)
8957 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8960 __extension__ extern __inline int32x2_t
8961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8962 vrev64_s32 (int32x2_t __a)
8964 return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8967 __extension__ extern __inline float32x2_t
8968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8969 vrev64_f32 (float32x2_t __a)
8971 return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8974 __extension__ extern __inline uint8x8_t
8975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8976 vrev64_u8 (uint8x8_t __a)
8978 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
8981 __extension__ extern __inline uint16x4_t
8982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8983 vrev64_u16 (uint16x4_t __a)
8985 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
8988 __extension__ extern __inline uint32x2_t
8989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8990 vrev64_u32 (uint32x2_t __a)
8992 return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
8995 __extension__ extern __inline poly8x8_t
8996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
8997 vrev64_p8 (poly8x8_t __a)
8999 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
9002 __extension__ extern __inline poly16x4_t
9003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9004 vrev64_p16 (poly16x4_t __a)
9006 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
9009 __extension__ extern __inline int8x16_t
9010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9011 vrev64q_s8 (int8x16_t __a)
9013 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
9016 __extension__ extern __inline int16x8_t
9017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9018 vrev64q_s16 (int16x8_t __a)
9020 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9023 __extension__ extern __inline int32x4_t
9024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9025 vrev64q_s32 (int32x4_t __a)
9027 return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
9030 __extension__ extern __inline float32x4_t
9031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9032 vrev64q_f32 (float32x4_t __a)
9034 return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
9037 __extension__ extern __inline uint8x16_t
9038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9039 vrev64q_u8 (uint8x16_t __a)
9041 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
9044 __extension__ extern __inline uint16x8_t
9045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9046 vrev64q_u16 (uint16x8_t __a)
9048 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9051 __extension__ extern __inline uint32x4_t
9052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9053 vrev64q_u32 (uint32x4_t __a)
9055 return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
9058 __extension__ extern __inline poly8x16_t
9059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9060 vrev64q_p8 (poly8x16_t __a)
9062 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
9065 __extension__ extern __inline poly16x8_t
9066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9067 vrev64q_p16 (poly16x8_t __a)
9069 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9072 __extension__ extern __inline int8x8_t
9073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9074 vrev32_s8 (int8x8_t __a)
9076 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9079 __extension__ extern __inline int16x4_t
9080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9081 vrev32_s16 (int16x4_t __a)
9083 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9086 __extension__ extern __inline uint8x8_t
9087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9088 vrev32_u8 (uint8x8_t __a)
9090 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9093 __extension__ extern __inline uint16x4_t
9094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9095 vrev32_u16 (uint16x4_t __a)
9097 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9100 __extension__ extern __inline poly8x8_t
9101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9102 vrev32_p8 (poly8x8_t __a)
9104 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
9107 __extension__ extern __inline poly16x4_t
9108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9109 vrev32_p16 (poly16x4_t __a)
9111 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
9114 __extension__ extern __inline int8x16_t
9115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9116 vrev32q_s8 (int8x16_t __a)
9118 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9121 __extension__ extern __inline int16x8_t
9122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9123 vrev32q_s16 (int16x8_t __a)
9125 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9128 __extension__ extern __inline uint8x16_t
9129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9130 vrev32q_u8 (uint8x16_t __a)
9132 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9135 __extension__ extern __inline uint16x8_t
9136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9137 vrev32q_u16 (uint16x8_t __a)
9139 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9142 __extension__ extern __inline poly8x16_t
9143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9144 vrev32q_p8 (poly8x16_t __a)
9146 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
9149 __extension__ extern __inline poly16x8_t
9150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9151 vrev32q_p16 (poly16x8_t __a)
9153 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9156 __extension__ extern __inline int8x8_t
9157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9158 vrev16_s8 (int8x8_t __a)
9160 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9163 __extension__ extern __inline uint8x8_t
9164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9165 vrev16_u8 (uint8x8_t __a)
9167 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9170 __extension__ extern __inline poly8x8_t
9171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9172 vrev16_p8 (poly8x8_t __a)
9174 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
9177 __extension__ extern __inline int8x16_t
9178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9179 vrev16q_s8 (int8x16_t __a)
9181 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9184 __extension__ extern __inline uint8x16_t
9185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9186 vrev16q_u8 (uint8x16_t __a)
9188 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9191 __extension__ extern __inline poly8x16_t
9192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9193 vrev16q_p8 (poly8x16_t __a)
9195 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
9198 #pragma GCC push_options
9199 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
9200 __extension__ extern __inline poly64x1_t
9201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9202 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
9204 return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9207 #pragma GCC pop_options
9208 __extension__ extern __inline int8x8_t
9209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9210 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
9212 return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
9215 __extension__ extern __inline int16x4_t
9216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9217 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
9219 return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
9222 __extension__ extern __inline int32x2_t
9223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9224 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
9226 return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
9229 __extension__ extern __inline int64x1_t
9230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9231 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
9233 return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
9236 __extension__ extern __inline float32x2_t
9237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9238 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
9240 return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
9243 __extension__ extern __inline uint8x8_t
9244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9245 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
9247 return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9250 __extension__ extern __inline uint16x4_t
9251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9252 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
9254 return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9257 __extension__ extern __inline uint32x2_t
9258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9259 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
9261 return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
9264 __extension__ extern __inline uint64x1_t
9265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9266 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
9268 return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
9271 __extension__ extern __inline poly8x8_t
9272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9273 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
9275 return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
9278 __extension__ extern __inline poly16x4_t
9279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9280 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
9282 return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
9285 #pragma GCC push_options
9286 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
9287 __extension__ extern __inline poly64x2_t
9288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9289 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
9291 return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9294 #pragma GCC pop_options
9295 __extension__ extern __inline int8x16_t
9296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9297 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
9299 return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
9302 __extension__ extern __inline int16x8_t
9303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9304 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
9306 return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
9309 __extension__ extern __inline int32x4_t
9310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9311 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
9313 return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
9316 __extension__ extern __inline int64x2_t
9317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9318 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
9320 return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
9323 __extension__ extern __inline float32x4_t
9324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9325 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
9327 return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
9330 __extension__ extern __inline uint8x16_t
9331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9332 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
9334 return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9337 __extension__ extern __inline uint16x8_t
9338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9339 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
9341 return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9344 __extension__ extern __inline uint32x4_t
9345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9346 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
9348 return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
9351 __extension__ extern __inline uint64x2_t
9352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9353 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
9355 return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
9358 __extension__ extern __inline poly8x16_t
9359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9360 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
9362 return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
9365 __extension__ extern __inline poly16x8_t
9366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9367 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
9369 return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
9372 /* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as
9373 follows. (nelt = the number of elements within a vector.)
9375 Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector
9376 extension's indexing scheme is reversed *within each vector* (relative to the
9377 neon intrinsics view), but without changing which of the two vectors.
9379 Secondly, the elements within each mask are reversed, as the mask is itself a
9380 vector, and will itself be loaded in reverse order (again, relative to the
9381 neon intrinsics view, i.e. that would result from a "vld1" instruction). */
9383 __extension__ extern __inline int8x8x2_t
9384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9385 vtrn_s8 (int8x8_t __a, int8x8_t __b)
9387 int8x8x2_t __rv;
9388 #ifdef __ARM_BIG_ENDIAN
9389 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9390 { 9, 1, 11, 3, 13, 5, 15, 7 });
9391 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9392 { 8, 0, 10, 2, 12, 4, 14, 6 });
9393 #else
9394 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9395 { 0, 8, 2, 10, 4, 12, 6, 14 });
9396 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9397 { 1, 9, 3, 11, 5, 13, 7, 15 });
9398 #endif
9399 return __rv;
9402 __extension__ extern __inline int16x4x2_t
9403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9404 vtrn_s16 (int16x4_t __a, int16x4_t __b)
9406 int16x4x2_t __rv;
9407 #ifdef __ARM_BIG_ENDIAN
9408 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9409 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9410 #else
9411 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9412 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9413 #endif
9414 return __rv;
9417 __extension__ extern __inline uint8x8x2_t
9418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9419 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
9421 uint8x8x2_t __rv;
9422 #ifdef __ARM_BIG_ENDIAN
9423 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9424 { 9, 1, 11, 3, 13, 5, 15, 7 });
9425 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9426 { 8, 0, 10, 2, 12, 4, 14, 6 });
9427 #else
9428 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9429 { 0, 8, 2, 10, 4, 12, 6, 14 });
9430 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9431 { 1, 9, 3, 11, 5, 13, 7, 15 });
9432 #endif
9433 return __rv;
9436 __extension__ extern __inline uint16x4x2_t
9437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9438 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
9440 uint16x4x2_t __rv;
9441 #ifdef __ARM_BIG_ENDIAN
9442 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9443 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9444 #else
9445 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9446 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9447 #endif
9448 return __rv;
9451 __extension__ extern __inline poly8x8x2_t
9452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9453 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
9455 poly8x8x2_t __rv;
9456 #ifdef __ARM_BIG_ENDIAN
9457 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9458 { 9, 1, 11, 3, 13, 5, 15, 7 });
9459 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9460 { 8, 0, 10, 2, 12, 4, 14, 6 });
9461 #else
9462 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9463 { 0, 8, 2, 10, 4, 12, 6, 14 });
9464 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9465 { 1, 9, 3, 11, 5, 13, 7, 15 });
9466 #endif
9467 return __rv;
9470 __extension__ extern __inline poly16x4x2_t
9471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9472 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
9474 poly16x4x2_t __rv;
9475 #ifdef __ARM_BIG_ENDIAN
9476 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
9477 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
9478 #else
9479 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
9480 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
9481 #endif
9482 return __rv;
9485 __extension__ extern __inline int32x2x2_t
9486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9487 vtrn_s32 (int32x2_t __a, int32x2_t __b)
9489 int32x2x2_t __rv;
9490 #ifdef __ARM_BIG_ENDIAN
9491 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9492 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9493 #else
9494 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9495 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9496 #endif
9497 return __rv;
9500 __extension__ extern __inline float32x2x2_t
9501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9502 vtrn_f32 (float32x2_t __a, float32x2_t __b)
9504 float32x2x2_t __rv;
9505 #ifdef __ARM_BIG_ENDIAN
9506 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9507 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9508 #else
9509 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9510 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9511 #endif
9512 return __rv;
9515 __extension__ extern __inline uint32x2x2_t
9516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9517 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
9519 uint32x2x2_t __rv;
9520 #ifdef __ARM_BIG_ENDIAN
9521 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9522 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9523 #else
9524 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9525 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9526 #endif
9527 return __rv;
9530 __extension__ extern __inline int8x16x2_t
9531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9532 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
9534 int8x16x2_t __rv;
9535 #ifdef __ARM_BIG_ENDIAN
9536 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9537 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9538 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9539 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9540 #else
9541 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9542 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9543 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9544 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9545 #endif
9546 return __rv;
9549 __extension__ extern __inline int16x8x2_t
9550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9551 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
9553 int16x8x2_t __rv;
9554 #ifdef __ARM_BIG_ENDIAN
9555 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9556 { 9, 1, 11, 3, 13, 5, 15, 7 });
9557 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9558 { 8, 0, 10, 2, 12, 4, 14, 6 });
9559 #else
9560 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9561 { 0, 8, 2, 10, 4, 12, 6, 14 });
9562 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9563 { 1, 9, 3, 11, 5, 13, 7, 15 });
9564 #endif
9565 return __rv;
9568 __extension__ extern __inline int32x4x2_t
9569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9570 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
9572 int32x4x2_t __rv;
9573 #ifdef __ARM_BIG_ENDIAN
9574 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9575 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9576 #else
9577 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9578 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9579 #endif
9580 return __rv;
9583 __extension__ extern __inline float32x4x2_t
9584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9585 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
9587 float32x4x2_t __rv;
9588 #ifdef __ARM_BIG_ENDIAN
9589 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9590 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9591 #else
9592 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9593 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9594 #endif
9595 return __rv;
9598 __extension__ extern __inline uint8x16x2_t
9599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9600 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
9602 uint8x16x2_t __rv;
9603 #ifdef __ARM_BIG_ENDIAN
9604 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9605 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9606 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9607 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9608 #else
9609 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9610 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9611 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9612 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9613 #endif
9614 return __rv;
9617 __extension__ extern __inline uint16x8x2_t
9618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9619 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
9621 uint16x8x2_t __rv;
9622 #ifdef __ARM_BIG_ENDIAN
9623 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9624 { 9, 1, 11, 3, 13, 5, 15, 7 });
9625 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9626 { 8, 0, 10, 2, 12, 4, 14, 6 });
9627 #else
9628 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9629 { 0, 8, 2, 10, 4, 12, 6, 14 });
9630 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9631 { 1, 9, 3, 11, 5, 13, 7, 15 });
9632 #endif
9633 return __rv;
9636 __extension__ extern __inline uint32x4x2_t
9637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9638 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
9640 uint32x4x2_t __rv;
9641 #ifdef __ARM_BIG_ENDIAN
9642 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
9643 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
9644 #else
9645 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
9646 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
9647 #endif
9648 return __rv;
9651 __extension__ extern __inline poly8x16x2_t
9652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9653 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
9655 poly8x16x2_t __rv;
9656 #ifdef __ARM_BIG_ENDIAN
9657 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9658 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
9659 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9660 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
9661 #else
9662 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9663 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
9664 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9665 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
9666 #endif
9667 return __rv;
9670 __extension__ extern __inline poly16x8x2_t
9671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9672 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
9674 poly16x8x2_t __rv;
9675 #ifdef __ARM_BIG_ENDIAN
9676 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9677 { 9, 1, 11, 3, 13, 5, 15, 7 });
9678 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9679 { 8, 0, 10, 2, 12, 4, 14, 6 });
9680 #else
9681 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9682 { 0, 8, 2, 10, 4, 12, 6, 14 });
9683 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9684 { 1, 9, 3, 11, 5, 13, 7, 15 });
9685 #endif
9686 return __rv;
9689 __extension__ extern __inline int8x8x2_t
9690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9691 vzip_s8 (int8x8_t __a, int8x8_t __b)
9693 int8x8x2_t __rv;
9694 #ifdef __ARM_BIG_ENDIAN
9695 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9696 { 12, 4, 13, 5, 14, 6, 15, 7 });
9697 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9698 { 8, 0, 9, 1, 10, 2, 11, 3 });
9699 #else
9700 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9701 { 0, 8, 1, 9, 2, 10, 3, 11 });
9702 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9703 { 4, 12, 5, 13, 6, 14, 7, 15 });
9704 #endif
9705 return __rv;
9708 __extension__ extern __inline int16x4x2_t
9709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9710 vzip_s16 (int16x4_t __a, int16x4_t __b)
9712 int16x4x2_t __rv;
9713 #ifdef __ARM_BIG_ENDIAN
9714 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9715 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9716 #else
9717 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9718 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9719 #endif
9720 return __rv;
9723 __extension__ extern __inline uint8x8x2_t
9724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9725 vzip_u8 (uint8x8_t __a, uint8x8_t __b)
9727 uint8x8x2_t __rv;
9728 #ifdef __ARM_BIG_ENDIAN
9729 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9730 { 12, 4, 13, 5, 14, 6, 15, 7 });
9731 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9732 { 8, 0, 9, 1, 10, 2, 11, 3 });
9733 #else
9734 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9735 { 0, 8, 1, 9, 2, 10, 3, 11 });
9736 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9737 { 4, 12, 5, 13, 6, 14, 7, 15 });
9738 #endif
9739 return __rv;
9742 __extension__ extern __inline uint16x4x2_t
9743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9744 vzip_u16 (uint16x4_t __a, uint16x4_t __b)
9746 uint16x4x2_t __rv;
9747 #ifdef __ARM_BIG_ENDIAN
9748 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9749 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9750 #else
9751 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9752 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9753 #endif
9754 return __rv;
9757 __extension__ extern __inline poly8x8x2_t
9758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9759 vzip_p8 (poly8x8_t __a, poly8x8_t __b)
9761 poly8x8x2_t __rv;
9762 #ifdef __ARM_BIG_ENDIAN
9763 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9764 { 12, 4, 13, 5, 14, 6, 15, 7 });
9765 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9766 { 8, 0, 9, 1, 10, 2, 11, 3 });
9767 #else
9768 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
9769 { 0, 8, 1, 9, 2, 10, 3, 11 });
9770 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
9771 { 4, 12, 5, 13, 6, 14, 7, 15 });
9772 #endif
9773 return __rv;
9776 __extension__ extern __inline poly16x4x2_t
9777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9778 vzip_p16 (poly16x4_t __a, poly16x4_t __b)
9780 poly16x4x2_t __rv;
9781 #ifdef __ARM_BIG_ENDIAN
9782 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
9783 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
9784 #else
9785 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
9786 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
9787 #endif
9788 return __rv;
9791 __extension__ extern __inline int32x2x2_t
9792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9793 vzip_s32 (int32x2_t __a, int32x2_t __b)
9795 int32x2x2_t __rv;
9796 #ifdef __ARM_BIG_ENDIAN
9797 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9798 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9799 #else
9800 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9801 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9802 #endif
9803 return __rv;
9806 __extension__ extern __inline float32x2x2_t
9807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9808 vzip_f32 (float32x2_t __a, float32x2_t __b)
9810 float32x2x2_t __rv;
9811 #ifdef __ARM_BIG_ENDIAN
9812 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9813 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9814 #else
9815 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9816 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9817 #endif
9818 return __rv;
9821 __extension__ extern __inline uint32x2x2_t
9822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9823 vzip_u32 (uint32x2_t __a, uint32x2_t __b)
9825 uint32x2x2_t __rv;
9826 #ifdef __ARM_BIG_ENDIAN
9827 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
9828 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
9829 #else
9830 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
9831 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
9832 #endif
9833 return __rv;
9836 __extension__ extern __inline int8x16x2_t
9837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9838 vzipq_s8 (int8x16_t __a, int8x16_t __b)
9840 int8x16x2_t __rv;
9841 #ifdef __ARM_BIG_ENDIAN
9842 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9843 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9844 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9845 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9846 #else
9847 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9848 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9849 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9850 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9851 #endif
9852 return __rv;
9855 __extension__ extern __inline int16x8x2_t
9856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9857 vzipq_s16 (int16x8_t __a, int16x8_t __b)
9859 int16x8x2_t __rv;
9860 #ifdef __ARM_BIG_ENDIAN
9861 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9862 { 10, 2, 11, 3, 8, 0, 9, 1 });
9863 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9864 { 14, 6, 15, 7, 12, 4, 13, 5 });
9865 #else
9866 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9867 { 0, 8, 1, 9, 2, 10, 3, 11 });
9868 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9869 { 4, 12, 5, 13, 6, 14, 7, 15 });
9870 #endif
9871 return __rv;
9874 __extension__ extern __inline int32x4x2_t
9875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9876 vzipq_s32 (int32x4_t __a, int32x4_t __b)
9878 int32x4x2_t __rv;
9879 #ifdef __ARM_BIG_ENDIAN
9880 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9881 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9882 #else
9883 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9884 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9885 #endif
9886 return __rv;
9889 __extension__ extern __inline float32x4x2_t
9890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9891 vzipq_f32 (float32x4_t __a, float32x4_t __b)
9893 float32x4x2_t __rv;
9894 #ifdef __ARM_BIG_ENDIAN
9895 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9896 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9897 #else
9898 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9899 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9900 #endif
9901 return __rv;
9904 __extension__ extern __inline uint8x16x2_t
9905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9906 vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
9908 uint8x16x2_t __rv;
9909 #ifdef __ARM_BIG_ENDIAN
9910 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9911 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9912 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9913 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9914 #else
9915 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9916 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9917 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9918 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9919 #endif
9920 return __rv;
9923 __extension__ extern __inline uint16x8x2_t
9924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9925 vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
9927 uint16x8x2_t __rv;
9928 #ifdef __ARM_BIG_ENDIAN
9929 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9930 { 10, 2, 11, 3, 8, 0, 9, 1 });
9931 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9932 { 14, 6, 15, 7, 12, 4, 13, 5 });
9933 #else
9934 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9935 { 0, 8, 1, 9, 2, 10, 3, 11 });
9936 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9937 { 4, 12, 5, 13, 6, 14, 7, 15 });
9938 #endif
9939 return __rv;
9942 __extension__ extern __inline uint32x4x2_t
9943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9944 vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
9946 uint32x4x2_t __rv;
9947 #ifdef __ARM_BIG_ENDIAN
9948 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 4, 0 });
9949 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 7, 3, 6, 2 });
9950 #else
9951 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
9952 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
9953 #endif
9954 return __rv;
9957 __extension__ extern __inline poly8x16x2_t
9958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9959 vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
9961 poly8x16x2_t __rv;
9962 #ifdef __ARM_BIG_ENDIAN
9963 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9964 { 20, 4, 21, 5, 22, 6, 23, 7, 16, 0, 17, 1, 18, 2, 19, 3 });
9965 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9966 { 28, 12, 29, 13, 30, 14, 31, 15, 24, 8, 25, 9, 26, 10, 27, 11 });
9967 #else
9968 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
9969 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
9970 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
9971 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
9972 #endif
9973 return __rv;
9976 __extension__ extern __inline poly16x8x2_t
9977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9978 vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
9980 poly16x8x2_t __rv;
9981 #ifdef __ARM_BIG_ENDIAN
9982 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9983 { 10, 2, 11, 3, 8, 0, 9, 1 });
9984 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9985 { 14, 6, 15, 7, 12, 4, 13, 5 });
9986 #else
9987 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
9988 { 0, 8, 1, 9, 2, 10, 3, 11 });
9989 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
9990 { 4, 12, 5, 13, 6, 14, 7, 15 });
9991 #endif
9992 return __rv;
9995 __extension__ extern __inline int8x8x2_t
9996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
9997 vuzp_s8 (int8x8_t __a, int8x8_t __b)
9999 int8x8x2_t __rv;
10000 #ifdef __ARM_BIG_ENDIAN
10001 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10002 { 9, 11, 13, 15, 1, 3, 5, 7 });
10003 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10004 { 8, 10, 12, 14, 0, 2, 4, 6 });
10005 #else
10006 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10007 { 0, 2, 4, 6, 8, 10, 12, 14 });
10008 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10009 { 1, 3, 5, 7, 9, 11, 13, 15 });
10010 #endif
10011 return __rv;
10014 __extension__ extern __inline int16x4x2_t
10015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10016 vuzp_s16 (int16x4_t __a, int16x4_t __b)
10018 int16x4x2_t __rv;
10019 #ifdef __ARM_BIG_ENDIAN
10020 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10021 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10022 #else
10023 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10024 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10025 #endif
10026 return __rv;
10029 __extension__ extern __inline int32x2x2_t
10030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10031 vuzp_s32 (int32x2_t __a, int32x2_t __b)
10033 int32x2x2_t __rv;
10034 #ifdef __ARM_BIG_ENDIAN
10035 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10036 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10037 #else
10038 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10039 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10040 #endif
10041 return __rv;
10044 __extension__ extern __inline float32x2x2_t
10045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10046 vuzp_f32 (float32x2_t __a, float32x2_t __b)
10048 float32x2x2_t __rv;
10049 #ifdef __ARM_BIG_ENDIAN
10050 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10051 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10052 #else
10053 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10054 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10055 #endif
10056 return __rv;
10059 __extension__ extern __inline uint8x8x2_t
10060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10061 vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
10063 uint8x8x2_t __rv;
10064 #ifdef __ARM_BIG_ENDIAN
10065 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10066 { 9, 11, 13, 15, 1, 3, 5, 7 });
10067 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10068 { 8, 10, 12, 14, 0, 2, 4, 6 });
10069 #else
10070 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10071 { 0, 2, 4, 6, 8, 10, 12, 14 });
10072 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10073 { 1, 3, 5, 7, 9, 11, 13, 15 });
10074 #endif
10075 return __rv;
10078 __extension__ extern __inline uint16x4x2_t
10079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10080 vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
10082 uint16x4x2_t __rv;
10083 #ifdef __ARM_BIG_ENDIAN
10084 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10085 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10086 #else
10087 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10088 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10089 #endif
10090 return __rv;
10093 __extension__ extern __inline uint32x2x2_t
10094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10095 vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
10097 uint32x2x2_t __rv;
10098 #ifdef __ARM_BIG_ENDIAN
10099 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
10100 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
10101 #else
10102 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
10103 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
10104 #endif
10105 return __rv;
10108 __extension__ extern __inline poly8x8x2_t
10109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10110 vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
10112 poly8x8x2_t __rv;
10113 #ifdef __ARM_BIG_ENDIAN
10114 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10115 { 9, 11, 13, 15, 1, 3, 5, 7 });
10116 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10117 { 8, 10, 12, 14, 0, 2, 4, 6 });
10118 #else
10119 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
10120 { 0, 2, 4, 6, 8, 10, 12, 14 });
10121 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
10122 { 1, 3, 5, 7, 9, 11, 13, 15 });
10123 #endif
10124 return __rv;
10127 __extension__ extern __inline poly16x4x2_t
10128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10129 vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
10131 poly16x4x2_t __rv;
10132 #ifdef __ARM_BIG_ENDIAN
10133 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
10134 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
10135 #else
10136 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
10137 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
10138 #endif
10139 return __rv;
10142 __extension__ extern __inline int8x16x2_t
10143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10144 vuzpq_s8 (int8x16_t __a, int8x16_t __b)
10146 int8x16x2_t __rv;
10147 #ifdef __ARM_BIG_ENDIAN
10148 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10149 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10150 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10151 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10152 #else
10153 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10154 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10155 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10156 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10157 #endif
10158 return __rv;
10161 __extension__ extern __inline int16x8x2_t
10162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10163 vuzpq_s16 (int16x8_t __a, int16x8_t __b)
10165 int16x8x2_t __rv;
10166 #ifdef __ARM_BIG_ENDIAN
10167 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10168 { 5, 7, 1, 3, 13, 15, 9, 11 });
10169 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10170 { 4, 6, 0, 2, 12, 14, 8, 10 });
10171 #else
10172 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10173 { 0, 2, 4, 6, 8, 10, 12, 14 });
10174 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10175 { 1, 3, 5, 7, 9, 11, 13, 15 });
10176 #endif
10177 return __rv;
10180 __extension__ extern __inline int32x4x2_t
10181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10182 vuzpq_s32 (int32x4_t __a, int32x4_t __b)
10184 int32x4x2_t __rv;
10185 #ifdef __ARM_BIG_ENDIAN
10186 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10187 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10188 #else
10189 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10190 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10191 #endif
10192 return __rv;
10195 __extension__ extern __inline float32x4x2_t
10196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10197 vuzpq_f32 (float32x4_t __a, float32x4_t __b)
10199 float32x4x2_t __rv;
10200 #ifdef __ARM_BIG_ENDIAN
10201 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10202 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10203 #else
10204 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10205 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10206 #endif
10207 return __rv;
10210 __extension__ extern __inline uint8x16x2_t
10211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10212 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
10214 uint8x16x2_t __rv;
10215 #ifdef __ARM_BIG_ENDIAN
10216 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10217 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10218 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10219 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10220 #else
10221 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10222 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10223 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10224 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10225 #endif
10226 return __rv;
10229 __extension__ extern __inline uint16x8x2_t
10230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10231 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
10233 uint16x8x2_t __rv;
10234 #ifdef __ARM_BIG_ENDIAN
10235 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10236 { 5, 7, 1, 3, 13, 15, 9, 11 });
10237 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10238 { 4, 6, 0, 2, 12, 14, 8, 10 });
10239 #else
10240 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10241 { 0, 2, 4, 6, 8, 10, 12, 14 });
10242 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10243 { 1, 3, 5, 7, 9, 11, 13, 15 });
10244 #endif
10245 return __rv;
10248 __extension__ extern __inline uint32x4x2_t
10249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10250 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
10252 uint32x4x2_t __rv;
10253 #ifdef __ARM_BIG_ENDIAN
10254 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 3, 1, 7, 5 });
10255 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 0, 6, 4 });
10256 #else
10257 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
10258 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
10259 #endif
10260 return __rv;
10263 __extension__ extern __inline poly8x16x2_t
10264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10265 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
10267 poly8x16x2_t __rv;
10268 #ifdef __ARM_BIG_ENDIAN
10269 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10270 { 9, 11, 13, 15, 1, 3, 5, 7, 25, 27, 29, 31, 17, 19, 21, 23 });
10271 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10272 { 8, 10, 12, 14, 0, 2, 4, 6, 24, 26, 28, 30, 16, 18, 20, 22 });
10273 #else
10274 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
10275 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
10276 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
10277 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
10278 #endif
10279 return __rv;
10282 __extension__ extern __inline poly16x8x2_t
10283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10284 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
10286 poly16x8x2_t __rv;
10287 #ifdef __ARM_BIG_ENDIAN
10288 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10289 { 5, 7, 1, 3, 13, 15, 9, 11 });
10290 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10291 { 4, 6, 0, 2, 12, 14, 8, 10 });
10292 #else
10293 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
10294 { 0, 2, 4, 6, 8, 10, 12, 14 });
10295 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
10296 { 1, 3, 5, 7, 9, 11, 13, 15 });
10297 #endif
10298 return __rv;
10301 #pragma GCC push_options
10302 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10303 __extension__ extern __inline poly64x1_t
10304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10305 vld1_p64 (const poly64_t * __a)
10307 return (poly64x1_t) { *__a };
10310 #pragma GCC pop_options
10311 __extension__ extern __inline int8x8_t
10312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10313 vld1_s8 (const int8_t * __a)
10315 return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10318 __extension__ extern __inline int16x4_t
10319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10320 vld1_s16 (const int16_t * __a)
10322 return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10325 __extension__ extern __inline int32x2_t
10326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10327 vld1_s32 (const int32_t * __a)
10329 return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10332 __extension__ extern __inline int64x1_t
10333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10334 vld1_s64 (const int64_t * __a)
10336 return (int64x1_t) { *__a };
10339 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10340 __extension__ extern __inline float16x4_t
10341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10342 vld1_f16 (const float16_t * __a)
10344 return __builtin_neon_vld1v4hf (__a);
10346 #endif
10348 __extension__ extern __inline float32x2_t
10349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10350 vld1_f32 (const float32_t * __a)
10352 return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
10355 __extension__ extern __inline uint8x8_t
10356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10357 vld1_u8 (const uint8_t * __a)
10359 return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10362 __extension__ extern __inline uint16x4_t
10363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10364 vld1_u16 (const uint16_t * __a)
10366 return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10369 __extension__ extern __inline uint32x2_t
10370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10371 vld1_u32 (const uint32_t * __a)
10373 return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
10376 __extension__ extern __inline uint64x1_t
10377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10378 vld1_u64 (const uint64_t * __a)
10380 return (uint64x1_t) { *__a };
10383 __extension__ extern __inline poly8x8_t
10384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10385 vld1_p8 (const poly8_t * __a)
10387 return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
10390 __extension__ extern __inline poly16x4_t
10391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10392 vld1_p16 (const poly16_t * __a)
10394 return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
10397 #pragma GCC push_options
10398 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10399 __extension__ extern __inline poly64x2_t
10400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10401 vld1q_p64 (const poly64_t * __a)
10403 return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10406 #pragma GCC pop_options
10407 __extension__ extern __inline int8x16_t
10408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10409 vld1q_s8 (const int8_t * __a)
10411 return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10414 __extension__ extern __inline int16x8_t
10415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10416 vld1q_s16 (const int16_t * __a)
10418 return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10421 __extension__ extern __inline int32x4_t
10422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10423 vld1q_s32 (const int32_t * __a)
10425 return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10428 __extension__ extern __inline int64x2_t
10429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10430 vld1q_s64 (const int64_t * __a)
10432 return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10435 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10436 __extension__ extern __inline float16x8_t
10437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10438 vld1q_f16 (const float16_t * __a)
10440 return __builtin_neon_vld1v8hf (__a);
10442 #endif
10444 __extension__ extern __inline float32x4_t
10445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10446 vld1q_f32 (const float32_t * __a)
10448 return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
10451 __extension__ extern __inline uint8x16_t
10452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10453 vld1q_u8 (const uint8_t * __a)
10455 return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10458 __extension__ extern __inline uint16x8_t
10459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10460 vld1q_u16 (const uint16_t * __a)
10462 return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10465 __extension__ extern __inline uint32x4_t
10466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10467 vld1q_u32 (const uint32_t * __a)
10469 return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
10472 __extension__ extern __inline uint64x2_t
10473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10474 vld1q_u64 (const uint64_t * __a)
10476 return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
10479 __extension__ extern __inline poly8x16_t
10480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10481 vld1q_p8 (const poly8_t * __a)
10483 return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
10486 __extension__ extern __inline poly16x8_t
10487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10488 vld1q_p16 (const poly16_t * __a)
10490 return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
10493 __extension__ extern __inline int8x8_t
10494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10495 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
10497 return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
10500 __extension__ extern __inline int16x4_t
10501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10502 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
10504 return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
10507 __extension__ extern __inline int32x2_t
10508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10509 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
10511 return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
10514 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10515 __extension__ extern __inline float16x4_t
10516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10517 vld1_lane_f16 (const float16_t * __a, float16x4_t __b, const int __c)
10519 return vset_lane_f16 (*__a, __b, __c);
10521 #endif
10523 __extension__ extern __inline float32x2_t
10524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10525 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
10527 return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
10530 __extension__ extern __inline uint8x8_t
10531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10532 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
10534 return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10537 __extension__ extern __inline uint16x4_t
10538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10539 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
10541 return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10544 __extension__ extern __inline uint32x2_t
10545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10546 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
10548 return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
10551 __extension__ extern __inline poly8x8_t
10552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10553 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
10555 return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
10558 __extension__ extern __inline poly16x4_t
10559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10560 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
10562 return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
10565 #pragma GCC push_options
10566 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10567 __extension__ extern __inline poly64x1_t
10568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10569 vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c)
10571 return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10574 #pragma GCC pop_options
10575 __extension__ extern __inline int64x1_t
10576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10577 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
10579 return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
10582 __extension__ extern __inline uint64x1_t
10583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10584 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
10586 return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
10589 __extension__ extern __inline int8x16_t
10590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10591 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
10593 return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
10596 __extension__ extern __inline int16x8_t
10597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10598 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
10600 return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
10603 __extension__ extern __inline int32x4_t
10604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10605 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
10607 return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
10610 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10611 __extension__ extern __inline float16x8_t
10612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10613 vld1q_lane_f16 (const float16_t * __a, float16x8_t __b, const int __c)
10615 return vsetq_lane_f16 (*__a, __b, __c);
10617 #endif
10619 __extension__ extern __inline float32x4_t
10620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10621 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
10623 return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
10626 __extension__ extern __inline uint8x16_t
10627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10628 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
10630 return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10633 __extension__ extern __inline uint16x8_t
10634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10635 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
10637 return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10640 __extension__ extern __inline uint32x4_t
10641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10642 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
10644 return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
10647 __extension__ extern __inline poly8x16_t
10648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10649 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
10651 return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
10654 __extension__ extern __inline poly16x8_t
10655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10656 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
10658 return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
10661 #pragma GCC push_options
10662 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10663 __extension__ extern __inline poly64x2_t
10664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10665 vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c)
10667 return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10670 #pragma GCC pop_options
10671 __extension__ extern __inline int64x2_t
10672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10673 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
10675 return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
10678 __extension__ extern __inline uint64x2_t
10679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10680 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
10682 return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
10685 __extension__ extern __inline int8x8_t
10686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10687 vld1_dup_s8 (const int8_t * __a)
10689 return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10692 __extension__ extern __inline int16x4_t
10693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10694 vld1_dup_s16 (const int16_t * __a)
10696 return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10699 __extension__ extern __inline int32x2_t
10700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10701 vld1_dup_s32 (const int32_t * __a)
10703 return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10706 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10707 __extension__ extern __inline float16x4_t
10708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10709 vld1_dup_f16 (const float16_t * __a)
10711 float16_t __f = *__a;
10712 return (float16x4_t) { __f, __f, __f, __f };
10714 #endif
10716 __extension__ extern __inline float32x2_t
10717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10718 vld1_dup_f32 (const float32_t * __a)
10720 return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
10723 __extension__ extern __inline uint8x8_t
10724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10725 vld1_dup_u8 (const uint8_t * __a)
10727 return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10730 __extension__ extern __inline uint16x4_t
10731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10732 vld1_dup_u16 (const uint16_t * __a)
10734 return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10737 __extension__ extern __inline uint32x2_t
10738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10739 vld1_dup_u32 (const uint32_t * __a)
10741 return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
10744 __extension__ extern __inline poly8x8_t
10745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10746 vld1_dup_p8 (const poly8_t * __a)
10748 return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
10751 __extension__ extern __inline poly16x4_t
10752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10753 vld1_dup_p16 (const poly16_t * __a)
10755 return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
10758 #pragma GCC push_options
10759 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10760 __extension__ extern __inline poly64x1_t
10761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10762 vld1_dup_p64 (const poly64_t * __a)
10764 return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10767 #pragma GCC pop_options
10768 __extension__ extern __inline int64x1_t
10769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10770 vld1_dup_s64 (const int64_t * __a)
10772 return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10775 __extension__ extern __inline uint64x1_t
10776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10777 vld1_dup_u64 (const uint64_t * __a)
10779 return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
10782 __extension__ extern __inline int8x16_t
10783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10784 vld1q_dup_s8 (const int8_t * __a)
10786 return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10789 __extension__ extern __inline int16x8_t
10790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10791 vld1q_dup_s16 (const int16_t * __a)
10793 return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10796 __extension__ extern __inline int32x4_t
10797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10798 vld1q_dup_s32 (const int32_t * __a)
10800 return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10803 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10804 __extension__ extern __inline float16x8_t
10805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10806 vld1q_dup_f16 (const float16_t * __a)
10808 float16_t __f = *__a;
10809 return (float16x8_t) { __f, __f, __f, __f, __f, __f, __f, __f };
10811 #endif
10813 __extension__ extern __inline float32x4_t
10814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10815 vld1q_dup_f32 (const float32_t * __a)
10817 return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
10820 __extension__ extern __inline uint8x16_t
10821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10822 vld1q_dup_u8 (const uint8_t * __a)
10824 return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10827 __extension__ extern __inline uint16x8_t
10828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10829 vld1q_dup_u16 (const uint16_t * __a)
10831 return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10834 __extension__ extern __inline uint32x4_t
10835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10836 vld1q_dup_u32 (const uint32_t * __a)
10838 return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
10841 __extension__ extern __inline poly8x16_t
10842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10843 vld1q_dup_p8 (const poly8_t * __a)
10845 return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
10848 __extension__ extern __inline poly16x8_t
10849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10850 vld1q_dup_p16 (const poly16_t * __a)
10852 return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
10855 #pragma GCC push_options
10856 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10857 __extension__ extern __inline poly64x2_t
10858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10859 vld1q_dup_p64 (const poly64_t * __a)
10861 return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10864 #pragma GCC pop_options
10865 __extension__ extern __inline int64x2_t
10866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10867 vld1q_dup_s64 (const int64_t * __a)
10869 return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10872 __extension__ extern __inline uint64x2_t
10873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10874 vld1q_dup_u64 (const uint64_t * __a)
10876 return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
10879 #pragma GCC push_options
10880 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10881 __extension__ extern __inline void
10882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10883 vst1_p64 (poly64_t * __a, poly64x1_t __b)
10885 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10888 #pragma GCC pop_options
10889 __extension__ extern __inline void
10890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10891 vst1_s8 (int8_t * __a, int8x8_t __b)
10893 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
10896 __extension__ extern __inline void
10897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10898 vst1_s16 (int16_t * __a, int16x4_t __b)
10900 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
10903 __extension__ extern __inline void
10904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10905 vst1_s32 (int32_t * __a, int32x2_t __b)
10907 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
10910 __extension__ extern __inline void
10911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10912 vst1_s64 (int64_t * __a, int64x1_t __b)
10914 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
10917 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
10918 __extension__ extern __inline void
10919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10920 vst1_f16 (float16_t * __a, float16x4_t __b)
10922 __builtin_neon_vst1v4hf (__a, __b);
10924 #endif
10926 __extension__ extern __inline void
10927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10928 vst1_f32 (float32_t * __a, float32x2_t __b)
10930 __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
10933 __extension__ extern __inline void
10934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10935 vst1_u8 (uint8_t * __a, uint8x8_t __b)
10937 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10940 __extension__ extern __inline void
10941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10942 vst1_u16 (uint16_t * __a, uint16x4_t __b)
10944 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10947 __extension__ extern __inline void
10948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10949 vst1_u32 (uint32_t * __a, uint32x2_t __b)
10951 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
10954 __extension__ extern __inline void
10955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10956 vst1_u64 (uint64_t * __a, uint64x1_t __b)
10958 __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
10961 __extension__ extern __inline void
10962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10963 vst1_p8 (poly8_t * __a, poly8x8_t __b)
10965 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
10968 __extension__ extern __inline void
10969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10970 vst1_p16 (poly16_t * __a, poly16x4_t __b)
10972 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
10975 #pragma GCC push_options
10976 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
10977 __extension__ extern __inline void
10978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10979 vst1q_p64 (poly64_t * __a, poly64x2_t __b)
10981 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
10984 #pragma GCC pop_options
10985 __extension__ extern __inline void
10986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10987 vst1q_s8 (int8_t * __a, int8x16_t __b)
10989 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
10992 __extension__ extern __inline void
10993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
10994 vst1q_s16 (int16_t * __a, int16x8_t __b)
10996 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
10999 __extension__ extern __inline void
11000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11001 vst1q_s32 (int32_t * __a, int32x4_t __b)
11003 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
11006 __extension__ extern __inline void
11007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11008 vst1q_s64 (int64_t * __a, int64x2_t __b)
11010 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
11013 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11014 __extension__ extern __inline void
11015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11016 vst1q_f16 (float16_t * __a, float16x8_t __b)
11018 __builtin_neon_vst1v8hf (__a, __b);
11020 #endif
11022 __extension__ extern __inline void
11023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11024 vst1q_f32 (float32_t * __a, float32x4_t __b)
11026 __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
11029 __extension__ extern __inline void
11030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11031 vst1q_u8 (uint8_t * __a, uint8x16_t __b)
11033 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
11036 __extension__ extern __inline void
11037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11038 vst1q_u16 (uint16_t * __a, uint16x8_t __b)
11040 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
11043 __extension__ extern __inline void
11044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11045 vst1q_u32 (uint32_t * __a, uint32x4_t __b)
11047 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
11050 __extension__ extern __inline void
11051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11052 vst1q_u64 (uint64_t * __a, uint64x2_t __b)
11054 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
11057 __extension__ extern __inline void
11058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11059 vst1q_p8 (poly8_t * __a, poly8x16_t __b)
11061 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
11064 __extension__ extern __inline void
11065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11066 vst1q_p16 (poly16_t * __a, poly16x8_t __b)
11068 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
11071 __extension__ extern __inline void
11072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11073 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
11075 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
11078 __extension__ extern __inline void
11079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11080 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
11082 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
11085 __extension__ extern __inline void
11086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11087 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
11089 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
11092 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11093 __extension__ extern __inline void
11094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11095 vst1_lane_f16 (float16_t * __a, float16x4_t __b, const int __c)
11097 __builtin_neon_vst1_lanev4hf (__a, __b, __c);
11099 #endif
11101 __extension__ extern __inline void
11102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11103 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
11105 __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
11108 __extension__ extern __inline void
11109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11110 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
11112 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11115 __extension__ extern __inline void
11116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11117 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
11119 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11122 __extension__ extern __inline void
11123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11124 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
11126 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
11129 __extension__ extern __inline void
11130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11131 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
11133 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
11136 __extension__ extern __inline void
11137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11138 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
11140 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
11143 #pragma GCC push_options
11144 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11145 __extension__ extern __inline void
11146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11147 vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c)
11149 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11152 #pragma GCC pop_options
11153 __extension__ extern __inline void
11154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11155 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
11157 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
11160 __extension__ extern __inline void
11161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11162 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
11164 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
11167 __extension__ extern __inline void
11168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11169 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
11171 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
11174 __extension__ extern __inline void
11175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11176 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
11178 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
11181 __extension__ extern __inline void
11182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11183 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
11185 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
11188 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11189 __extension__ extern __inline void
11190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11191 vst1q_lane_f16 (float16_t * __a, float16x8_t __b, const int __c)
11193 __builtin_neon_vst1_lanev8hf (__a, __b, __c);
11195 #endif
11197 __extension__ extern __inline void
11198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11199 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
11201 __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
11204 __extension__ extern __inline void
11205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11206 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
11208 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11211 __extension__ extern __inline void
11212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11213 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
11215 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11218 __extension__ extern __inline void
11219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11220 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
11222 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
11225 __extension__ extern __inline void
11226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11227 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
11229 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
11232 __extension__ extern __inline void
11233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11234 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
11236 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
11239 #pragma GCC push_options
11240 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11241 __extension__ extern __inline void
11242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11243 vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c)
11245 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11248 #pragma GCC pop_options
11249 __extension__ extern __inline void
11250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11251 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
11253 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
11256 __extension__ extern __inline void
11257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11258 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
11260 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
11263 __extension__ extern __inline int8x8x2_t
11264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11265 vld2_s8 (const int8_t * __a)
11267 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11268 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11269 return __rv.__i;
11272 __extension__ extern __inline int16x4x2_t
11273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11274 vld2_s16 (const int16_t * __a)
11276 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11277 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11278 return __rv.__i;
11281 __extension__ extern __inline int32x2x2_t
11282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11283 vld2_s32 (const int32_t * __a)
11285 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11286 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11287 return __rv.__i;
11290 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11291 __extension__ extern __inline float16x4x2_t
11292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11293 vld2_f16 (const float16_t * __a)
11295 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11296 __rv.__o = __builtin_neon_vld2v4hf (__a);
11297 return __rv.__i;
11299 #endif
11301 __extension__ extern __inline float32x2x2_t
11302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11303 vld2_f32 (const float32_t * __a)
11305 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11306 __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
11307 return __rv.__i;
11310 __extension__ extern __inline uint8x8x2_t
11311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11312 vld2_u8 (const uint8_t * __a)
11314 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11315 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11316 return __rv.__i;
11319 __extension__ extern __inline uint16x4x2_t
11320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11321 vld2_u16 (const uint16_t * __a)
11323 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11324 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11325 return __rv.__i;
11328 __extension__ extern __inline uint32x2x2_t
11329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11330 vld2_u32 (const uint32_t * __a)
11332 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11333 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
11334 return __rv.__i;
11337 __extension__ extern __inline poly8x8x2_t
11338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11339 vld2_p8 (const poly8_t * __a)
11341 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11342 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
11343 return __rv.__i;
11346 __extension__ extern __inline poly16x4x2_t
11347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11348 vld2_p16 (const poly16_t * __a)
11350 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11351 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
11352 return __rv.__i;
11355 #pragma GCC push_options
11356 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11357 __extension__ extern __inline poly64x1x2_t
11358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11359 vld2_p64 (const poly64_t * __a)
11361 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11362 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11363 return __rv.__i;
11366 #pragma GCC pop_options
11367 __extension__ extern __inline int64x1x2_t
11368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11369 vld2_s64 (const int64_t * __a)
11371 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11372 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11373 return __rv.__i;
11376 __extension__ extern __inline uint64x1x2_t
11377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11378 vld2_u64 (const uint64_t * __a)
11380 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11381 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
11382 return __rv.__i;
11385 __extension__ extern __inline int8x16x2_t
11386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11387 vld2q_s8 (const int8_t * __a)
11389 union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11390 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11391 return __rv.__i;
11394 __extension__ extern __inline int16x8x2_t
11395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11396 vld2q_s16 (const int16_t * __a)
11398 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11399 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11400 return __rv.__i;
11403 __extension__ extern __inline int32x4x2_t
11404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11405 vld2q_s32 (const int32_t * __a)
11407 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11408 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11409 return __rv.__i;
11412 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11413 __extension__ extern __inline float16x8x2_t
11414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11415 vld2q_f16 (const float16_t * __a)
11417 union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11418 __rv.__o = __builtin_neon_vld2v8hf (__a);
11419 return __rv.__i;
11421 #endif
11423 __extension__ extern __inline float32x4x2_t
11424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11425 vld2q_f32 (const float32_t * __a)
11427 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11428 __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
11429 return __rv.__i;
11432 __extension__ extern __inline uint8x16x2_t
11433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11434 vld2q_u8 (const uint8_t * __a)
11436 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11437 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11438 return __rv.__i;
11441 __extension__ extern __inline uint16x8x2_t
11442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11443 vld2q_u16 (const uint16_t * __a)
11445 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11446 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11447 return __rv.__i;
11450 __extension__ extern __inline uint32x4x2_t
11451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11452 vld2q_u32 (const uint32_t * __a)
11454 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11455 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
11456 return __rv.__i;
11459 __extension__ extern __inline poly8x16x2_t
11460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11461 vld2q_p8 (const poly8_t * __a)
11463 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
11464 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
11465 return __rv.__i;
11468 __extension__ extern __inline poly16x8x2_t
11469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11470 vld2q_p16 (const poly16_t * __a)
11472 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11473 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
11474 return __rv.__i;
11477 __extension__ extern __inline int8x8x2_t
11478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11479 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
11481 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11482 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11483 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11484 return __rv.__i;
11487 __extension__ extern __inline int16x4x2_t
11488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11489 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
11491 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11492 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11493 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11494 return __rv.__i;
11497 __extension__ extern __inline int32x2x2_t
11498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11499 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
11501 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11502 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11503 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11504 return __rv.__i;
11507 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11508 __extension__ extern __inline float16x4x2_t
11509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11510 vld2_lane_f16 (const float16_t * __a, float16x4x2_t __b, const int __c)
11512 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11513 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11514 __rv.__o = __builtin_neon_vld2_lanev4hf ( __a, __bu.__o, __c);
11515 return __rv.__i;
11517 #endif
11519 __extension__ extern __inline float32x2x2_t
11520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11521 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
11523 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11524 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11525 __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11526 return __rv.__i;
11529 __extension__ extern __inline uint8x8x2_t
11530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11531 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
11533 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11534 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11535 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11536 return __rv.__i;
11539 __extension__ extern __inline uint16x4x2_t
11540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11541 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
11543 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11544 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11545 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11546 return __rv.__i;
11549 __extension__ extern __inline uint32x2x2_t
11550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11551 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
11553 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11554 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11555 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11556 return __rv.__i;
11559 __extension__ extern __inline poly8x8x2_t
11560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11561 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
11563 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11564 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11565 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
11566 return __rv.__i;
11569 __extension__ extern __inline poly16x4x2_t
11570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11571 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
11573 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11574 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11575 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11576 return __rv.__i;
11579 __extension__ extern __inline int16x8x2_t
11580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11581 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
11583 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11584 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11585 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11586 return __rv.__i;
11589 __extension__ extern __inline int32x4x2_t
11590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11591 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
11593 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11594 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11595 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11596 return __rv.__i;
11599 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11600 __extension__ extern __inline float16x8x2_t
11601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11602 vld2q_lane_f16 (const float16_t * __a, float16x8x2_t __b, const int __c)
11604 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11605 union { float16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11606 __rv.__o = __builtin_neon_vld2_lanev8hf (__a, __bu.__o, __c);
11607 return __rv.__i;
11609 #endif
11611 __extension__ extern __inline float32x4x2_t
11612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11613 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
11615 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11616 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11617 __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
11618 return __rv.__i;
11621 __extension__ extern __inline uint16x8x2_t
11622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11623 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
11625 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11626 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11627 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11628 return __rv.__i;
11631 __extension__ extern __inline uint32x4x2_t
11632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11633 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
11635 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11636 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
11637 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
11638 return __rv.__i;
11641 __extension__ extern __inline poly16x8x2_t
11642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11643 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
11645 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11646 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
11647 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
11648 return __rv.__i;
11651 __extension__ extern __inline int8x8x2_t
11652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11653 vld2_dup_s8 (const int8_t * __a)
11655 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11656 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11657 return __rv.__i;
11660 __extension__ extern __inline int16x4x2_t
11661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11662 vld2_dup_s16 (const int16_t * __a)
11664 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11665 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11666 return __rv.__i;
11669 __extension__ extern __inline int32x2x2_t
11670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11671 vld2_dup_s32 (const int32_t * __a)
11673 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11674 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11675 return __rv.__i;
11678 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11679 __extension__ extern __inline float16x4x2_t
11680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11681 vld2_dup_f16 (const float16_t * __a)
11683 union { float16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11684 __rv.__o = __builtin_neon_vld2_dupv4hf (__a);
11685 return __rv.__i;
11687 #endif
11689 __extension__ extern __inline float32x2x2_t
11690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11691 vld2_dup_f32 (const float32_t * __a)
11693 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11694 __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
11695 return __rv.__i;
11698 __extension__ extern __inline uint8x8x2_t
11699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11700 vld2_dup_u8 (const uint8_t * __a)
11702 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11703 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11704 return __rv.__i;
11707 __extension__ extern __inline uint16x4x2_t
11708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11709 vld2_dup_u16 (const uint16_t * __a)
11711 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11712 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11713 return __rv.__i;
11716 __extension__ extern __inline uint32x2x2_t
11717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11718 vld2_dup_u32 (const uint32_t * __a)
11720 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
11721 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
11722 return __rv.__i;
11725 __extension__ extern __inline poly8x8x2_t
11726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11727 vld2_dup_p8 (const poly8_t * __a)
11729 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
11730 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
11731 return __rv.__i;
11734 __extension__ extern __inline poly16x4x2_t
11735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11736 vld2_dup_p16 (const poly16_t * __a)
11738 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
11739 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
11740 return __rv.__i;
11743 #pragma GCC push_options
11744 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11745 __extension__ extern __inline poly64x1x2_t
11746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11747 vld2_dup_p64 (const poly64_t * __a)
11749 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11750 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11751 return __rv.__i;
11754 #pragma GCC pop_options
11755 __extension__ extern __inline int64x1x2_t
11756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11757 vld2_dup_s64 (const int64_t * __a)
11759 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11760 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11761 return __rv.__i;
11764 __extension__ extern __inline uint64x1x2_t
11765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11766 vld2_dup_u64 (const uint64_t * __a)
11768 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
11769 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
11770 return __rv.__i;
11773 __extension__ extern __inline void
11774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11775 vst2_s8 (int8_t * __a, int8x8x2_t __b)
11777 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11778 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11781 __extension__ extern __inline void
11782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11783 vst2_s16 (int16_t * __a, int16x4x2_t __b)
11785 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11786 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11789 __extension__ extern __inline void
11790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11791 vst2_s32 (int32_t * __a, int32x2x2_t __b)
11793 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11794 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11797 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11798 __extension__ extern __inline void
11799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11800 vst2_f16 (float16_t * __a, float16x4x2_t __b)
11802 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11803 __builtin_neon_vst2v4hf (__a, __bu.__o);
11805 #endif
11807 __extension__ extern __inline void
11808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11809 vst2_f32 (float32_t * __a, float32x2x2_t __b)
11811 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11812 __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
11815 __extension__ extern __inline void
11816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11817 vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
11819 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11820 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11823 __extension__ extern __inline void
11824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11825 vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
11827 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11828 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11831 __extension__ extern __inline void
11832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11833 vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
11835 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11836 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
11839 __extension__ extern __inline void
11840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11841 vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
11843 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11844 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11847 __extension__ extern __inline void
11848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11849 vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
11851 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11852 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11855 #pragma GCC push_options
11856 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
11857 __extension__ extern __inline void
11858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11859 vst2_p64 (poly64_t * __a, poly64x1x2_t __b)
11861 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11862 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11865 #pragma GCC pop_options
11866 __extension__ extern __inline void
11867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11868 vst2_s64 (int64_t * __a, int64x1x2_t __b)
11870 union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11871 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11874 __extension__ extern __inline void
11875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11876 vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
11878 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11879 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
11882 __extension__ extern __inline void
11883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11884 vst2q_s8 (int8_t * __a, int8x16x2_t __b)
11886 union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11887 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11890 __extension__ extern __inline void
11891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11892 vst2q_s16 (int16_t * __a, int16x8x2_t __b)
11894 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11895 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11898 __extension__ extern __inline void
11899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11900 vst2q_s32 (int32_t * __a, int32x4x2_t __b)
11902 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11903 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11906 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11907 __extension__ extern __inline void
11908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11909 vst2q_f16 (float16_t * __a, float16x8x2_t __b)
11911 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11912 __builtin_neon_vst2v8hf (__a, __bu.__o);
11914 #endif
11916 __extension__ extern __inline void
11917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11918 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
11920 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11921 __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
11924 __extension__ extern __inline void
11925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11926 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
11928 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11929 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11932 __extension__ extern __inline void
11933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11934 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
11936 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11937 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11940 __extension__ extern __inline void
11941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11942 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
11944 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11945 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
11948 __extension__ extern __inline void
11949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11950 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
11952 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11953 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11956 __extension__ extern __inline void
11957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11958 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
11960 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
11961 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11964 __extension__ extern __inline void
11965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11966 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
11968 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11969 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11972 __extension__ extern __inline void
11973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11974 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
11976 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11977 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11980 __extension__ extern __inline void
11981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11982 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
11984 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11985 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11988 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
11989 __extension__ extern __inline void
11990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11991 vst2_lane_f16 (float16_t * __a, float16x4x2_t __b, const int __c)
11993 union { float16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
11994 __builtin_neon_vst2_lanev4hf (__a, __bu.__o, __c);
11996 #endif
11998 __extension__ extern __inline void
11999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12000 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
12002 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
12003 __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12006 __extension__ extern __inline void
12007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12008 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
12010 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
12011 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12014 __extension__ extern __inline void
12015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12016 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
12018 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
12019 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12022 __extension__ extern __inline void
12023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12024 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
12026 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
12027 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12030 __extension__ extern __inline void
12031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12032 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
12034 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
12035 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12038 __extension__ extern __inline void
12039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12040 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
12042 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
12043 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12046 __extension__ extern __inline void
12047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12048 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
12050 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12051 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12054 __extension__ extern __inline void
12055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12056 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
12058 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12059 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12062 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12063 __extension__ extern __inline void
12064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12065 vst2q_lane_f16 (float16_t * __a, float16x8x2_t __b, const int __c)
12067 union { float16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12068 __builtin_neon_vst2_lanev8hf (__a, __bu.__o, __c);
12070 #endif
12072 __extension__ extern __inline void
12073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12074 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
12076 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12077 __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12080 __extension__ extern __inline void
12081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12082 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
12084 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12085 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12088 __extension__ extern __inline void
12089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12090 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
12092 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12093 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12096 __extension__ extern __inline void
12097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12098 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
12100 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
12101 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12104 __extension__ extern __inline int8x8x3_t
12105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12106 vld3_s8 (const int8_t * __a)
12108 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12109 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12110 return __rv.__i;
12113 __extension__ extern __inline int16x4x3_t
12114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12115 vld3_s16 (const int16_t * __a)
12117 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12118 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12119 return __rv.__i;
12122 __extension__ extern __inline int32x2x3_t
12123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12124 vld3_s32 (const int32_t * __a)
12126 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12127 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12128 return __rv.__i;
12131 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12132 __extension__ extern __inline float16x4x3_t
12133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12134 vld3_f16 (const float16_t * __a)
12136 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12137 __rv.__o = __builtin_neon_vld3v4hf (__a);
12138 return __rv.__i;
12140 #endif
12142 __extension__ extern __inline float32x2x3_t
12143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12144 vld3_f32 (const float32_t * __a)
12146 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12147 __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
12148 return __rv.__i;
12151 __extension__ extern __inline uint8x8x3_t
12152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12153 vld3_u8 (const uint8_t * __a)
12155 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12156 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12157 return __rv.__i;
12160 __extension__ extern __inline uint16x4x3_t
12161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12162 vld3_u16 (const uint16_t * __a)
12164 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12165 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12166 return __rv.__i;
12169 __extension__ extern __inline uint32x2x3_t
12170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12171 vld3_u32 (const uint32_t * __a)
12173 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12174 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
12175 return __rv.__i;
12178 __extension__ extern __inline poly8x8x3_t
12179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12180 vld3_p8 (const poly8_t * __a)
12182 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12183 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
12184 return __rv.__i;
12187 __extension__ extern __inline poly16x4x3_t
12188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12189 vld3_p16 (const poly16_t * __a)
12191 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12192 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
12193 return __rv.__i;
12196 #pragma GCC push_options
12197 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12198 __extension__ extern __inline poly64x1x3_t
12199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12200 vld3_p64 (const poly64_t * __a)
12202 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12203 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12204 return __rv.__i;
12207 #pragma GCC pop_options
12208 __extension__ extern __inline int64x1x3_t
12209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12210 vld3_s64 (const int64_t * __a)
12212 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12213 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12214 return __rv.__i;
12217 __extension__ extern __inline uint64x1x3_t
12218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12219 vld3_u64 (const uint64_t * __a)
12221 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12222 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
12223 return __rv.__i;
12226 __extension__ extern __inline int8x16x3_t
12227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12228 vld3q_s8 (const int8_t * __a)
12230 union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12231 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12232 return __rv.__i;
12235 __extension__ extern __inline int16x8x3_t
12236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12237 vld3q_s16 (const int16_t * __a)
12239 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12240 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12241 return __rv.__i;
12244 __extension__ extern __inline int32x4x3_t
12245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12246 vld3q_s32 (const int32_t * __a)
12248 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12249 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12250 return __rv.__i;
12253 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12254 __extension__ extern __inline float16x8x3_t
12255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12256 vld3q_f16 (const float16_t * __a)
12258 union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12259 __rv.__o = __builtin_neon_vld3v8hf (__a);
12260 return __rv.__i;
12262 #endif
12264 __extension__ extern __inline float32x4x3_t
12265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12266 vld3q_f32 (const float32_t * __a)
12268 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12269 __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
12270 return __rv.__i;
12273 __extension__ extern __inline uint8x16x3_t
12274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12275 vld3q_u8 (const uint8_t * __a)
12277 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12278 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12279 return __rv.__i;
12282 __extension__ extern __inline uint16x8x3_t
12283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12284 vld3q_u16 (const uint16_t * __a)
12286 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12287 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12288 return __rv.__i;
12291 __extension__ extern __inline uint32x4x3_t
12292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12293 vld3q_u32 (const uint32_t * __a)
12295 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12296 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
12297 return __rv.__i;
12300 __extension__ extern __inline poly8x16x3_t
12301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12302 vld3q_p8 (const poly8_t * __a)
12304 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
12305 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
12306 return __rv.__i;
12309 __extension__ extern __inline poly16x8x3_t
12310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12311 vld3q_p16 (const poly16_t * __a)
12313 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12314 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
12315 return __rv.__i;
12318 __extension__ extern __inline int8x8x3_t
12319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12320 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
12322 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12323 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12324 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12325 return __rv.__i;
12328 __extension__ extern __inline int16x4x3_t
12329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12330 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
12332 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12333 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12334 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12335 return __rv.__i;
12338 __extension__ extern __inline int32x2x3_t
12339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12340 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
12342 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12343 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12344 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12345 return __rv.__i;
12348 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12349 __extension__ extern __inline float16x4x3_t
12350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12351 vld3_lane_f16 (const float16_t * __a, float16x4x3_t __b, const int __c)
12353 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12354 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12355 __rv.__o = __builtin_neon_vld3_lanev4hf (__a, __bu.__o, __c);
12356 return __rv.__i;
12358 #endif
12360 __extension__ extern __inline float32x2x3_t
12361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12362 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
12364 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12365 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12366 __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12367 return __rv.__i;
12370 __extension__ extern __inline uint8x8x3_t
12371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12372 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
12374 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12375 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12376 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12377 return __rv.__i;
12380 __extension__ extern __inline uint16x4x3_t
12381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12382 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
12384 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12385 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12386 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12387 return __rv.__i;
12390 __extension__ extern __inline uint32x2x3_t
12391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12392 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
12394 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12395 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12396 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12397 return __rv.__i;
12400 __extension__ extern __inline poly8x8x3_t
12401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12402 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
12404 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12405 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12406 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
12407 return __rv.__i;
12410 __extension__ extern __inline poly16x4x3_t
12411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12412 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
12414 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12415 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12416 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12417 return __rv.__i;
12420 __extension__ extern __inline int16x8x3_t
12421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12422 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
12424 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12425 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12426 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12427 return __rv.__i;
12430 __extension__ extern __inline int32x4x3_t
12431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12432 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
12434 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12435 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12436 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12437 return __rv.__i;
12440 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12441 __extension__ extern __inline float16x8x3_t
12442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12443 vld3q_lane_f16 (const float16_t * __a, float16x8x3_t __b, const int __c)
12445 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12446 union { float16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12447 __rv.__o = __builtin_neon_vld3_lanev8hf (__a, __bu.__o, __c);
12448 return __rv.__i;
12450 #endif
12452 __extension__ extern __inline float32x4x3_t
12453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12454 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
12456 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12457 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12458 __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
12459 return __rv.__i;
12462 __extension__ extern __inline uint16x8x3_t
12463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12464 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
12466 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12467 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12468 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12469 return __rv.__i;
12472 __extension__ extern __inline uint32x4x3_t
12473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12474 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
12476 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12477 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
12478 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
12479 return __rv.__i;
12482 __extension__ extern __inline poly16x8x3_t
12483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12484 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
12486 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12487 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
12488 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
12489 return __rv.__i;
12492 __extension__ extern __inline int8x8x3_t
12493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12494 vld3_dup_s8 (const int8_t * __a)
12496 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12497 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12498 return __rv.__i;
12501 __extension__ extern __inline int16x4x3_t
12502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12503 vld3_dup_s16 (const int16_t * __a)
12505 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12506 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12507 return __rv.__i;
12510 __extension__ extern __inline int32x2x3_t
12511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12512 vld3_dup_s32 (const int32_t * __a)
12514 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12515 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12516 return __rv.__i;
12519 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12520 __extension__ extern __inline float16x4x3_t
12521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12522 vld3_dup_f16 (const float16_t * __a)
12524 union { float16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12525 __rv.__o = __builtin_neon_vld3_dupv4hf (__a);
12526 return __rv.__i;
12528 #endif
12530 __extension__ extern __inline float32x2x3_t
12531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12532 vld3_dup_f32 (const float32_t * __a)
12534 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12535 __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
12536 return __rv.__i;
12539 __extension__ extern __inline uint8x8x3_t
12540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12541 vld3_dup_u8 (const uint8_t * __a)
12543 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12544 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12545 return __rv.__i;
12548 __extension__ extern __inline uint16x4x3_t
12549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12550 vld3_dup_u16 (const uint16_t * __a)
12552 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12553 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12554 return __rv.__i;
12557 __extension__ extern __inline uint32x2x3_t
12558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12559 vld3_dup_u32 (const uint32_t * __a)
12561 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
12562 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
12563 return __rv.__i;
12566 __extension__ extern __inline poly8x8x3_t
12567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12568 vld3_dup_p8 (const poly8_t * __a)
12570 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
12571 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
12572 return __rv.__i;
12575 __extension__ extern __inline poly16x4x3_t
12576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12577 vld3_dup_p16 (const poly16_t * __a)
12579 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
12580 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
12581 return __rv.__i;
12584 #pragma GCC push_options
12585 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12586 __extension__ extern __inline poly64x1x3_t
12587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12588 vld3_dup_p64 (const poly64_t * __a)
12590 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12591 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12592 return __rv.__i;
12595 #pragma GCC pop_options
12596 __extension__ extern __inline int64x1x3_t
12597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12598 vld3_dup_s64 (const int64_t * __a)
12600 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12601 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12602 return __rv.__i;
12605 __extension__ extern __inline uint64x1x3_t
12606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12607 vld3_dup_u64 (const uint64_t * __a)
12609 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
12610 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
12611 return __rv.__i;
12614 __extension__ extern __inline void
12615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12616 vst3_s8 (int8_t * __a, int8x8x3_t __b)
12618 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12619 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12622 __extension__ extern __inline void
12623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12624 vst3_s16 (int16_t * __a, int16x4x3_t __b)
12626 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12627 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12630 __extension__ extern __inline void
12631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12632 vst3_s32 (int32_t * __a, int32x2x3_t __b)
12634 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12635 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12638 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12639 __extension__ extern __inline void
12640 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12641 vst3_f16 (float16_t * __a, float16x4x3_t __b)
12643 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12644 __builtin_neon_vst3v4hf (__a, __bu.__o);
12646 #endif
12648 __extension__ extern __inline void
12649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12650 vst3_f32 (float32_t * __a, float32x2x3_t __b)
12652 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12653 __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
12656 __extension__ extern __inline void
12657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12658 vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
12660 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12661 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12664 __extension__ extern __inline void
12665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12666 vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
12668 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12669 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12672 __extension__ extern __inline void
12673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12674 vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
12676 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12677 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
12680 __extension__ extern __inline void
12681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12682 vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
12684 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12685 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
12688 __extension__ extern __inline void
12689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12690 vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
12692 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12693 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
12696 #pragma GCC push_options
12697 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
12698 __extension__ extern __inline void
12699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12700 vst3_p64 (poly64_t * __a, poly64x1x3_t __b)
12702 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12703 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12706 #pragma GCC pop_options
12707 __extension__ extern __inline void
12708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12709 vst3_s64 (int64_t * __a, int64x1x3_t __b)
12711 union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12712 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12715 __extension__ extern __inline void
12716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12717 vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
12719 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12720 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
12723 __extension__ extern __inline void
12724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12725 vst3q_s8 (int8_t * __a, int8x16x3_t __b)
12727 union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12728 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12731 __extension__ extern __inline void
12732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12733 vst3q_s16 (int16_t * __a, int16x8x3_t __b)
12735 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12736 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12739 __extension__ extern __inline void
12740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12741 vst3q_s32 (int32_t * __a, int32x4x3_t __b)
12743 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12744 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12747 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12748 __extension__ extern __inline void
12749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12750 vst3q_f16 (float16_t * __a, float16x8x3_t __b)
12752 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12753 __builtin_neon_vst3v8hf (__a, __bu.__o);
12755 #endif
12757 __extension__ extern __inline void
12758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12759 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
12761 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12762 __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
12765 __extension__ extern __inline void
12766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12767 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
12769 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12770 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12773 __extension__ extern __inline void
12774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12775 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
12777 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12778 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12781 __extension__ extern __inline void
12782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12783 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
12785 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12786 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
12789 __extension__ extern __inline void
12790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12791 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
12793 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12794 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
12797 __extension__ extern __inline void
12798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12799 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
12801 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12802 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
12805 __extension__ extern __inline void
12806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12807 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
12809 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12810 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12813 __extension__ extern __inline void
12814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12815 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
12817 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12818 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12821 __extension__ extern __inline void
12822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12823 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
12825 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12826 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12829 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12830 __extension__ extern __inline void
12831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12832 vst3_lane_f16 (float16_t * __a, float16x4x3_t __b, const int __c)
12834 union { float16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12835 __builtin_neon_vst3_lanev4hf (__a, __bu.__o, __c);
12837 #endif
12839 __extension__ extern __inline void
12840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12841 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
12843 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12844 __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12847 __extension__ extern __inline void
12848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12849 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
12851 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12852 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12855 __extension__ extern __inline void
12856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12857 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
12859 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12860 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12863 __extension__ extern __inline void
12864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12865 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
12867 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12868 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
12871 __extension__ extern __inline void
12872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12873 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
12875 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12876 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
12879 __extension__ extern __inline void
12880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12881 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
12883 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
12884 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12887 __extension__ extern __inline void
12888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12889 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
12891 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12892 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12895 __extension__ extern __inline void
12896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12897 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
12899 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12900 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12903 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12904 __extension__ extern __inline void
12905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12906 vst3q_lane_f16 (float16_t * __a, float16x8x3_t __b, const int __c)
12908 union { float16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12909 __builtin_neon_vst3_lanev8hf (__a, __bu.__o, __c);
12911 #endif
12913 __extension__ extern __inline void
12914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12915 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
12917 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12918 __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
12921 __extension__ extern __inline void
12922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12923 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
12925 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12926 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12929 __extension__ extern __inline void
12930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12931 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
12933 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12934 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
12937 __extension__ extern __inline void
12938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12939 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
12941 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
12942 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
12945 __extension__ extern __inline int8x8x4_t
12946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12947 vld4_s8 (const int8_t * __a)
12949 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12950 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12951 return __rv.__i;
12954 __extension__ extern __inline int16x4x4_t
12955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12956 vld4_s16 (const int16_t * __a)
12958 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12959 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
12960 return __rv.__i;
12963 __extension__ extern __inline int32x2x4_t
12964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12965 vld4_s32 (const int32_t * __a)
12967 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12968 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
12969 return __rv.__i;
12972 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
12973 __extension__ extern __inline float16x4x4_t
12974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12975 vld4_f16 (const float16_t * __a)
12977 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
12978 __rv.__o = __builtin_neon_vld4v4hf (__a);
12979 return __rv.__i;
12981 #endif
12983 __extension__ extern __inline float32x2x4_t
12984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12985 vld4_f32 (const float32_t * __a)
12987 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
12988 __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
12989 return __rv.__i;
12992 __extension__ extern __inline uint8x8x4_t
12993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
12994 vld4_u8 (const uint8_t * __a)
12996 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
12997 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
12998 return __rv.__i;
13001 __extension__ extern __inline uint16x4x4_t
13002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13003 vld4_u16 (const uint16_t * __a)
13005 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13006 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
13007 return __rv.__i;
13010 __extension__ extern __inline uint32x2x4_t
13011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13012 vld4_u32 (const uint32_t * __a)
13014 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13015 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
13016 return __rv.__i;
13019 __extension__ extern __inline poly8x8x4_t
13020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13021 vld4_p8 (const poly8_t * __a)
13023 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13024 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
13025 return __rv.__i;
13028 __extension__ extern __inline poly16x4x4_t
13029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13030 vld4_p16 (const poly16_t * __a)
13032 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13033 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
13034 return __rv.__i;
13037 #pragma GCC push_options
13038 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13039 __extension__ extern __inline poly64x1x4_t
13040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13041 vld4_p64 (const poly64_t * __a)
13043 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13044 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13045 return __rv.__i;
13048 #pragma GCC pop_options
13049 __extension__ extern __inline int64x1x4_t
13050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13051 vld4_s64 (const int64_t * __a)
13053 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13054 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13055 return __rv.__i;
13058 __extension__ extern __inline uint64x1x4_t
13059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13060 vld4_u64 (const uint64_t * __a)
13062 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13063 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
13064 return __rv.__i;
13067 __extension__ extern __inline int8x16x4_t
13068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13069 vld4q_s8 (const int8_t * __a)
13071 union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13072 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13073 return __rv.__i;
13076 __extension__ extern __inline int16x8x4_t
13077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13078 vld4q_s16 (const int16_t * __a)
13080 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13081 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13082 return __rv.__i;
13085 __extension__ extern __inline int32x4x4_t
13086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13087 vld4q_s32 (const int32_t * __a)
13089 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13090 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13091 return __rv.__i;
13094 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13095 __extension__ extern __inline float16x8x4_t
13096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13097 vld4q_f16 (const float16_t * __a)
13099 union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13100 __rv.__o = __builtin_neon_vld4v8hf (__a);
13101 return __rv.__i;
13103 #endif
13105 __extension__ extern __inline float32x4x4_t
13106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13107 vld4q_f32 (const float32_t * __a)
13109 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13110 __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
13111 return __rv.__i;
13114 __extension__ extern __inline uint8x16x4_t
13115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13116 vld4q_u8 (const uint8_t * __a)
13118 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13119 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13120 return __rv.__i;
13123 __extension__ extern __inline uint16x8x4_t
13124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13125 vld4q_u16 (const uint16_t * __a)
13127 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13128 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13129 return __rv.__i;
13132 __extension__ extern __inline uint32x4x4_t
13133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13134 vld4q_u32 (const uint32_t * __a)
13136 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13137 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
13138 return __rv.__i;
13141 __extension__ extern __inline poly8x16x4_t
13142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13143 vld4q_p8 (const poly8_t * __a)
13145 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
13146 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
13147 return __rv.__i;
13150 __extension__ extern __inline poly16x8x4_t
13151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13152 vld4q_p16 (const poly16_t * __a)
13154 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13155 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
13156 return __rv.__i;
13159 __extension__ extern __inline int8x8x4_t
13160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13161 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
13163 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13164 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13165 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13166 return __rv.__i;
13169 __extension__ extern __inline int16x4x4_t
13170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13171 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
13173 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13174 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13175 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13176 return __rv.__i;
13179 __extension__ extern __inline int32x2x4_t
13180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13181 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
13183 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13184 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13185 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13186 return __rv.__i;
13189 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13190 __extension__ extern __inline float16x4x4_t
13191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13192 vld4_lane_f16 (const float16_t * __a, float16x4x4_t __b, const int __c)
13194 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13195 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13196 __rv.__o = __builtin_neon_vld4_lanev4hf (__a,
13197 __bu.__o, __c);
13198 return __rv.__i;
13200 #endif
13202 __extension__ extern __inline float32x2x4_t
13203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13204 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
13206 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13207 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13208 __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13209 return __rv.__i;
13212 __extension__ extern __inline uint8x8x4_t
13213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13214 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
13216 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13217 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13218 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13219 return __rv.__i;
13222 __extension__ extern __inline uint16x4x4_t
13223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13224 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
13226 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13227 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13228 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13229 return __rv.__i;
13232 __extension__ extern __inline uint32x2x4_t
13233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13234 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
13236 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13237 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13238 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13239 return __rv.__i;
13242 __extension__ extern __inline poly8x8x4_t
13243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13244 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
13246 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13247 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13248 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
13249 return __rv.__i;
13252 __extension__ extern __inline poly16x4x4_t
13253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13254 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
13256 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13257 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13258 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13259 return __rv.__i;
13262 __extension__ extern __inline int16x8x4_t
13263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13264 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
13266 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13267 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13268 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13269 return __rv.__i;
13272 __extension__ extern __inline int32x4x4_t
13273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13274 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
13276 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13277 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13278 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13279 return __rv.__i;
13282 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13283 __extension__ extern __inline float16x8x4_t
13284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13285 vld4q_lane_f16 (const float16_t * __a, float16x8x4_t __b, const int __c)
13287 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13288 union { float16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13289 __rv.__o = __builtin_neon_vld4_lanev8hf (__a,
13290 __bu.__o, __c);
13291 return __rv.__i;
13293 #endif
13295 __extension__ extern __inline float32x4x4_t
13296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13297 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
13299 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13300 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13301 __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
13302 return __rv.__i;
13305 __extension__ extern __inline uint16x8x4_t
13306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13307 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
13309 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13310 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13311 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13312 return __rv.__i;
13315 __extension__ extern __inline uint32x4x4_t
13316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13317 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
13319 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13320 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
13321 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
13322 return __rv.__i;
13325 __extension__ extern __inline poly16x8x4_t
13326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13327 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
13329 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13330 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
13331 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
13332 return __rv.__i;
13335 __extension__ extern __inline int8x8x4_t
13336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13337 vld4_dup_s8 (const int8_t * __a)
13339 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13340 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13341 return __rv.__i;
13344 __extension__ extern __inline int16x4x4_t
13345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13346 vld4_dup_s16 (const int16_t * __a)
13348 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13349 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13350 return __rv.__i;
13353 __extension__ extern __inline int32x2x4_t
13354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13355 vld4_dup_s32 (const int32_t * __a)
13357 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13358 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13359 return __rv.__i;
13362 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13363 __extension__ extern __inline float16x4x4_t
13364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13365 vld4_dup_f16 (const float16_t * __a)
13367 union { float16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13368 __rv.__o = __builtin_neon_vld4_dupv4hf (__a);
13369 return __rv.__i;
13371 #endif
13373 __extension__ extern __inline float32x2x4_t
13374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13375 vld4_dup_f32 (const float32_t * __a)
13377 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13378 __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
13379 return __rv.__i;
13382 __extension__ extern __inline uint8x8x4_t
13383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13384 vld4_dup_u8 (const uint8_t * __a)
13386 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13387 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13388 return __rv.__i;
13391 __extension__ extern __inline uint16x4x4_t
13392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13393 vld4_dup_u16 (const uint16_t * __a)
13395 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13396 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13397 return __rv.__i;
13400 __extension__ extern __inline uint32x2x4_t
13401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13402 vld4_dup_u32 (const uint32_t * __a)
13404 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
13405 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
13406 return __rv.__i;
13409 __extension__ extern __inline poly8x8x4_t
13410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13411 vld4_dup_p8 (const poly8_t * __a)
13413 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
13414 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
13415 return __rv.__i;
13418 __extension__ extern __inline poly16x4x4_t
13419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13420 vld4_dup_p16 (const poly16_t * __a)
13422 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
13423 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
13424 return __rv.__i;
13427 #pragma GCC push_options
13428 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13429 __extension__ extern __inline poly64x1x4_t
13430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13431 vld4_dup_p64 (const poly64_t * __a)
13433 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13434 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13435 return __rv.__i;
13438 #pragma GCC pop_options
13439 __extension__ extern __inline int64x1x4_t
13440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13441 vld4_dup_s64 (const int64_t * __a)
13443 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13444 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13445 return __rv.__i;
13448 __extension__ extern __inline uint64x1x4_t
13449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13450 vld4_dup_u64 (const uint64_t * __a)
13452 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
13453 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
13454 return __rv.__i;
13457 __extension__ extern __inline void
13458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13459 vst4_s8 (int8_t * __a, int8x8x4_t __b)
13461 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13462 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13465 __extension__ extern __inline void
13466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13467 vst4_s16 (int16_t * __a, int16x4x4_t __b)
13469 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13470 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13473 __extension__ extern __inline void
13474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13475 vst4_s32 (int32_t * __a, int32x2x4_t __b)
13477 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13478 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13481 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13482 __extension__ extern __inline void
13483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13484 vst4_f16 (float16_t * __a, float16x4x4_t __b)
13486 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13487 __builtin_neon_vst4v4hf (__a, __bu.__o);
13489 #endif
13491 __extension__ extern __inline void
13492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13493 vst4_f32 (float32_t * __a, float32x2x4_t __b)
13495 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13496 __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
13499 __extension__ extern __inline void
13500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13501 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
13503 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13504 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13507 __extension__ extern __inline void
13508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13509 vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
13511 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13512 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13515 __extension__ extern __inline void
13516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13517 vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
13519 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13520 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
13523 __extension__ extern __inline void
13524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13525 vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
13527 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13528 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
13531 __extension__ extern __inline void
13532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13533 vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
13535 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13536 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
13539 #pragma GCC push_options
13540 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
13541 __extension__ extern __inline void
13542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13543 vst4_p64 (poly64_t * __a, poly64x1x4_t __b)
13545 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13546 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13549 #pragma GCC pop_options
13550 __extension__ extern __inline void
13551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13552 vst4_s64 (int64_t * __a, int64x1x4_t __b)
13554 union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13555 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13558 __extension__ extern __inline void
13559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13560 vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
13562 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13563 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
13566 __extension__ extern __inline void
13567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13568 vst4q_s8 (int8_t * __a, int8x16x4_t __b)
13570 union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13571 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13574 __extension__ extern __inline void
13575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13576 vst4q_s16 (int16_t * __a, int16x8x4_t __b)
13578 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13579 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13582 __extension__ extern __inline void
13583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13584 vst4q_s32 (int32_t * __a, int32x4x4_t __b)
13586 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13587 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13590 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13591 __extension__ extern __inline void
13592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13593 vst4q_f16 (float16_t * __a, float16x8x4_t __b)
13595 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13596 __builtin_neon_vst4v8hf (__a, __bu.__o);
13598 #endif
13600 __extension__ extern __inline void
13601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13602 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
13604 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13605 __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
13608 __extension__ extern __inline void
13609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13610 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
13612 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13613 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13616 __extension__ extern __inline void
13617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13618 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
13620 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13621 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13624 __extension__ extern __inline void
13625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13626 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
13628 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13629 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
13632 __extension__ extern __inline void
13633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13634 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
13636 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13637 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
13640 __extension__ extern __inline void
13641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13642 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
13644 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13645 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
13648 __extension__ extern __inline void
13649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13650 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
13652 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13653 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13656 __extension__ extern __inline void
13657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13658 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
13660 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13661 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13664 __extension__ extern __inline void
13665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13666 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
13668 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13669 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13672 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13673 __extension__ extern __inline void
13674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13675 vst4_lane_f16 (float16_t * __a, float16x4x4_t __b, const int __c)
13677 union { float16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13678 __builtin_neon_vst4_lanev4hf (__a, __bu.__o, __c);
13680 #endif
13682 __extension__ extern __inline void
13683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13684 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
13686 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13687 __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13690 __extension__ extern __inline void
13691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13692 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
13694 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13695 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13698 __extension__ extern __inline void
13699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13700 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
13702 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13703 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13706 __extension__ extern __inline void
13707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13708 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
13710 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13711 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
13714 __extension__ extern __inline void
13715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13716 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
13718 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13719 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
13722 __extension__ extern __inline void
13723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13724 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
13726 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
13727 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13730 __extension__ extern __inline void
13731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13732 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
13734 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13735 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13738 __extension__ extern __inline void
13739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13740 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
13742 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13743 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13746 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
13747 __extension__ extern __inline void
13748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13749 vst4q_lane_f16 (float16_t * __a, float16x8x4_t __b, const int __c)
13751 union { float16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13752 __builtin_neon_vst4_lanev8hf (__a, __bu.__o, __c);
13754 #endif
13756 __extension__ extern __inline void
13757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13758 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
13760 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13761 __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
13764 __extension__ extern __inline void
13765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13766 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
13768 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13769 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13772 __extension__ extern __inline void
13773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13774 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
13776 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13777 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
13780 __extension__ extern __inline void
13781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13782 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
13784 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
13785 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
13788 __extension__ extern __inline int8x8_t
13789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13790 vand_s8 (int8x8_t __a, int8x8_t __b)
13792 return __a & __b;
13795 __extension__ extern __inline int16x4_t
13796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13797 vand_s16 (int16x4_t __a, int16x4_t __b)
13799 return __a & __b;
13802 __extension__ extern __inline int32x2_t
13803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13804 vand_s32 (int32x2_t __a, int32x2_t __b)
13806 return __a & __b;
13809 __extension__ extern __inline uint8x8_t
13810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13811 vand_u8 (uint8x8_t __a, uint8x8_t __b)
13813 return __a & __b;
13816 __extension__ extern __inline uint16x4_t
13817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13818 vand_u16 (uint16x4_t __a, uint16x4_t __b)
13820 return __a & __b;
13823 __extension__ extern __inline uint32x2_t
13824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13825 vand_u32 (uint32x2_t __a, uint32x2_t __b)
13827 return __a & __b;
13830 __extension__ extern __inline int64x1_t
13831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13832 vand_s64 (int64x1_t __a, int64x1_t __b)
13834 return __a & __b;
13837 __extension__ extern __inline uint64x1_t
13838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13839 vand_u64 (uint64x1_t __a, uint64x1_t __b)
13841 return __a & __b;
13844 __extension__ extern __inline int8x16_t
13845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13846 vandq_s8 (int8x16_t __a, int8x16_t __b)
13848 return __a & __b;
13851 __extension__ extern __inline int16x8_t
13852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13853 vandq_s16 (int16x8_t __a, int16x8_t __b)
13855 return __a & __b;
13858 __extension__ extern __inline int32x4_t
13859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13860 vandq_s32 (int32x4_t __a, int32x4_t __b)
13862 return __a & __b;
13865 __extension__ extern __inline int64x2_t
13866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13867 vandq_s64 (int64x2_t __a, int64x2_t __b)
13869 return __a & __b;
13872 __extension__ extern __inline uint8x16_t
13873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13874 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
13876 return __a & __b;
13879 __extension__ extern __inline uint16x8_t
13880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13881 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
13883 return __a & __b;
13886 __extension__ extern __inline uint32x4_t
13887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13888 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
13890 return __a & __b;
13893 __extension__ extern __inline uint64x2_t
13894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13895 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
13897 return __a & __b;
13900 __extension__ extern __inline int8x8_t
13901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13902 vorr_s8 (int8x8_t __a, int8x8_t __b)
13904 return __a | __b;
13907 __extension__ extern __inline int16x4_t
13908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13909 vorr_s16 (int16x4_t __a, int16x4_t __b)
13911 return __a | __b;
13914 __extension__ extern __inline int32x2_t
13915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13916 vorr_s32 (int32x2_t __a, int32x2_t __b)
13918 return __a | __b;
13921 __extension__ extern __inline uint8x8_t
13922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13923 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
13925 return __a | __b;
13928 __extension__ extern __inline uint16x4_t
13929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13930 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
13932 return __a | __b;
13935 __extension__ extern __inline uint32x2_t
13936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13937 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
13939 return __a | __b;
13942 __extension__ extern __inline int64x1_t
13943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13944 vorr_s64 (int64x1_t __a, int64x1_t __b)
13946 return __a | __b;
13949 __extension__ extern __inline uint64x1_t
13950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13951 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
13953 return __a | __b;
13956 __extension__ extern __inline int8x16_t
13957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13958 vorrq_s8 (int8x16_t __a, int8x16_t __b)
13960 return __a | __b;
13963 __extension__ extern __inline int16x8_t
13964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13965 vorrq_s16 (int16x8_t __a, int16x8_t __b)
13967 return __a | __b;
13970 __extension__ extern __inline int32x4_t
13971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13972 vorrq_s32 (int32x4_t __a, int32x4_t __b)
13974 return __a | __b;
13977 __extension__ extern __inline int64x2_t
13978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13979 vorrq_s64 (int64x2_t __a, int64x2_t __b)
13981 return __a | __b;
13984 __extension__ extern __inline uint8x16_t
13985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13986 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
13988 return __a | __b;
13991 __extension__ extern __inline uint16x8_t
13992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
13993 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
13995 return __a | __b;
13998 __extension__ extern __inline uint32x4_t
13999 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14000 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
14002 return __a | __b;
14005 __extension__ extern __inline uint64x2_t
14006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14007 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
14009 return __a | __b;
14012 __extension__ extern __inline int8x8_t
14013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14014 veor_s8 (int8x8_t __a, int8x8_t __b)
14016 return __a ^ __b;
14019 __extension__ extern __inline int16x4_t
14020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14021 veor_s16 (int16x4_t __a, int16x4_t __b)
14023 return __a ^ __b;
14026 __extension__ extern __inline int32x2_t
14027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14028 veor_s32 (int32x2_t __a, int32x2_t __b)
14030 return __a ^ __b;
14033 __extension__ extern __inline uint8x8_t
14034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14035 veor_u8 (uint8x8_t __a, uint8x8_t __b)
14037 return __a ^ __b;
14040 __extension__ extern __inline uint16x4_t
14041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14042 veor_u16 (uint16x4_t __a, uint16x4_t __b)
14044 return __a ^ __b;
14047 __extension__ extern __inline uint32x2_t
14048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14049 veor_u32 (uint32x2_t __a, uint32x2_t __b)
14051 return __a ^ __b;
14054 __extension__ extern __inline int64x1_t
14055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14056 veor_s64 (int64x1_t __a, int64x1_t __b)
14058 return __a ^ __b;
14061 __extension__ extern __inline uint64x1_t
14062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14063 veor_u64 (uint64x1_t __a, uint64x1_t __b)
14065 return __a ^ __b;
14068 __extension__ extern __inline int8x16_t
14069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14070 veorq_s8 (int8x16_t __a, int8x16_t __b)
14072 return __a ^ __b;
14075 __extension__ extern __inline int16x8_t
14076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14077 veorq_s16 (int16x8_t __a, int16x8_t __b)
14079 return __a ^ __b;
14082 __extension__ extern __inline int32x4_t
14083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14084 veorq_s32 (int32x4_t __a, int32x4_t __b)
14086 return __a ^ __b;
14089 __extension__ extern __inline int64x2_t
14090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14091 veorq_s64 (int64x2_t __a, int64x2_t __b)
14093 return __a ^ __b;
14096 __extension__ extern __inline uint8x16_t
14097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14098 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
14100 return __a ^ __b;
14103 __extension__ extern __inline uint16x8_t
14104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14105 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
14107 return __a ^ __b;
14110 __extension__ extern __inline uint32x4_t
14111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14112 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
14114 return __a ^ __b;
14117 __extension__ extern __inline uint64x2_t
14118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14119 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
14121 return __a ^ __b;
14124 __extension__ extern __inline int8x8_t
14125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14126 vbic_s8 (int8x8_t __a, int8x8_t __b)
14128 return __a & ~__b;
14131 __extension__ extern __inline int16x4_t
14132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14133 vbic_s16 (int16x4_t __a, int16x4_t __b)
14135 return __a & ~__b;
14138 __extension__ extern __inline int32x2_t
14139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14140 vbic_s32 (int32x2_t __a, int32x2_t __b)
14142 return __a & ~__b;
14145 __extension__ extern __inline uint8x8_t
14146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14147 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
14149 return __a & ~__b;
14152 __extension__ extern __inline uint16x4_t
14153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14154 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
14156 return __a & ~__b;
14159 __extension__ extern __inline uint32x2_t
14160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14161 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
14163 return __a & ~__b;
14166 __extension__ extern __inline int64x1_t
14167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14168 vbic_s64 (int64x1_t __a, int64x1_t __b)
14170 return __a & ~__b;
14173 __extension__ extern __inline uint64x1_t
14174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14175 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
14177 return __a & ~__b;
14180 __extension__ extern __inline int8x16_t
14181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14182 vbicq_s8 (int8x16_t __a, int8x16_t __b)
14184 return __a & ~__b;
14187 __extension__ extern __inline int16x8_t
14188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14189 vbicq_s16 (int16x8_t __a, int16x8_t __b)
14191 return __a & ~__b;
14194 __extension__ extern __inline int32x4_t
14195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14196 vbicq_s32 (int32x4_t __a, int32x4_t __b)
14198 return __a & ~__b;
14201 __extension__ extern __inline int64x2_t
14202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14203 vbicq_s64 (int64x2_t __a, int64x2_t __b)
14205 return __a & ~__b;
14208 __extension__ extern __inline uint8x16_t
14209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14210 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
14212 return __a & ~__b;
14215 __extension__ extern __inline uint16x8_t
14216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14217 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
14219 return __a & ~__b;
14222 __extension__ extern __inline uint32x4_t
14223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14224 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
14226 return __a & ~__b;
14229 __extension__ extern __inline uint64x2_t
14230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14231 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
14233 return __a & ~__b;
14236 __extension__ extern __inline int8x8_t
14237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14238 vorn_s8 (int8x8_t __a, int8x8_t __b)
14240 return __a | ~__b;
14243 __extension__ extern __inline int16x4_t
14244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14245 vorn_s16 (int16x4_t __a, int16x4_t __b)
14247 return __a | ~__b;
14250 __extension__ extern __inline int32x2_t
14251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14252 vorn_s32 (int32x2_t __a, int32x2_t __b)
14254 return __a | ~__b;
14257 __extension__ extern __inline uint8x8_t
14258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14259 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
14261 return __a | ~__b;
14264 __extension__ extern __inline uint16x4_t
14265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14266 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
14268 return __a | ~__b;
14271 __extension__ extern __inline uint32x2_t
14272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14273 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
14275 return __a | ~__b;
14278 __extension__ extern __inline int64x1_t
14279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14280 vorn_s64 (int64x1_t __a, int64x1_t __b)
14282 return __a | ~__b;
14285 __extension__ extern __inline uint64x1_t
14286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14287 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
14289 return __a | ~__b;
14292 __extension__ extern __inline int8x16_t
14293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14294 vornq_s8 (int8x16_t __a, int8x16_t __b)
14296 return __a | ~__b;
14299 __extension__ extern __inline int16x8_t
14300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14301 vornq_s16 (int16x8_t __a, int16x8_t __b)
14303 return __a | ~__b;
14306 __extension__ extern __inline int32x4_t
14307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14308 vornq_s32 (int32x4_t __a, int32x4_t __b)
14310 return __a | ~__b;
14313 __extension__ extern __inline int64x2_t
14314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14315 vornq_s64 (int64x2_t __a, int64x2_t __b)
14317 return __a | ~__b;
14320 __extension__ extern __inline uint8x16_t
14321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14322 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
14324 return __a | ~__b;
14327 __extension__ extern __inline uint16x8_t
14328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14329 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
14331 return __a | ~__b;
14334 __extension__ extern __inline uint32x4_t
14335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14336 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
14338 return __a | ~__b;
14341 __extension__ extern __inline uint64x2_t
14342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14343 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
14345 return __a | ~__b;
14348 __extension__ extern __inline poly8x8_t
14349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14350 vreinterpret_p8_p16 (poly16x4_t __a)
14352 return (poly8x8_t) __a;
14355 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14356 __extension__ extern __inline poly8x8_t
14357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14358 vreinterpret_p8_f16 (float16x4_t __a)
14360 return (poly8x8_t) __a;
14362 #endif
14364 __extension__ extern __inline poly8x8_t
14365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14366 vreinterpret_p8_f32 (float32x2_t __a)
14368 return (poly8x8_t)__a;
14371 #pragma GCC push_options
14372 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14373 __extension__ extern __inline poly8x8_t
14374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14375 vreinterpret_p8_p64 (poly64x1_t __a)
14377 return (poly8x8_t)__a;
14380 #pragma GCC pop_options
14381 __extension__ extern __inline poly8x8_t
14382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14383 vreinterpret_p8_s64 (int64x1_t __a)
14385 return (poly8x8_t)__a;
14388 __extension__ extern __inline poly8x8_t
14389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14390 vreinterpret_p8_u64 (uint64x1_t __a)
14392 return (poly8x8_t)__a;
14395 __extension__ extern __inline poly8x8_t
14396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14397 vreinterpret_p8_s8 (int8x8_t __a)
14399 return (poly8x8_t)__a;
14402 __extension__ extern __inline poly8x8_t
14403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14404 vreinterpret_p8_s16 (int16x4_t __a)
14406 return (poly8x8_t)__a;
14409 __extension__ extern __inline poly8x8_t
14410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14411 vreinterpret_p8_s32 (int32x2_t __a)
14413 return (poly8x8_t)__a;
14416 __extension__ extern __inline poly8x8_t
14417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14418 vreinterpret_p8_u8 (uint8x8_t __a)
14420 return (poly8x8_t)__a;
14423 __extension__ extern __inline poly8x8_t
14424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14425 vreinterpret_p8_u16 (uint16x4_t __a)
14427 return (poly8x8_t)__a;
14430 __extension__ extern __inline poly8x8_t
14431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14432 vreinterpret_p8_u32 (uint32x2_t __a)
14434 return (poly8x8_t)__a;
14437 __extension__ extern __inline poly16x4_t
14438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14439 vreinterpret_p16_p8 (poly8x8_t __a)
14441 return (poly16x4_t)__a;
14444 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14445 __extension__ extern __inline poly16x4_t
14446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14447 vreinterpret_p16_f16 (float16x4_t __a)
14449 return (poly16x4_t) __a;
14451 #endif
14453 __extension__ extern __inline poly16x4_t
14454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14455 vreinterpret_p16_f32 (float32x2_t __a)
14457 return (poly16x4_t)__a;
14460 #pragma GCC push_options
14461 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14462 __extension__ extern __inline poly16x4_t
14463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14464 vreinterpret_p16_p64 (poly64x1_t __a)
14466 return (poly16x4_t)__a;
14469 #pragma GCC pop_options
14470 __extension__ extern __inline poly16x4_t
14471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14472 vreinterpret_p16_s64 (int64x1_t __a)
14474 return (poly16x4_t)__a;
14477 __extension__ extern __inline poly16x4_t
14478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14479 vreinterpret_p16_u64 (uint64x1_t __a)
14481 return (poly16x4_t)__a;
14484 __extension__ extern __inline poly16x4_t
14485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14486 vreinterpret_p16_s8 (int8x8_t __a)
14488 return (poly16x4_t)__a;
14491 __extension__ extern __inline poly16x4_t
14492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14493 vreinterpret_p16_s16 (int16x4_t __a)
14495 return (poly16x4_t)__a;
14498 __extension__ extern __inline poly16x4_t
14499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14500 vreinterpret_p16_s32 (int32x2_t __a)
14502 return (poly16x4_t)__a;
14505 __extension__ extern __inline poly16x4_t
14506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14507 vreinterpret_p16_u8 (uint8x8_t __a)
14509 return (poly16x4_t)__a;
14512 __extension__ extern __inline poly16x4_t
14513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14514 vreinterpret_p16_u16 (uint16x4_t __a)
14516 return (poly16x4_t)__a;
14519 __extension__ extern __inline poly16x4_t
14520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14521 vreinterpret_p16_u32 (uint32x2_t __a)
14523 return (poly16x4_t)__a;
14526 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14527 __extension__ extern __inline float16x4_t
14528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14529 vreinterpret_f16_bf16 (bfloat16x4_t __a)
14531 return (float16x4_t) __a;
14533 #endif
14535 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14536 __extension__ extern __inline float16x4_t
14537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14538 vreinterpret_f16_p8 (poly8x8_t __a)
14540 return (float16x4_t) __a;
14542 #endif
14544 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14545 __extension__ extern __inline float16x4_t
14546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14547 vreinterpret_f16_p16 (poly16x4_t __a)
14549 return (float16x4_t) __a;
14551 #endif
14553 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14554 __extension__ extern __inline float16x4_t
14555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14556 vreinterpret_f16_f32 (float32x2_t __a)
14558 return (float16x4_t) __a;
14560 #endif
14562 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14563 #pragma GCC push_options
14564 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14565 __extension__ extern __inline float16x4_t
14566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14567 vreinterpret_f16_p64 (poly64x1_t __a)
14569 return (float16x4_t) __a;
14571 #pragma GCC pop_options
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_s64 (int64x1_t __a)
14579 return (float16x4_t) __a;
14581 #endif
14583 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14584 __extension__ extern __inline float16x4_t
14585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14586 vreinterpret_f16_u64 (uint64x1_t __a)
14588 return (float16x4_t) __a;
14590 #endif
14592 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14593 __extension__ extern __inline float16x4_t
14594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14595 vreinterpret_f16_s8 (int8x8_t __a)
14597 return (float16x4_t) __a;
14599 #endif
14601 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14602 __extension__ extern __inline float16x4_t
14603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14604 vreinterpret_f16_s16 (int16x4_t __a)
14606 return (float16x4_t) __a;
14608 #endif
14610 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14611 __extension__ extern __inline float16x4_t
14612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14613 vreinterpret_f16_s32 (int32x2_t __a)
14615 return (float16x4_t) __a;
14617 #endif
14619 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14620 __extension__ extern __inline float16x4_t
14621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14622 vreinterpret_f16_u8 (uint8x8_t __a)
14624 return (float16x4_t) __a;
14626 #endif
14628 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14629 __extension__ extern __inline float16x4_t
14630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14631 vreinterpret_f16_u16 (uint16x4_t __a)
14633 return (float16x4_t) __a;
14635 #endif
14637 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14638 __extension__ extern __inline float16x4_t
14639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14640 vreinterpret_f16_u32 (uint32x2_t __a)
14642 return (float16x4_t) __a;
14644 #endif
14646 __extension__ extern __inline float32x2_t
14647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14648 vreinterpret_f32_p8 (poly8x8_t __a)
14650 return (float32x2_t)__a;
14653 __extension__ extern __inline float32x2_t
14654 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14655 vreinterpret_f32_p16 (poly16x4_t __a)
14657 return (float32x2_t)__a;
14660 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14661 __extension__ extern __inline float32x2_t
14662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14663 vreinterpret_f32_f16 (float16x4_t __a)
14665 return (float32x2_t) __a;
14667 #endif
14669 #pragma GCC push_options
14670 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14671 __extension__ extern __inline float32x2_t
14672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14673 vreinterpret_f32_p64 (poly64x1_t __a)
14675 return (float32x2_t)__a;
14678 #pragma GCC pop_options
14679 __extension__ extern __inline float32x2_t
14680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14681 vreinterpret_f32_s64 (int64x1_t __a)
14683 return (float32x2_t)__a;
14686 __extension__ extern __inline float32x2_t
14687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14688 vreinterpret_f32_u64 (uint64x1_t __a)
14690 return (float32x2_t)__a;
14693 __extension__ extern __inline float32x2_t
14694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14695 vreinterpret_f32_s8 (int8x8_t __a)
14697 return (float32x2_t)__a;
14700 __extension__ extern __inline float32x2_t
14701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14702 vreinterpret_f32_s16 (int16x4_t __a)
14704 return (float32x2_t)__a;
14707 __extension__ extern __inline float32x2_t
14708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14709 vreinterpret_f32_s32 (int32x2_t __a)
14711 return (float32x2_t)__a;
14714 __extension__ extern __inline float32x2_t
14715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14716 vreinterpret_f32_u8 (uint8x8_t __a)
14718 return (float32x2_t)__a;
14721 __extension__ extern __inline float32x2_t
14722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14723 vreinterpret_f32_u16 (uint16x4_t __a)
14725 return (float32x2_t)__a;
14728 __extension__ extern __inline float32x2_t
14729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14730 vreinterpret_f32_u32 (uint32x2_t __a)
14732 return (float32x2_t)__a;
14735 #pragma GCC push_options
14736 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14737 __extension__ extern __inline poly64x1_t
14738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14739 vreinterpret_p64_p8 (poly8x8_t __a)
14741 return (poly64x1_t)__a;
14744 __extension__ extern __inline poly64x1_t
14745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14746 vreinterpret_p64_p16 (poly16x4_t __a)
14748 return (poly64x1_t)__a;
14751 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14752 __extension__ extern __inline poly64x1_t
14753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14754 vreinterpret_p64_f16 (float16x4_t __a)
14756 return (poly64x1_t) __a;
14758 #endif
14760 __extension__ extern __inline poly64x1_t
14761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14762 vreinterpret_p64_f32 (float32x2_t __a)
14764 return (poly64x1_t)__a;
14767 __extension__ extern __inline poly64x1_t
14768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14769 vreinterpret_p64_s64 (int64x1_t __a)
14771 return (poly64x1_t)__a;
14774 __extension__ extern __inline poly64x1_t
14775 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14776 vreinterpret_p64_u64 (uint64x1_t __a)
14778 return (poly64x1_t)__a;
14781 __extension__ extern __inline poly64x1_t
14782 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14783 vreinterpret_p64_s8 (int8x8_t __a)
14785 return (poly64x1_t)__a;
14788 __extension__ extern __inline poly64x1_t
14789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14790 vreinterpret_p64_s16 (int16x4_t __a)
14792 return (poly64x1_t)__a;
14795 __extension__ extern __inline poly64x1_t
14796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14797 vreinterpret_p64_s32 (int32x2_t __a)
14799 return (poly64x1_t)__a;
14802 __extension__ extern __inline poly64x1_t
14803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14804 vreinterpret_p64_u8 (uint8x8_t __a)
14806 return (poly64x1_t)__a;
14809 __extension__ extern __inline poly64x1_t
14810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14811 vreinterpret_p64_u16 (uint16x4_t __a)
14813 return (poly64x1_t)__a;
14816 __extension__ extern __inline poly64x1_t
14817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14818 vreinterpret_p64_u32 (uint32x2_t __a)
14820 return (poly64x1_t)__a;
14823 #pragma GCC pop_options
14824 __extension__ extern __inline int64x1_t
14825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14826 vreinterpret_s64_p8 (poly8x8_t __a)
14828 return (int64x1_t)__a;
14831 __extension__ extern __inline int64x1_t
14832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14833 vreinterpret_s64_p16 (poly16x4_t __a)
14835 return (int64x1_t)__a;
14838 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14839 __extension__ extern __inline int64x1_t
14840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14841 vreinterpret_s64_f16 (float16x4_t __a)
14843 return (int64x1_t) __a;
14845 #endif
14847 __extension__ extern __inline int64x1_t
14848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14849 vreinterpret_s64_f32 (float32x2_t __a)
14851 return (int64x1_t)__a;
14854 #pragma GCC push_options
14855 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14856 __extension__ extern __inline int64x1_t
14857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14858 vreinterpret_s64_p64 (poly64x1_t __a)
14860 return (int64x1_t)__a;
14863 #pragma GCC pop_options
14864 __extension__ extern __inline int64x1_t
14865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14866 vreinterpret_s64_u64 (uint64x1_t __a)
14868 return (int64x1_t)__a;
14871 __extension__ extern __inline int64x1_t
14872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14873 vreinterpret_s64_s8 (int8x8_t __a)
14875 return (int64x1_t)__a;
14878 __extension__ extern __inline int64x1_t
14879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14880 vreinterpret_s64_s16 (int16x4_t __a)
14882 return (int64x1_t)__a;
14885 __extension__ extern __inline int64x1_t
14886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14887 vreinterpret_s64_s32 (int32x2_t __a)
14889 return (int64x1_t)__a;
14892 __extension__ extern __inline int64x1_t
14893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14894 vreinterpret_s64_u8 (uint8x8_t __a)
14896 return (int64x1_t)__a;
14899 __extension__ extern __inline int64x1_t
14900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14901 vreinterpret_s64_u16 (uint16x4_t __a)
14903 return (int64x1_t)__a;
14906 __extension__ extern __inline int64x1_t
14907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14908 vreinterpret_s64_u32 (uint32x2_t __a)
14910 return (int64x1_t)__a;
14913 __extension__ extern __inline uint64x1_t
14914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14915 vreinterpret_u64_p8 (poly8x8_t __a)
14917 return (uint64x1_t)__a;
14920 __extension__ extern __inline uint64x1_t
14921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14922 vreinterpret_u64_p16 (poly16x4_t __a)
14924 return (uint64x1_t)__a;
14927 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
14928 __extension__ extern __inline uint64x1_t
14929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14930 vreinterpret_u64_f16 (float16x4_t __a)
14932 return (uint64x1_t) __a;
14934 #endif
14936 __extension__ extern __inline uint64x1_t
14937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14938 vreinterpret_u64_f32 (float32x2_t __a)
14940 return (uint64x1_t)__a;
14943 #pragma GCC push_options
14944 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
14945 __extension__ extern __inline uint64x1_t
14946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14947 vreinterpret_u64_p64 (poly64x1_t __a)
14949 return (uint64x1_t)__a;
14952 #pragma GCC pop_options
14953 __extension__ extern __inline uint64x1_t
14954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14955 vreinterpret_u64_s64 (int64x1_t __a)
14957 return (uint64x1_t)__a;
14960 __extension__ extern __inline uint64x1_t
14961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14962 vreinterpret_u64_s8 (int8x8_t __a)
14964 return (uint64x1_t)__a;
14967 __extension__ extern __inline uint64x1_t
14968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14969 vreinterpret_u64_s16 (int16x4_t __a)
14971 return (uint64x1_t)__a;
14974 __extension__ extern __inline uint64x1_t
14975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14976 vreinterpret_u64_s32 (int32x2_t __a)
14978 return (uint64x1_t)__a;
14981 __extension__ extern __inline uint64x1_t
14982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14983 vreinterpret_u64_u8 (uint8x8_t __a)
14985 return (uint64x1_t)__a;
14988 __extension__ extern __inline uint64x1_t
14989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14990 vreinterpret_u64_u16 (uint16x4_t __a)
14992 return (uint64x1_t)__a;
14995 __extension__ extern __inline uint64x1_t
14996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
14997 vreinterpret_u64_u32 (uint32x2_t __a)
14999 return (uint64x1_t)__a;
15002 __extension__ extern __inline int8x8_t
15003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15004 vreinterpret_s8_p8 (poly8x8_t __a)
15006 return (int8x8_t)__a;
15009 __extension__ extern __inline int8x8_t
15010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15011 vreinterpret_s8_p16 (poly16x4_t __a)
15013 return (int8x8_t)__a;
15016 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15017 __extension__ extern __inline int8x8_t
15018 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15019 vreinterpret_s8_f16 (float16x4_t __a)
15021 return (int8x8_t) __a;
15023 #endif
15025 __extension__ extern __inline int8x8_t
15026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15027 vreinterpret_s8_f32 (float32x2_t __a)
15029 return (int8x8_t)__a;
15032 #pragma GCC push_options
15033 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15034 __extension__ extern __inline int8x8_t
15035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15036 vreinterpret_s8_p64 (poly64x1_t __a)
15038 return (int8x8_t)__a;
15041 #pragma GCC pop_options
15042 __extension__ extern __inline int8x8_t
15043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15044 vreinterpret_s8_s64 (int64x1_t __a)
15046 return (int8x8_t)__a;
15049 __extension__ extern __inline int8x8_t
15050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15051 vreinterpret_s8_u64 (uint64x1_t __a)
15053 return (int8x8_t)__a;
15056 __extension__ extern __inline int8x8_t
15057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15058 vreinterpret_s8_s16 (int16x4_t __a)
15060 return (int8x8_t)__a;
15063 __extension__ extern __inline int8x8_t
15064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15065 vreinterpret_s8_s32 (int32x2_t __a)
15067 return (int8x8_t)__a;
15070 __extension__ extern __inline int8x8_t
15071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15072 vreinterpret_s8_u8 (uint8x8_t __a)
15074 return (int8x8_t)__a;
15077 __extension__ extern __inline int8x8_t
15078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15079 vreinterpret_s8_u16 (uint16x4_t __a)
15081 return (int8x8_t)__a;
15084 __extension__ extern __inline int8x8_t
15085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15086 vreinterpret_s8_u32 (uint32x2_t __a)
15088 return (int8x8_t)__a;
15091 __extension__ extern __inline int16x4_t
15092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15093 vreinterpret_s16_p8 (poly8x8_t __a)
15095 return (int16x4_t)__a;
15098 __extension__ extern __inline int16x4_t
15099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15100 vreinterpret_s16_p16 (poly16x4_t __a)
15102 return (int16x4_t)__a;
15105 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15106 __extension__ extern __inline int16x4_t
15107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15108 vreinterpret_s16_f16 (float16x4_t __a)
15110 return (int16x4_t) __a;
15112 #endif
15114 __extension__ extern __inline int16x4_t
15115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15116 vreinterpret_s16_f32 (float32x2_t __a)
15118 return (int16x4_t)__a;
15121 #pragma GCC push_options
15122 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15123 __extension__ extern __inline int16x4_t
15124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15125 vreinterpret_s16_p64 (poly64x1_t __a)
15127 return (int16x4_t)__a;
15130 #pragma GCC pop_options
15131 __extension__ extern __inline int16x4_t
15132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15133 vreinterpret_s16_s64 (int64x1_t __a)
15135 return (int16x4_t)__a;
15138 __extension__ extern __inline int16x4_t
15139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15140 vreinterpret_s16_u64 (uint64x1_t __a)
15142 return (int16x4_t)__a;
15145 __extension__ extern __inline int16x4_t
15146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15147 vreinterpret_s16_s8 (int8x8_t __a)
15149 return (int16x4_t)__a;
15152 __extension__ extern __inline int16x4_t
15153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15154 vreinterpret_s16_s32 (int32x2_t __a)
15156 return (int16x4_t)__a;
15159 __extension__ extern __inline int16x4_t
15160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15161 vreinterpret_s16_u8 (uint8x8_t __a)
15163 return (int16x4_t)__a;
15166 __extension__ extern __inline int16x4_t
15167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15168 vreinterpret_s16_u16 (uint16x4_t __a)
15170 return (int16x4_t)__a;
15173 __extension__ extern __inline int16x4_t
15174 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15175 vreinterpret_s16_u32 (uint32x2_t __a)
15177 return (int16x4_t)__a;
15180 __extension__ extern __inline int32x2_t
15181 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15182 vreinterpret_s32_p8 (poly8x8_t __a)
15184 return (int32x2_t)__a;
15187 __extension__ extern __inline int32x2_t
15188 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15189 vreinterpret_s32_p16 (poly16x4_t __a)
15191 return (int32x2_t)__a;
15194 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15195 __extension__ extern __inline int32x2_t
15196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15197 vreinterpret_s32_f16 (float16x4_t __a)
15199 return (int32x2_t) __a;
15201 #endif
15203 __extension__ extern __inline int32x2_t
15204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15205 vreinterpret_s32_f32 (float32x2_t __a)
15207 return (int32x2_t)__a;
15210 #pragma GCC push_options
15211 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15212 __extension__ extern __inline int32x2_t
15213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15214 vreinterpret_s32_p64 (poly64x1_t __a)
15216 return (int32x2_t)__a;
15219 #pragma GCC pop_options
15220 __extension__ extern __inline int32x2_t
15221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15222 vreinterpret_s32_s64 (int64x1_t __a)
15224 return (int32x2_t)__a;
15227 __extension__ extern __inline int32x2_t
15228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15229 vreinterpret_s32_u64 (uint64x1_t __a)
15231 return (int32x2_t)__a;
15234 __extension__ extern __inline int32x2_t
15235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15236 vreinterpret_s32_s8 (int8x8_t __a)
15238 return (int32x2_t)__a;
15241 __extension__ extern __inline int32x2_t
15242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15243 vreinterpret_s32_s16 (int16x4_t __a)
15245 return (int32x2_t)__a;
15248 __extension__ extern __inline int32x2_t
15249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15250 vreinterpret_s32_u8 (uint8x8_t __a)
15252 return (int32x2_t)__a;
15255 __extension__ extern __inline int32x2_t
15256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15257 vreinterpret_s32_u16 (uint16x4_t __a)
15259 return (int32x2_t)__a;
15262 __extension__ extern __inline int32x2_t
15263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15264 vreinterpret_s32_u32 (uint32x2_t __a)
15266 return (int32x2_t)__a;
15269 __extension__ extern __inline uint8x8_t
15270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15271 vreinterpret_u8_p8 (poly8x8_t __a)
15273 return (uint8x8_t)__a;
15276 __extension__ extern __inline uint8x8_t
15277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15278 vreinterpret_u8_p16 (poly16x4_t __a)
15280 return (uint8x8_t)__a;
15283 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15284 __extension__ extern __inline uint8x8_t
15285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15286 vreinterpret_u8_f16 (float16x4_t __a)
15288 return (uint8x8_t) __a;
15290 #endif
15292 __extension__ extern __inline uint8x8_t
15293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15294 vreinterpret_u8_f32 (float32x2_t __a)
15296 return (uint8x8_t)__a;
15299 #pragma GCC push_options
15300 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15301 __extension__ extern __inline uint8x8_t
15302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15303 vreinterpret_u8_p64 (poly64x1_t __a)
15305 return (uint8x8_t)__a;
15308 #pragma GCC pop_options
15309 __extension__ extern __inline uint8x8_t
15310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15311 vreinterpret_u8_s64 (int64x1_t __a)
15313 return (uint8x8_t)__a;
15316 __extension__ extern __inline uint8x8_t
15317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15318 vreinterpret_u8_u64 (uint64x1_t __a)
15320 return (uint8x8_t)__a;
15323 __extension__ extern __inline uint8x8_t
15324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15325 vreinterpret_u8_s8 (int8x8_t __a)
15327 return (uint8x8_t)__a;
15330 __extension__ extern __inline uint8x8_t
15331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15332 vreinterpret_u8_s16 (int16x4_t __a)
15334 return (uint8x8_t)__a;
15337 __extension__ extern __inline uint8x8_t
15338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15339 vreinterpret_u8_s32 (int32x2_t __a)
15341 return (uint8x8_t)__a;
15344 __extension__ extern __inline uint8x8_t
15345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15346 vreinterpret_u8_u16 (uint16x4_t __a)
15348 return (uint8x8_t)__a;
15351 __extension__ extern __inline uint8x8_t
15352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15353 vreinterpret_u8_u32 (uint32x2_t __a)
15355 return (uint8x8_t)__a;
15358 __extension__ extern __inline uint16x4_t
15359 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15360 vreinterpret_u16_p8 (poly8x8_t __a)
15362 return (uint16x4_t)__a;
15365 __extension__ extern __inline uint16x4_t
15366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15367 vreinterpret_u16_p16 (poly16x4_t __a)
15369 return (uint16x4_t)__a;
15372 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15373 __extension__ extern __inline uint16x4_t
15374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15375 vreinterpret_u16_f16 (float16x4_t __a)
15377 return (uint16x4_t) __a;
15379 #endif
15381 __extension__ extern __inline uint16x4_t
15382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15383 vreinterpret_u16_f32 (float32x2_t __a)
15385 return (uint16x4_t)__a;
15388 #pragma GCC push_options
15389 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15390 __extension__ extern __inline uint16x4_t
15391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15392 vreinterpret_u16_p64 (poly64x1_t __a)
15394 return (uint16x4_t)__a;
15397 #pragma GCC pop_options
15398 __extension__ extern __inline uint16x4_t
15399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15400 vreinterpret_u16_s64 (int64x1_t __a)
15402 return (uint16x4_t)__a;
15405 __extension__ extern __inline uint16x4_t
15406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15407 vreinterpret_u16_u64 (uint64x1_t __a)
15409 return (uint16x4_t)__a;
15412 __extension__ extern __inline uint16x4_t
15413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15414 vreinterpret_u16_s8 (int8x8_t __a)
15416 return (uint16x4_t)__a;
15419 __extension__ extern __inline uint16x4_t
15420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15421 vreinterpret_u16_s16 (int16x4_t __a)
15423 return (uint16x4_t)__a;
15426 __extension__ extern __inline uint16x4_t
15427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15428 vreinterpret_u16_s32 (int32x2_t __a)
15430 return (uint16x4_t)__a;
15433 __extension__ extern __inline uint16x4_t
15434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15435 vreinterpret_u16_u8 (uint8x8_t __a)
15437 return (uint16x4_t)__a;
15440 __extension__ extern __inline uint16x4_t
15441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15442 vreinterpret_u16_u32 (uint32x2_t __a)
15444 return (uint16x4_t)__a;
15447 __extension__ extern __inline uint32x2_t
15448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15449 vreinterpret_u32_p8 (poly8x8_t __a)
15451 return (uint32x2_t)__a;
15454 __extension__ extern __inline uint32x2_t
15455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15456 vreinterpret_u32_p16 (poly16x4_t __a)
15458 return (uint32x2_t)__a;
15461 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15462 __extension__ extern __inline uint32x2_t
15463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15464 vreinterpret_u32_f16 (float16x4_t __a)
15466 return (uint32x2_t) __a;
15468 #endif
15470 __extension__ extern __inline uint32x2_t
15471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15472 vreinterpret_u32_f32 (float32x2_t __a)
15474 return (uint32x2_t)__a;
15477 #pragma GCC push_options
15478 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15479 __extension__ extern __inline uint32x2_t
15480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15481 vreinterpret_u32_p64 (poly64x1_t __a)
15483 return (uint32x2_t)__a;
15486 #pragma GCC pop_options
15487 __extension__ extern __inline uint32x2_t
15488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15489 vreinterpret_u32_s64 (int64x1_t __a)
15491 return (uint32x2_t)__a;
15494 __extension__ extern __inline uint32x2_t
15495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15496 vreinterpret_u32_u64 (uint64x1_t __a)
15498 return (uint32x2_t)__a;
15501 __extension__ extern __inline uint32x2_t
15502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15503 vreinterpret_u32_s8 (int8x8_t __a)
15505 return (uint32x2_t)__a;
15508 __extension__ extern __inline uint32x2_t
15509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15510 vreinterpret_u32_s16 (int16x4_t __a)
15512 return (uint32x2_t)__a;
15515 __extension__ extern __inline uint32x2_t
15516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15517 vreinterpret_u32_s32 (int32x2_t __a)
15519 return (uint32x2_t)__a;
15522 __extension__ extern __inline uint32x2_t
15523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15524 vreinterpret_u32_u8 (uint8x8_t __a)
15526 return (uint32x2_t)__a;
15529 __extension__ extern __inline uint32x2_t
15530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15531 vreinterpret_u32_u16 (uint16x4_t __a)
15533 return (uint32x2_t)__a;
15536 __extension__ extern __inline poly8x16_t
15537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15538 vreinterpretq_p8_p16 (poly16x8_t __a)
15540 return (poly8x16_t)__a;
15543 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15544 __extension__ extern __inline poly8x16_t
15545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15546 vreinterpretq_p8_f16 (float16x8_t __a)
15548 return (poly8x16_t) __a;
15550 #endif
15552 __extension__ extern __inline poly8x16_t
15553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15554 vreinterpretq_p8_f32 (float32x4_t __a)
15556 return (poly8x16_t)__a;
15559 #pragma GCC push_options
15560 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15561 __extension__ extern __inline poly8x16_t
15562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15563 vreinterpretq_p8_p64 (poly64x2_t __a)
15565 return (poly8x16_t)__a;
15569 __extension__ extern __inline poly8x16_t
15570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15571 vreinterpretq_p8_p128 (poly128_t __a)
15573 return (poly8x16_t)__a;
15576 #pragma GCC pop_options
15577 __extension__ extern __inline poly8x16_t
15578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15579 vreinterpretq_p8_s64 (int64x2_t __a)
15581 return (poly8x16_t)__a;
15584 __extension__ extern __inline poly8x16_t
15585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15586 vreinterpretq_p8_u64 (uint64x2_t __a)
15588 return (poly8x16_t)__a;
15591 __extension__ extern __inline poly8x16_t
15592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15593 vreinterpretq_p8_s8 (int8x16_t __a)
15595 return (poly8x16_t)__a;
15598 __extension__ extern __inline poly8x16_t
15599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15600 vreinterpretq_p8_s16 (int16x8_t __a)
15602 return (poly8x16_t)__a;
15605 __extension__ extern __inline poly8x16_t
15606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15607 vreinterpretq_p8_s32 (int32x4_t __a)
15609 return (poly8x16_t)__a;
15612 __extension__ extern __inline poly8x16_t
15613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15614 vreinterpretq_p8_u8 (uint8x16_t __a)
15616 return (poly8x16_t)__a;
15619 __extension__ extern __inline poly8x16_t
15620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15621 vreinterpretq_p8_u16 (uint16x8_t __a)
15623 return (poly8x16_t)__a;
15626 __extension__ extern __inline poly8x16_t
15627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15628 vreinterpretq_p8_u32 (uint32x4_t __a)
15630 return (poly8x16_t)__a;
15633 __extension__ extern __inline poly16x8_t
15634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15635 vreinterpretq_p16_p8 (poly8x16_t __a)
15637 return (poly16x8_t)__a;
15640 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15641 __extension__ extern __inline poly16x8_t
15642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15643 vreinterpretq_p16_f16 (float16x8_t __a)
15645 return (poly16x8_t) __a;
15647 #endif
15649 __extension__ extern __inline poly16x8_t
15650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15651 vreinterpretq_p16_f32 (float32x4_t __a)
15653 return (poly16x8_t)__a;
15656 #pragma GCC push_options
15657 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15658 __extension__ extern __inline poly16x8_t
15659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15660 vreinterpretq_p16_p64 (poly64x2_t __a)
15662 return (poly16x8_t)__a;
15665 __extension__ extern __inline poly16x8_t
15666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15667 vreinterpretq_p16_p128 (poly128_t __a)
15669 return (poly16x8_t)__a;
15672 #pragma GCC pop_options
15673 __extension__ extern __inline poly16x8_t
15674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15675 vreinterpretq_p16_s64 (int64x2_t __a)
15677 return (poly16x8_t)__a;
15680 __extension__ extern __inline poly16x8_t
15681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15682 vreinterpretq_p16_u64 (uint64x2_t __a)
15684 return (poly16x8_t)__a;
15687 __extension__ extern __inline poly16x8_t
15688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15689 vreinterpretq_p16_s8 (int8x16_t __a)
15691 return (poly16x8_t)__a;
15694 __extension__ extern __inline poly16x8_t
15695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15696 vreinterpretq_p16_s16 (int16x8_t __a)
15698 return (poly16x8_t)__a;
15701 __extension__ extern __inline poly16x8_t
15702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15703 vreinterpretq_p16_s32 (int32x4_t __a)
15705 return (poly16x8_t)__a;
15708 __extension__ extern __inline poly16x8_t
15709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15710 vreinterpretq_p16_u8 (uint8x16_t __a)
15712 return (poly16x8_t)__a;
15715 __extension__ extern __inline poly16x8_t
15716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15717 vreinterpretq_p16_u16 (uint16x8_t __a)
15719 return (poly16x8_t)__a;
15722 __extension__ extern __inline poly16x8_t
15723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15724 vreinterpretq_p16_u32 (uint32x4_t __a)
15726 return (poly16x8_t)__a;
15729 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15730 __extension__ extern __inline float16x8_t
15731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15732 vreinterpretq_f16_p8 (poly8x16_t __a)
15734 return (float16x8_t) __a;
15736 #endif
15738 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15739 __extension__ extern __inline float16x8_t
15740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15741 vreinterpretq_f16_p16 (poly16x8_t __a)
15743 return (float16x8_t) __a;
15745 #endif
15747 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15748 __extension__ extern __inline float16x8_t
15749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15750 vreinterpretq_f16_bf16 (bfloat16x8_t __a)
15752 return (float16x8_t) __a;
15754 #endif
15756 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15757 __extension__ extern __inline float16x8_t
15758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15759 vreinterpretq_f16_f32 (float32x4_t __a)
15761 return (float16x8_t) __a;
15763 #endif
15765 #pragma GCC push_options
15766 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15768 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15769 __extension__ extern __inline float16x8_t
15770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15771 vreinterpretq_f16_p64 (poly64x2_t __a)
15773 return (float16x8_t) __a;
15775 #endif
15777 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15778 __extension__ extern __inline float16x8_t
15779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15780 vreinterpretq_f16_p128 (poly128_t __a)
15782 return (float16x8_t) __a;
15784 #endif
15786 #pragma GCC pop_options
15788 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15789 __extension__ extern __inline float16x8_t
15790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15791 vreinterpretq_f16_s64 (int64x2_t __a)
15793 return (float16x8_t) __a;
15795 #endif
15797 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15798 __extension__ extern __inline float16x8_t
15799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15800 vreinterpretq_f16_u64 (uint64x2_t __a)
15802 return (float16x8_t) __a;
15804 #endif
15806 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15807 __extension__ extern __inline float16x8_t
15808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15809 vreinterpretq_f16_s8 (int8x16_t __a)
15811 return (float16x8_t) __a;
15813 #endif
15815 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15816 __extension__ extern __inline float16x8_t
15817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15818 vreinterpretq_f16_s16 (int16x8_t __a)
15820 return (float16x8_t) __a;
15822 #endif
15824 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15825 __extension__ extern __inline float16x8_t
15826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15827 vreinterpretq_f16_s32 (int32x4_t __a)
15829 return (float16x8_t) __a;
15831 #endif
15833 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15834 __extension__ extern __inline float16x8_t
15835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15836 vreinterpretq_f16_u8 (uint8x16_t __a)
15838 return (float16x8_t) __a;
15840 #endif
15842 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15843 __extension__ extern __inline float16x8_t
15844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15845 vreinterpretq_f16_u16 (uint16x8_t __a)
15847 return (float16x8_t) __a;
15849 #endif
15851 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15852 __extension__ extern __inline float16x8_t
15853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15854 vreinterpretq_f16_u32 (uint32x4_t __a)
15856 return (float16x8_t) __a;
15858 #endif
15860 __extension__ extern __inline float32x4_t
15861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15862 vreinterpretq_f32_p8 (poly8x16_t __a)
15864 return (float32x4_t)__a;
15867 __extension__ extern __inline float32x4_t
15868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15869 vreinterpretq_f32_p16 (poly16x8_t __a)
15871 return (float32x4_t)__a;
15874 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15875 __extension__ extern __inline float32x4_t
15876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15877 vreinterpretq_f32_f16 (float16x8_t __a)
15879 return (float32x4_t) __a;
15881 #endif
15883 #pragma GCC push_options
15884 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15885 __extension__ extern __inline float32x4_t
15886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15887 vreinterpretq_f32_p64 (poly64x2_t __a)
15889 return (float32x4_t)__a;
15892 __extension__ extern __inline float32x4_t
15893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15894 vreinterpretq_f32_p128 (poly128_t __a)
15896 return (float32x4_t)__a;
15899 #pragma GCC pop_options
15900 __extension__ extern __inline float32x4_t
15901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15902 vreinterpretq_f32_s64 (int64x2_t __a)
15904 return (float32x4_t)__a;
15907 __extension__ extern __inline float32x4_t
15908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15909 vreinterpretq_f32_u64 (uint64x2_t __a)
15911 return (float32x4_t)__a;
15914 __extension__ extern __inline float32x4_t
15915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15916 vreinterpretq_f32_s8 (int8x16_t __a)
15918 return (float32x4_t)__a;
15921 __extension__ extern __inline float32x4_t
15922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15923 vreinterpretq_f32_s16 (int16x8_t __a)
15925 return (float32x4_t)__a;
15928 __extension__ extern __inline float32x4_t
15929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15930 vreinterpretq_f32_s32 (int32x4_t __a)
15932 return (float32x4_t)__a;
15935 __extension__ extern __inline float32x4_t
15936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15937 vreinterpretq_f32_u8 (uint8x16_t __a)
15939 return (float32x4_t)__a;
15942 __extension__ extern __inline float32x4_t
15943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15944 vreinterpretq_f32_u16 (uint16x8_t __a)
15946 return (float32x4_t)__a;
15949 __extension__ extern __inline float32x4_t
15950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15951 vreinterpretq_f32_u32 (uint32x4_t __a)
15953 return (float32x4_t)__a;
15956 #pragma GCC push_options
15957 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
15958 __extension__ extern __inline poly64x2_t
15959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15960 vreinterpretq_p64_p8 (poly8x16_t __a)
15962 return (poly64x2_t)__a;
15965 __extension__ extern __inline poly64x2_t
15966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15967 vreinterpretq_p64_p16 (poly16x8_t __a)
15969 return (poly64x2_t)__a;
15972 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
15973 __extension__ extern __inline poly64x2_t
15974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15975 vreinterpretq_p64_f16 (float16x8_t __a)
15977 return (poly64x2_t) __a;
15979 #endif
15981 __extension__ extern __inline poly64x2_t
15982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15983 vreinterpretq_p64_f32 (float32x4_t __a)
15985 return (poly64x2_t)__a;
15988 __extension__ extern __inline poly64x2_t
15989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15990 vreinterpretq_p64_p128 (poly128_t __a)
15992 return (poly64x2_t)__a;
15995 __extension__ extern __inline poly64x2_t
15996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
15997 vreinterpretq_p64_s64 (int64x2_t __a)
15999 return (poly64x2_t)__a;
16002 __extension__ extern __inline poly64x2_t
16003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16004 vreinterpretq_p64_u64 (uint64x2_t __a)
16006 return (poly64x2_t)__a;
16009 __extension__ extern __inline poly64x2_t
16010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16011 vreinterpretq_p64_s8 (int8x16_t __a)
16013 return (poly64x2_t)__a;
16016 __extension__ extern __inline poly64x2_t
16017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16018 vreinterpretq_p64_s16 (int16x8_t __a)
16020 return (poly64x2_t)__a;
16023 __extension__ extern __inline poly64x2_t
16024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16025 vreinterpretq_p64_s32 (int32x4_t __a)
16027 return (poly64x2_t)__a;
16030 __extension__ extern __inline poly64x2_t
16031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16032 vreinterpretq_p64_u8 (uint8x16_t __a)
16034 return (poly64x2_t)__a;
16037 __extension__ extern __inline poly64x2_t
16038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16039 vreinterpretq_p64_u16 (uint16x8_t __a)
16041 return (poly64x2_t)__a;
16044 __extension__ extern __inline poly64x2_t
16045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16046 vreinterpretq_p64_u32 (uint32x4_t __a)
16048 return (poly64x2_t)__a;
16051 __extension__ extern __inline poly128_t
16052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16053 vreinterpretq_p128_p8 (poly8x16_t __a)
16055 return (poly128_t)__a;
16058 __extension__ extern __inline poly128_t
16059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16060 vreinterpretq_p128_p16 (poly16x8_t __a)
16062 return (poly128_t)__a;
16065 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16066 __extension__ extern __inline poly128_t
16067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16068 vreinterpretq_p128_f16 (float16x8_t __a)
16070 return (poly128_t) __a;
16072 #endif
16074 __extension__ extern __inline poly128_t
16075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16076 vreinterpretq_p128_f32 (float32x4_t __a)
16078 return (poly128_t)__a;
16081 __extension__ extern __inline poly128_t
16082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16083 vreinterpretq_p128_p64 (poly64x2_t __a)
16085 return (poly128_t)__a;
16088 __extension__ extern __inline poly128_t
16089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16090 vreinterpretq_p128_s64 (int64x2_t __a)
16092 return (poly128_t)__a;
16095 __extension__ extern __inline poly128_t
16096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16097 vreinterpretq_p128_u64 (uint64x2_t __a)
16099 return (poly128_t)__a;
16102 __extension__ extern __inline poly128_t
16103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16104 vreinterpretq_p128_s8 (int8x16_t __a)
16106 return (poly128_t)__a;
16109 __extension__ extern __inline poly128_t
16110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16111 vreinterpretq_p128_s16 (int16x8_t __a)
16113 return (poly128_t)__a;
16116 __extension__ extern __inline poly128_t
16117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16118 vreinterpretq_p128_s32 (int32x4_t __a)
16120 return (poly128_t)__a;
16123 __extension__ extern __inline poly128_t
16124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16125 vreinterpretq_p128_u8 (uint8x16_t __a)
16127 return (poly128_t)__a;
16130 __extension__ extern __inline poly128_t
16131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16132 vreinterpretq_p128_u16 (uint16x8_t __a)
16134 return (poly128_t)__a;
16137 __extension__ extern __inline poly128_t
16138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16139 vreinterpretq_p128_u32 (uint32x4_t __a)
16141 return (poly128_t)__a;
16144 #pragma GCC pop_options
16145 __extension__ extern __inline int64x2_t
16146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16147 vreinterpretq_s64_p8 (poly8x16_t __a)
16149 return (int64x2_t)__a;
16152 __extension__ extern __inline int64x2_t
16153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16154 vreinterpretq_s64_p16 (poly16x8_t __a)
16156 return (int64x2_t)__a;
16159 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16160 __extension__ extern __inline int64x2_t
16161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16162 vreinterpretq_s64_f16 (float16x8_t __a)
16164 return (int64x2_t) __a;
16166 #endif
16168 __extension__ extern __inline int64x2_t
16169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16170 vreinterpretq_s64_f32 (float32x4_t __a)
16172 return (int64x2_t)__a;
16175 #pragma GCC push_options
16176 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16177 __extension__ extern __inline int64x2_t
16178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16179 vreinterpretq_s64_p64 (poly64x2_t __a)
16181 return (int64x2_t)__a;
16184 __extension__ extern __inline int64x2_t
16185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16186 vreinterpretq_s64_p128 (poly128_t __a)
16188 return (int64x2_t)__a;
16191 #pragma GCC pop_options
16192 __extension__ extern __inline int64x2_t
16193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16194 vreinterpretq_s64_u64 (uint64x2_t __a)
16196 return (int64x2_t)__a;
16199 __extension__ extern __inline int64x2_t
16200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16201 vreinterpretq_s64_s8 (int8x16_t __a)
16203 return (int64x2_t)__a;
16206 __extension__ extern __inline int64x2_t
16207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16208 vreinterpretq_s64_s16 (int16x8_t __a)
16210 return (int64x2_t)__a;
16213 __extension__ extern __inline int64x2_t
16214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16215 vreinterpretq_s64_s32 (int32x4_t __a)
16217 return (int64x2_t)__a;
16220 __extension__ extern __inline int64x2_t
16221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16222 vreinterpretq_s64_u8 (uint8x16_t __a)
16224 return (int64x2_t)__a;
16227 __extension__ extern __inline int64x2_t
16228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16229 vreinterpretq_s64_u16 (uint16x8_t __a)
16231 return (int64x2_t)__a;
16234 __extension__ extern __inline int64x2_t
16235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16236 vreinterpretq_s64_u32 (uint32x4_t __a)
16238 return (int64x2_t)__a;
16241 __extension__ extern __inline uint64x2_t
16242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16243 vreinterpretq_u64_p8 (poly8x16_t __a)
16245 return (uint64x2_t)__a;
16248 __extension__ extern __inline uint64x2_t
16249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16250 vreinterpretq_u64_p16 (poly16x8_t __a)
16252 return (uint64x2_t)__a;
16255 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16256 __extension__ extern __inline uint64x2_t
16257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16258 vreinterpretq_u64_f16 (float16x8_t __a)
16260 return (uint64x2_t) __a;
16262 #endif
16264 __extension__ extern __inline uint64x2_t
16265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16266 vreinterpretq_u64_f32 (float32x4_t __a)
16268 return (uint64x2_t)__a;
16271 #pragma GCC push_options
16272 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16273 __extension__ extern __inline uint64x2_t
16274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16275 vreinterpretq_u64_p64 (poly64x2_t __a)
16277 return (uint64x2_t)__a;
16280 __extension__ extern __inline uint64x2_t
16281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16282 vreinterpretq_u64_p128 (poly128_t __a)
16284 return (uint64x2_t)__a;
16287 #pragma GCC pop_options
16288 __extension__ extern __inline uint64x2_t
16289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16290 vreinterpretq_u64_s64 (int64x2_t __a)
16292 return (uint64x2_t)__a;
16295 __extension__ extern __inline uint64x2_t
16296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16297 vreinterpretq_u64_s8 (int8x16_t __a)
16299 return (uint64x2_t)__a;
16302 __extension__ extern __inline uint64x2_t
16303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16304 vreinterpretq_u64_s16 (int16x8_t __a)
16306 return (uint64x2_t)__a;
16309 __extension__ extern __inline uint64x2_t
16310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16311 vreinterpretq_u64_s32 (int32x4_t __a)
16313 return (uint64x2_t)__a;
16316 __extension__ extern __inline uint64x2_t
16317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16318 vreinterpretq_u64_u8 (uint8x16_t __a)
16320 return (uint64x2_t)__a;
16323 __extension__ extern __inline uint64x2_t
16324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16325 vreinterpretq_u64_u16 (uint16x8_t __a)
16327 return (uint64x2_t)__a;
16330 __extension__ extern __inline uint64x2_t
16331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16332 vreinterpretq_u64_u32 (uint32x4_t __a)
16334 return (uint64x2_t)__a;
16337 __extension__ extern __inline int8x16_t
16338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16339 vreinterpretq_s8_p8 (poly8x16_t __a)
16341 return (int8x16_t)__a;
16344 __extension__ extern __inline int8x16_t
16345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16346 vreinterpretq_s8_p16 (poly16x8_t __a)
16348 return (int8x16_t)__a;
16351 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16352 __extension__ extern __inline int8x16_t
16353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16354 vreinterpretq_s8_f16 (float16x8_t __a)
16356 return (int8x16_t) __a;
16358 #endif
16360 __extension__ extern __inline int8x16_t
16361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16362 vreinterpretq_s8_f32 (float32x4_t __a)
16364 return (int8x16_t)__a;
16367 #pragma GCC push_options
16368 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16369 __extension__ extern __inline int8x16_t
16370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16371 vreinterpretq_s8_p64 (poly64x2_t __a)
16373 return (int8x16_t)__a;
16376 __extension__ extern __inline int8x16_t
16377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16378 vreinterpretq_s8_p128 (poly128_t __a)
16380 return (int8x16_t)__a;
16383 #pragma GCC pop_options
16384 __extension__ extern __inline int8x16_t
16385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16386 vreinterpretq_s8_s64 (int64x2_t __a)
16388 return (int8x16_t)__a;
16391 __extension__ extern __inline int8x16_t
16392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16393 vreinterpretq_s8_u64 (uint64x2_t __a)
16395 return (int8x16_t)__a;
16398 __extension__ extern __inline int8x16_t
16399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16400 vreinterpretq_s8_s16 (int16x8_t __a)
16402 return (int8x16_t)__a;
16405 __extension__ extern __inline int8x16_t
16406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16407 vreinterpretq_s8_s32 (int32x4_t __a)
16409 return (int8x16_t)__a;
16412 __extension__ extern __inline int8x16_t
16413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16414 vreinterpretq_s8_u8 (uint8x16_t __a)
16416 return (int8x16_t)__a;
16419 __extension__ extern __inline int8x16_t
16420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16421 vreinterpretq_s8_u16 (uint16x8_t __a)
16423 return (int8x16_t)__a;
16426 __extension__ extern __inline int8x16_t
16427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16428 vreinterpretq_s8_u32 (uint32x4_t __a)
16430 return (int8x16_t)__a;
16433 __extension__ extern __inline int16x8_t
16434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16435 vreinterpretq_s16_p8 (poly8x16_t __a)
16437 return (int16x8_t)__a;
16440 __extension__ extern __inline int16x8_t
16441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16442 vreinterpretq_s16_p16 (poly16x8_t __a)
16444 return (int16x8_t)__a;
16447 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16448 __extension__ extern __inline int16x8_t
16449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16450 vreinterpretq_s16_f16 (float16x8_t __a)
16452 return (int16x8_t) __a;
16454 #endif
16456 __extension__ extern __inline int16x8_t
16457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16458 vreinterpretq_s16_f32 (float32x4_t __a)
16460 return (int16x8_t)__a;
16463 #pragma GCC push_options
16464 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16465 __extension__ extern __inline int16x8_t
16466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16467 vreinterpretq_s16_p64 (poly64x2_t __a)
16469 return (int16x8_t)__a;
16472 __extension__ extern __inline int16x8_t
16473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16474 vreinterpretq_s16_p128 (poly128_t __a)
16476 return (int16x8_t)__a;
16479 #pragma GCC pop_options
16480 __extension__ extern __inline int16x8_t
16481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16482 vreinterpretq_s16_s64 (int64x2_t __a)
16484 return (int16x8_t)__a;
16487 __extension__ extern __inline int16x8_t
16488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16489 vreinterpretq_s16_u64 (uint64x2_t __a)
16491 return (int16x8_t)__a;
16494 __extension__ extern __inline int16x8_t
16495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16496 vreinterpretq_s16_s8 (int8x16_t __a)
16498 return (int16x8_t)__a;
16501 __extension__ extern __inline int16x8_t
16502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16503 vreinterpretq_s16_s32 (int32x4_t __a)
16505 return (int16x8_t)__a;
16508 __extension__ extern __inline int16x8_t
16509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16510 vreinterpretq_s16_u8 (uint8x16_t __a)
16512 return (int16x8_t)__a;
16515 __extension__ extern __inline int16x8_t
16516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16517 vreinterpretq_s16_u16 (uint16x8_t __a)
16519 return (int16x8_t)__a;
16522 __extension__ extern __inline int16x8_t
16523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16524 vreinterpretq_s16_u32 (uint32x4_t __a)
16526 return (int16x8_t)__a;
16529 __extension__ extern __inline int32x4_t
16530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16531 vreinterpretq_s32_p8 (poly8x16_t __a)
16533 return (int32x4_t)__a;
16536 __extension__ extern __inline int32x4_t
16537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16538 vreinterpretq_s32_p16 (poly16x8_t __a)
16540 return (int32x4_t)__a;
16543 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16544 __extension__ extern __inline int32x4_t
16545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16546 vreinterpretq_s32_f16 (float16x8_t __a)
16548 return (int32x4_t)__a;
16550 #endif
16552 __extension__ extern __inline int32x4_t
16553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16554 vreinterpretq_s32_f32 (float32x4_t __a)
16556 return (int32x4_t)__a;
16559 #pragma GCC push_options
16560 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16561 __extension__ extern __inline int32x4_t
16562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16563 vreinterpretq_s32_p64 (poly64x2_t __a)
16565 return (int32x4_t)__a;
16568 __extension__ extern __inline int32x4_t
16569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16570 vreinterpretq_s32_p128 (poly128_t __a)
16572 return (int32x4_t)__a;
16575 #pragma GCC pop_options
16576 __extension__ extern __inline int32x4_t
16577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16578 vreinterpretq_s32_s64 (int64x2_t __a)
16580 return (int32x4_t)__a;
16583 __extension__ extern __inline int32x4_t
16584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16585 vreinterpretq_s32_u64 (uint64x2_t __a)
16587 return (int32x4_t)__a;
16590 __extension__ extern __inline int32x4_t
16591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16592 vreinterpretq_s32_s8 (int8x16_t __a)
16594 return (int32x4_t)__a;
16597 __extension__ extern __inline int32x4_t
16598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16599 vreinterpretq_s32_s16 (int16x8_t __a)
16601 return (int32x4_t)__a;
16604 __extension__ extern __inline int32x4_t
16605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16606 vreinterpretq_s32_u8 (uint8x16_t __a)
16608 return (int32x4_t)__a;
16611 __extension__ extern __inline int32x4_t
16612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16613 vreinterpretq_s32_u16 (uint16x8_t __a)
16615 return (int32x4_t)__a;
16618 __extension__ extern __inline int32x4_t
16619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16620 vreinterpretq_s32_u32 (uint32x4_t __a)
16622 return (int32x4_t)__a;
16625 __extension__ extern __inline uint8x16_t
16626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16627 vreinterpretq_u8_p8 (poly8x16_t __a)
16629 return (uint8x16_t)__a;
16632 __extension__ extern __inline uint8x16_t
16633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16634 vreinterpretq_u8_p16 (poly16x8_t __a)
16636 return (uint8x16_t)__a;
16639 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16640 __extension__ extern __inline uint8x16_t
16641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16642 vreinterpretq_u8_f16 (float16x8_t __a)
16644 return (uint8x16_t) __a;
16646 #endif
16648 __extension__ extern __inline uint8x16_t
16649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16650 vreinterpretq_u8_f32 (float32x4_t __a)
16652 return (uint8x16_t)__a;
16655 #pragma GCC push_options
16656 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16657 __extension__ extern __inline uint8x16_t
16658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16659 vreinterpretq_u8_p64 (poly64x2_t __a)
16661 return (uint8x16_t)__a;
16664 __extension__ extern __inline uint8x16_t
16665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16666 vreinterpretq_u8_p128 (poly128_t __a)
16668 return (uint8x16_t)__a;
16671 #pragma GCC pop_options
16672 __extension__ extern __inline uint8x16_t
16673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16674 vreinterpretq_u8_s64 (int64x2_t __a)
16676 return (uint8x16_t)__a;
16679 __extension__ extern __inline uint8x16_t
16680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16681 vreinterpretq_u8_u64 (uint64x2_t __a)
16683 return (uint8x16_t)__a;
16686 __extension__ extern __inline uint8x16_t
16687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16688 vreinterpretq_u8_s8 (int8x16_t __a)
16690 return (uint8x16_t)__a;
16693 __extension__ extern __inline uint8x16_t
16694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16695 vreinterpretq_u8_s16 (int16x8_t __a)
16697 return (uint8x16_t)__a;
16700 __extension__ extern __inline uint8x16_t
16701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16702 vreinterpretq_u8_s32 (int32x4_t __a)
16704 return (uint8x16_t)__a;
16707 __extension__ extern __inline uint8x16_t
16708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16709 vreinterpretq_u8_u16 (uint16x8_t __a)
16711 return (uint8x16_t)__a;
16714 __extension__ extern __inline uint8x16_t
16715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16716 vreinterpretq_u8_u32 (uint32x4_t __a)
16718 return (uint8x16_t)__a;
16721 __extension__ extern __inline uint16x8_t
16722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16723 vreinterpretq_u16_p8 (poly8x16_t __a)
16725 return (uint16x8_t)__a;
16728 __extension__ extern __inline uint16x8_t
16729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16730 vreinterpretq_u16_p16 (poly16x8_t __a)
16732 return (uint16x8_t)__a;
16735 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16736 __extension__ extern __inline uint16x8_t
16737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16738 vreinterpretq_u16_f16 (float16x8_t __a)
16740 return (uint16x8_t) __a;
16742 #endif
16744 __extension__ extern __inline uint16x8_t
16745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16746 vreinterpretq_u16_f32 (float32x4_t __a)
16748 return (uint16x8_t)__a;
16751 #pragma GCC push_options
16752 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16753 __extension__ extern __inline uint16x8_t
16754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16755 vreinterpretq_u16_p64 (poly64x2_t __a)
16757 return (uint16x8_t)__a;
16760 __extension__ extern __inline uint16x8_t
16761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16762 vreinterpretq_u16_p128 (poly128_t __a)
16764 return (uint16x8_t)__a;
16767 #pragma GCC pop_options
16768 __extension__ extern __inline uint16x8_t
16769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16770 vreinterpretq_u16_s64 (int64x2_t __a)
16772 return (uint16x8_t)__a;
16775 __extension__ extern __inline uint16x8_t
16776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16777 vreinterpretq_u16_u64 (uint64x2_t __a)
16779 return (uint16x8_t)__a;
16782 __extension__ extern __inline uint16x8_t
16783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16784 vreinterpretq_u16_s8 (int8x16_t __a)
16786 return (uint16x8_t)__a;
16789 __extension__ extern __inline uint16x8_t
16790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16791 vreinterpretq_u16_s16 (int16x8_t __a)
16793 return (uint16x8_t)__a;
16796 __extension__ extern __inline uint16x8_t
16797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16798 vreinterpretq_u16_s32 (int32x4_t __a)
16800 return (uint16x8_t)__a;
16803 __extension__ extern __inline uint16x8_t
16804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16805 vreinterpretq_u16_u8 (uint8x16_t __a)
16807 return (uint16x8_t)__a;
16810 __extension__ extern __inline uint16x8_t
16811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16812 vreinterpretq_u16_u32 (uint32x4_t __a)
16814 return (uint16x8_t)__a;
16817 __extension__ extern __inline uint32x4_t
16818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16819 vreinterpretq_u32_p8 (poly8x16_t __a)
16821 return (uint32x4_t)__a;
16824 __extension__ extern __inline uint32x4_t
16825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16826 vreinterpretq_u32_p16 (poly16x8_t __a)
16828 return (uint32x4_t)__a;
16831 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
16832 __extension__ extern __inline uint32x4_t
16833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16834 vreinterpretq_u32_f16 (float16x8_t __a)
16836 return (uint32x4_t) __a;
16838 #endif
16840 __extension__ extern __inline uint32x4_t
16841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16842 vreinterpretq_u32_f32 (float32x4_t __a)
16844 return (uint32x4_t)__a;
16847 #pragma GCC push_options
16848 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16849 __extension__ extern __inline uint32x4_t
16850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16851 vreinterpretq_u32_p64 (poly64x2_t __a)
16853 return (uint32x4_t)__a;
16856 __extension__ extern __inline uint32x4_t
16857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16858 vreinterpretq_u32_p128 (poly128_t __a)
16860 return (uint32x4_t)__a;
16863 #pragma GCC pop_options
16864 __extension__ extern __inline uint32x4_t
16865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16866 vreinterpretq_u32_s64 (int64x2_t __a)
16868 return (uint32x4_t)__a;
16871 __extension__ extern __inline uint32x4_t
16872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16873 vreinterpretq_u32_u64 (uint64x2_t __a)
16875 return (uint32x4_t)__a;
16878 __extension__ extern __inline uint32x4_t
16879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16880 vreinterpretq_u32_s8 (int8x16_t __a)
16882 return (uint32x4_t)__a;
16885 __extension__ extern __inline uint32x4_t
16886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16887 vreinterpretq_u32_s16 (int16x8_t __a)
16889 return (uint32x4_t)__a;
16892 __extension__ extern __inline uint32x4_t
16893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16894 vreinterpretq_u32_s32 (int32x4_t __a)
16896 return (uint32x4_t)__a;
16899 __extension__ extern __inline uint32x4_t
16900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16901 vreinterpretq_u32_u8 (uint8x16_t __a)
16903 return (uint32x4_t)__a;
16906 __extension__ extern __inline uint32x4_t
16907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16908 vreinterpretq_u32_u16 (uint16x8_t __a)
16910 return (uint32x4_t)__a;
16914 #pragma GCC push_options
16915 #pragma GCC target ("fpu=crypto-neon-fp-armv8")
16916 __extension__ extern __inline poly128_t
16917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16918 vldrq_p128 (poly128_t const * __ptr)
16920 #ifdef __ARM_BIG_ENDIAN
16921 poly64_t* __ptmp = (poly64_t*) __ptr;
16922 poly64_t __d0 = vld1_p64 (__ptmp);
16923 poly64_t __d1 = vld1_p64 (__ptmp + 1);
16924 return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0));
16925 #else
16926 return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr));
16927 #endif
16930 __extension__ extern __inline void
16931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16932 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
16934 #ifdef __ARM_BIG_ENDIAN
16935 poly64x2_t __tmp = vreinterpretq_p64_p128 (__val);
16936 poly64_t __d0 = vget_high_p64 (__tmp);
16937 poly64_t __d1 = vget_low_p64 (__tmp);
16938 vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1));
16939 #else
16940 vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val));
16941 #endif
16944 /* The vceq_p64 intrinsic does not map to a single instruction.
16945 Instead we emulate it by performing a 32-bit variant of the vceq
16946 and applying a pairwise min reduction to the result.
16947 vceq_u32 will produce two 32-bit halves, each of which will contain either
16948 all ones or all zeros depending on whether the corresponding 32-bit
16949 halves of the poly64_t were equal. The whole poly64_t values are equal
16950 if and only if both halves are equal, i.e. vceq_u32 returns all ones.
16951 If the result is all zeroes for any half then the whole result is zeroes.
16952 This is what the pairwise min reduction achieves. */
16954 __extension__ extern __inline uint64x1_t
16955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16956 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
16958 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
16959 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
16960 uint32x2_t __c = vceq_u32 (__t_a, __t_b);
16961 uint32x2_t __m = vpmin_u32 (__c, __c);
16962 return vreinterpret_u64_u32 (__m);
16965 __extension__ extern __inline uint64x1_t
16966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16967 vceqz_p64 (poly64x1_t __a)
16969 poly64x1_t __b = vreinterpret_p64_u32 (vdup_n_u32 (0));
16970 return vceq_p64 (__a, __b);
16973 /* For vceqq_p64, we rely on vceq_p64 for each of the two elements. */
16974 __extension__ extern __inline uint64x2_t
16975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16976 vceqq_p64 (poly64x2_t __a, poly64x2_t __b)
16978 poly64_t __high_a = vget_high_p64 (__a);
16979 poly64_t __high_b = vget_high_p64 (__b);
16980 uint64x1_t __high = vceq_p64 (__high_a, __high_b);
16982 poly64_t __low_a = vget_low_p64 (__a);
16983 poly64_t __low_b = vget_low_p64 (__b);
16984 uint64x1_t __low = vceq_p64 (__low_a, __low_b);
16985 return vcombine_u64 (__low, __high);
16988 __extension__ extern __inline uint64x2_t
16989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
16990 vceqzq_p64 (poly64x2_t __a)
16992 poly64x2_t __b = vreinterpretq_p64_u32 (vdupq_n_u32 (0));
16993 return vceqq_p64 (__a, __b);
16996 /* The vtst_p64 intrinsic does not map to a single instruction.
16997 We emulate it in way similar to vceq_p64 above but here we do
16998 a reduction with max since if any two corresponding bits
16999 in the two poly64_t's match, then the whole result must be all ones. */
17001 __extension__ extern __inline uint64x1_t
17002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17003 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
17005 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
17006 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
17007 uint32x2_t __c = vtst_u32 (__t_a, __t_b);
17008 uint32x2_t __m = vpmax_u32 (__c, __c);
17009 return vreinterpret_u64_u32 (__m);
17012 __extension__ extern __inline uint8x16_t
17013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17014 vaeseq_u8 (uint8x16_t __data, uint8x16_t __key)
17016 return __builtin_arm_crypto_aese (__data, __key);
17019 __extension__ extern __inline uint8x16_t
17020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17021 vaesdq_u8 (uint8x16_t __data, uint8x16_t __key)
17023 return __builtin_arm_crypto_aesd (__data, __key);
17026 __extension__ extern __inline uint8x16_t
17027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17028 vaesmcq_u8 (uint8x16_t __data)
17030 return __builtin_arm_crypto_aesmc (__data);
17033 __extension__ extern __inline uint8x16_t
17034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17035 vaesimcq_u8 (uint8x16_t __data)
17037 return __builtin_arm_crypto_aesimc (__data);
17040 __extension__ extern __inline uint32_t
17041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17042 vsha1h_u32 (uint32_t __hash_e)
17044 return vgetq_lane_u32 (__builtin_arm_crypto_sha1h (vdupq_n_u32 (__hash_e)),
17048 __extension__ extern __inline uint32x4_t
17049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17050 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
17052 return __builtin_arm_crypto_sha1c (__hash_abcd, vdupq_n_u32 (__hash_e),
17053 __wk);
17056 __extension__ extern __inline uint32x4_t
17057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17058 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
17060 return __builtin_arm_crypto_sha1p (__hash_abcd, vdupq_n_u32 (__hash_e),
17061 __wk);
17064 __extension__ extern __inline uint32x4_t
17065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17066 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
17068 return __builtin_arm_crypto_sha1m (__hash_abcd, vdupq_n_u32 (__hash_e),
17069 __wk);
17072 __extension__ extern __inline uint32x4_t
17073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17074 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
17076 return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11);
17079 __extension__ extern __inline uint32x4_t
17080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17081 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
17083 return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15);
17086 __extension__ extern __inline uint32x4_t
17087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17088 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
17090 return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk);
17093 __extension__ extern __inline uint32x4_t
17094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17095 vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
17097 return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk);
17100 __extension__ extern __inline uint32x4_t
17101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17102 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
17104 return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7);
17107 __extension__ extern __inline uint32x4_t
17108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17109 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
17111 return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15);
17114 __extension__ extern __inline poly128_t
17115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17116 vmull_p64 (poly64_t __a, poly64_t __b)
17118 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b);
17121 __extension__ extern __inline poly128_t
17122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17123 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
17125 poly64_t __t1 = vget_high_p64 (__a);
17126 poly64_t __t2 = vget_high_p64 (__b);
17128 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2);
17131 #pragma GCC pop_options
17133 /* Intrinsics for FP16 instructions. */
17134 #pragma GCC push_options
17135 #pragma GCC target ("fpu=neon-fp-armv8")
17136 #if defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
17138 __extension__ extern __inline float16x4_t
17139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17140 vabd_f16 (float16x4_t __a, float16x4_t __b)
17142 return __builtin_neon_vabdv4hf (__a, __b);
17145 __extension__ extern __inline float16x8_t
17146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17147 vabdq_f16 (float16x8_t __a, float16x8_t __b)
17149 return __builtin_neon_vabdv8hf (__a, __b);
17152 __extension__ extern __inline float16x4_t
17153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17154 vabs_f16 (float16x4_t __a)
17156 return __builtin_neon_vabsv4hf (__a);
17159 __extension__ extern __inline float16x8_t
17160 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17161 vabsq_f16 (float16x8_t __a)
17163 return __builtin_neon_vabsv8hf (__a);
17166 __extension__ extern __inline float16x4_t
17167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17168 vadd_f16 (float16x4_t __a, float16x4_t __b)
17170 #ifdef __FAST_MATH__
17171 return __a + __b;
17172 #else
17173 return __builtin_neon_vaddv4hf (__a, __b);
17174 #endif
17177 __extension__ extern __inline float16x8_t
17178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17179 vaddq_f16 (float16x8_t __a, float16x8_t __b)
17181 #ifdef __FAST_MATH__
17182 return __a + __b;
17183 #else
17184 return __builtin_neon_vaddv8hf (__a, __b);
17185 #endif
17188 __extension__ extern __inline uint16x4_t
17189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17190 vcage_f16 (float16x4_t __a, float16x4_t __b)
17192 #ifdef __FAST_MATH__
17193 return (uint16x4_t) (vabs_f16 (__a) >= vabs_f16 (__b));
17194 #else
17195 return (uint16x4_t)__builtin_neon_vcagev4hf (__a, __b);
17196 #endif
17199 __extension__ extern __inline uint16x8_t
17200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17201 vcageq_f16 (float16x8_t __a, float16x8_t __b)
17203 #ifdef __FAST_MATH__
17204 return (uint16x8_t) (vabsq_f16 (__a) >= vabsq_f16 (__b));
17205 #else
17206 return (uint16x8_t)__builtin_neon_vcagev8hf (__a, __b);
17207 #endif
17210 __extension__ extern __inline uint16x4_t
17211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17212 vcagt_f16 (float16x4_t __a, float16x4_t __b)
17214 #ifdef __FAST_MATH__
17215 return (uint16x4_t) (vabs_f16 (__a) > vabs_f16 (__b));
17216 #else
17217 return (uint16x4_t)__builtin_neon_vcagtv4hf (__a, __b);
17218 #endif
17221 __extension__ extern __inline uint16x8_t
17222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17223 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
17225 #ifdef __FAST_MATH__
17226 return (uint16x8_t) (vabsq_f16 (__a) > vabsq_f16 (__b));
17227 #else
17228 return (uint16x8_t)__builtin_neon_vcagtv8hf (__a, __b);
17229 #endif
17232 __extension__ extern __inline uint16x4_t
17233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17234 vcale_f16 (float16x4_t __a, float16x4_t __b)
17236 #ifdef __FAST_MATH__
17237 return (uint16x4_t) (vabs_f16 (__a) <= vabs_f16 (__b));
17238 #else
17239 return (uint16x4_t)__builtin_neon_vcalev4hf (__a, __b);
17240 #endif
17243 __extension__ extern __inline uint16x8_t
17244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17245 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
17247 #ifdef __FAST_MATH__
17248 return (uint16x8_t) (vabsq_f16 (__a) <= vabsq_f16 (__b));
17249 #else
17250 return (uint16x8_t)__builtin_neon_vcalev8hf (__a, __b);
17251 #endif
17254 __extension__ extern __inline uint16x4_t
17255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17256 vcalt_f16 (float16x4_t __a, float16x4_t __b)
17258 #ifdef __FAST_MATH__
17259 return (uint16x4_t) (vabs_f16 (__a) < vabs_f16 (__b));
17260 #else
17261 return (uint16x4_t)__builtin_neon_vcaltv4hf (__a, __b);
17262 #endif
17265 __extension__ extern __inline uint16x8_t
17266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17267 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
17269 #ifdef __FAST_MATH__
17270 return (uint16x8_t) (vabsq_f16 (__a) < vabsq_f16 (__b));
17271 #else
17272 return (uint16x8_t)__builtin_neon_vcaltv8hf (__a, __b);
17273 #endif
17276 __extension__ extern __inline uint16x4_t
17277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17278 vceq_f16 (float16x4_t __a, float16x4_t __b)
17280 #ifdef __FAST_MATH__
17281 return (uint16x4_t) (__a == __b);
17282 #else
17283 return (uint16x4_t)__builtin_neon_vceqv4hf (__a, __b);
17284 #endif
17287 __extension__ extern __inline uint16x8_t
17288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17289 vceqq_f16 (float16x8_t __a, float16x8_t __b)
17291 #ifdef __FAST_MATH__
17292 return (uint16x8_t) (__a == __b);
17293 #else
17294 return (uint16x8_t)__builtin_neon_vceqv8hf (__a, __b);
17295 #endif
17298 __extension__ extern __inline uint16x4_t
17299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17300 vceqz_f16 (float16x4_t __a)
17302 return (uint16x4_t)__builtin_neon_vceqzv4hf (__a);
17305 __extension__ extern __inline uint16x8_t
17306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17307 vceqzq_f16 (float16x8_t __a)
17309 return (uint16x8_t)__builtin_neon_vceqzv8hf (__a);
17312 __extension__ extern __inline uint16x4_t
17313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17314 vcge_f16 (float16x4_t __a, float16x4_t __b)
17316 return (uint16x4_t)__builtin_neon_vcgev4hf (__a, __b);
17319 __extension__ extern __inline uint16x8_t
17320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17321 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
17323 return (uint16x8_t)__builtin_neon_vcgev8hf (__a, __b);
17326 __extension__ extern __inline uint16x4_t
17327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17328 vcgez_f16 (float16x4_t __a)
17330 return (uint16x4_t)__builtin_neon_vcgezv4hf (__a);
17333 __extension__ extern __inline uint16x8_t
17334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17335 vcgezq_f16 (float16x8_t __a)
17337 return (uint16x8_t)__builtin_neon_vcgezv8hf (__a);
17340 __extension__ extern __inline uint16x4_t
17341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17342 vcgt_f16 (float16x4_t __a, float16x4_t __b)
17344 return (uint16x4_t)__builtin_neon_vcgtv4hf (__a, __b);
17347 __extension__ extern __inline uint16x8_t
17348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17349 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
17351 return (uint16x8_t)__builtin_neon_vcgtv8hf (__a, __b);
17354 __extension__ extern __inline uint16x4_t
17355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17356 vcgtz_f16 (float16x4_t __a)
17358 return (uint16x4_t)__builtin_neon_vcgtzv4hf (__a);
17361 __extension__ extern __inline uint16x8_t
17362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17363 vcgtzq_f16 (float16x8_t __a)
17365 return (uint16x8_t)__builtin_neon_vcgtzv8hf (__a);
17368 __extension__ extern __inline uint16x4_t
17369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17370 vcle_f16 (float16x4_t __a, float16x4_t __b)
17372 return (uint16x4_t)__builtin_neon_vclev4hf (__a, __b);
17375 __extension__ extern __inline uint16x8_t
17376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17377 vcleq_f16 (float16x8_t __a, float16x8_t __b)
17379 return (uint16x8_t)__builtin_neon_vclev8hf (__a, __b);
17382 __extension__ extern __inline uint16x4_t
17383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17384 vclez_f16 (float16x4_t __a)
17386 return (uint16x4_t)__builtin_neon_vclezv4hf (__a);
17389 __extension__ extern __inline uint16x8_t
17390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17391 vclezq_f16 (float16x8_t __a)
17393 return (uint16x8_t)__builtin_neon_vclezv8hf (__a);
17396 __extension__ extern __inline uint16x4_t
17397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17398 vclt_f16 (float16x4_t __a, float16x4_t __b)
17400 return (uint16x4_t)__builtin_neon_vcltv4hf (__a, __b);
17403 __extension__ extern __inline uint16x8_t
17404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17405 vcltq_f16 (float16x8_t __a, float16x8_t __b)
17407 return (uint16x8_t)__builtin_neon_vcltv8hf (__a, __b);
17410 __extension__ extern __inline uint16x4_t
17411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17412 vcltz_f16 (float16x4_t __a)
17414 return (uint16x4_t)__builtin_neon_vcltzv4hf (__a);
17417 __extension__ extern __inline uint16x8_t
17418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17419 vcltzq_f16 (float16x8_t __a)
17421 return (uint16x8_t)__builtin_neon_vcltzv8hf (__a);
17424 __extension__ extern __inline float16x4_t
17425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17426 vcvt_f16_s16 (int16x4_t __a)
17428 return (float16x4_t)__builtin_neon_vcvtsv4hi (__a);
17431 __extension__ extern __inline float16x4_t
17432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17433 vcvt_f16_u16 (uint16x4_t __a)
17435 return (float16x4_t)__builtin_neon_vcvtuv4hi ((int16x4_t)__a);
17438 __extension__ extern __inline int16x4_t
17439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17440 vcvt_s16_f16 (float16x4_t __a)
17442 return (int16x4_t)__builtin_neon_vcvtsv4hf (__a);
17445 __extension__ extern __inline uint16x4_t
17446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17447 vcvt_u16_f16 (float16x4_t __a)
17449 return (uint16x4_t)__builtin_neon_vcvtuv4hf (__a);
17452 __extension__ extern __inline float16x8_t
17453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17454 vcvtq_f16_s16 (int16x8_t __a)
17456 return (float16x8_t)__builtin_neon_vcvtsv8hi (__a);
17459 __extension__ extern __inline float16x8_t
17460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17461 vcvtq_f16_u16 (uint16x8_t __a)
17463 return (float16x8_t)__builtin_neon_vcvtuv8hi ((int16x8_t)__a);
17466 __extension__ extern __inline int16x8_t
17467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17468 vcvtq_s16_f16 (float16x8_t __a)
17470 return (int16x8_t)__builtin_neon_vcvtsv8hf (__a);
17473 __extension__ extern __inline uint16x8_t
17474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17475 vcvtq_u16_f16 (float16x8_t __a)
17477 return (uint16x8_t)__builtin_neon_vcvtuv8hf (__a);
17480 __extension__ extern __inline int16x4_t
17481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17482 vcvta_s16_f16 (float16x4_t __a)
17484 return __builtin_neon_vcvtasv4hf (__a);
17487 __extension__ extern __inline uint16x4_t
17488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17489 vcvta_u16_f16 (float16x4_t __a)
17491 return (uint16x4_t)__builtin_neon_vcvtauv4hf (__a);
17494 __extension__ extern __inline int16x8_t
17495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17496 vcvtaq_s16_f16 (float16x8_t __a)
17498 return __builtin_neon_vcvtasv8hf (__a);
17501 __extension__ extern __inline uint16x8_t
17502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17503 vcvtaq_u16_f16 (float16x8_t __a)
17505 return (uint16x8_t)__builtin_neon_vcvtauv8hf (__a);
17508 __extension__ extern __inline int16x4_t
17509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17510 vcvtm_s16_f16 (float16x4_t __a)
17512 return __builtin_neon_vcvtmsv4hf (__a);
17515 __extension__ extern __inline uint16x4_t
17516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17517 vcvtm_u16_f16 (float16x4_t __a)
17519 return (uint16x4_t)__builtin_neon_vcvtmuv4hf (__a);
17522 __extension__ extern __inline int16x8_t
17523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17524 vcvtmq_s16_f16 (float16x8_t __a)
17526 return __builtin_neon_vcvtmsv8hf (__a);
17529 __extension__ extern __inline uint16x8_t
17530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17531 vcvtmq_u16_f16 (float16x8_t __a)
17533 return (uint16x8_t)__builtin_neon_vcvtmuv8hf (__a);
17536 __extension__ extern __inline int16x4_t
17537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17538 vcvtn_s16_f16 (float16x4_t __a)
17540 return __builtin_neon_vcvtnsv4hf (__a);
17543 __extension__ extern __inline uint16x4_t
17544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17545 vcvtn_u16_f16 (float16x4_t __a)
17547 return (uint16x4_t)__builtin_neon_vcvtnuv4hf (__a);
17550 __extension__ extern __inline int16x8_t
17551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17552 vcvtnq_s16_f16 (float16x8_t __a)
17554 return __builtin_neon_vcvtnsv8hf (__a);
17557 __extension__ extern __inline uint16x8_t
17558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17559 vcvtnq_u16_f16 (float16x8_t __a)
17561 return (uint16x8_t)__builtin_neon_vcvtnuv8hf (__a);
17564 __extension__ extern __inline int16x4_t
17565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17566 vcvtp_s16_f16 (float16x4_t __a)
17568 return __builtin_neon_vcvtpsv4hf (__a);
17571 __extension__ extern __inline uint16x4_t
17572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17573 vcvtp_u16_f16 (float16x4_t __a)
17575 return (uint16x4_t)__builtin_neon_vcvtpuv4hf (__a);
17578 __extension__ extern __inline int16x8_t
17579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17580 vcvtpq_s16_f16 (float16x8_t __a)
17582 return __builtin_neon_vcvtpsv8hf (__a);
17585 __extension__ extern __inline uint16x8_t
17586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17587 vcvtpq_u16_f16 (float16x8_t __a)
17589 return (uint16x8_t)__builtin_neon_vcvtpuv8hf (__a);
17592 __extension__ extern __inline float16x4_t
17593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17594 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
17596 return __builtin_neon_vcvts_nv4hi (__a, __b);
17599 __extension__ extern __inline float16x4_t
17600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17601 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
17603 return __builtin_neon_vcvtu_nv4hi ((int16x4_t)__a, __b);
17606 __extension__ extern __inline float16x8_t
17607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17608 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
17610 return __builtin_neon_vcvts_nv8hi (__a, __b);
17613 __extension__ extern __inline float16x8_t
17614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17615 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
17617 return __builtin_neon_vcvtu_nv8hi ((int16x8_t)__a, __b);
17620 __extension__ extern __inline int16x4_t
17621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17622 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
17624 return __builtin_neon_vcvts_nv4hf (__a, __b);
17627 __extension__ extern __inline uint16x4_t
17628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17629 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
17631 return (uint16x4_t)__builtin_neon_vcvtu_nv4hf (__a, __b);
17634 __extension__ extern __inline int16x8_t
17635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17636 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
17638 return __builtin_neon_vcvts_nv8hf (__a, __b);
17641 __extension__ extern __inline uint16x8_t
17642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17643 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
17645 return (uint16x8_t)__builtin_neon_vcvtu_nv8hf (__a, __b);
17648 __extension__ extern __inline float16x4_t
17649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17650 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17652 return __builtin_neon_vfmav4hf (__a, __b, __c);
17655 __extension__ extern __inline float16x8_t
17656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17657 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17659 return __builtin_neon_vfmav8hf (__a, __b, __c);
17662 __extension__ extern __inline float16x4_t
17663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17664 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
17666 return __builtin_neon_vfmsv4hf (__a, __b, __c);
17669 __extension__ extern __inline float16x8_t
17670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17671 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
17673 return __builtin_neon_vfmsv8hf (__a, __b, __c);
17676 __extension__ extern __inline float16x4_t
17677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17678 vmax_f16 (float16x4_t __a, float16x4_t __b)
17680 return __builtin_neon_vmaxfv4hf (__a, __b);
17683 __extension__ extern __inline float16x8_t
17684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17685 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
17687 return __builtin_neon_vmaxfv8hf (__a, __b);
17690 __extension__ extern __inline float16x4_t
17691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17692 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
17694 return __builtin_neon_vmaxnmv4hf (__a, __b);
17697 __extension__ extern __inline float16x8_t
17698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17699 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
17701 return __builtin_neon_vmaxnmv8hf (__a, __b);
17704 __extension__ extern __inline float16x4_t
17705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17706 vmin_f16 (float16x4_t __a, float16x4_t __b)
17708 return __builtin_neon_vminfv4hf (__a, __b);
17711 __extension__ extern __inline float16x8_t
17712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17713 vminq_f16 (float16x8_t __a, float16x8_t __b)
17715 return __builtin_neon_vminfv8hf (__a, __b);
17718 __extension__ extern __inline float16x4_t
17719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17720 vminnm_f16 (float16x4_t __a, float16x4_t __b)
17722 return __builtin_neon_vminnmv4hf (__a, __b);
17725 __extension__ extern __inline float16x8_t
17726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17727 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
17729 return __builtin_neon_vminnmv8hf (__a, __b);
17732 __extension__ extern __inline float16x4_t
17733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17734 vmul_f16 (float16x4_t __a, float16x4_t __b)
17736 #ifdef __FAST_MATH__
17737 return __a * __b;
17738 #else
17739 return __builtin_neon_vmulfv4hf (__a, __b);
17740 #endif
17743 __extension__ extern __inline float16x4_t
17744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17745 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __c)
17747 return __builtin_neon_vmul_lanev4hf (__a, __b, __c);
17750 __extension__ extern __inline float16x4_t
17751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17752 vmul_n_f16 (float16x4_t __a, float16_t __b)
17754 #ifdef __FAST_MATH__
17755 return __a * __b;
17756 #else
17757 return __builtin_neon_vmul_nv4hf (__a, __b);
17758 #endif
17761 __extension__ extern __inline float16x8_t
17762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17763 vmulq_f16 (float16x8_t __a, float16x8_t __b)
17765 #ifdef __FAST_MATH__
17766 return __a * __b;
17767 #else
17768 return __builtin_neon_vmulfv8hf (__a, __b);
17769 #endif
17772 __extension__ extern __inline float16x8_t
17773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17774 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __c)
17776 return __builtin_neon_vmul_lanev8hf (__a, __b, __c);
17779 __extension__ extern __inline float16x8_t
17780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17781 vmulq_n_f16 (float16x8_t __a, float16_t __b)
17783 #ifdef __FAST_MATH__
17784 return __a * __b;
17785 #else
17786 return __builtin_neon_vmul_nv8hf (__a, __b);
17787 #endif
17790 __extension__ extern __inline float16x4_t
17791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17792 vneg_f16 (float16x4_t __a)
17794 return __builtin_neon_vnegv4hf (__a);
17797 __extension__ extern __inline float16x8_t
17798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17799 vnegq_f16 (float16x8_t __a)
17801 return __builtin_neon_vnegv8hf (__a);
17804 __extension__ extern __inline float16x4_t
17805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17806 vpadd_f16 (float16x4_t __a, float16x4_t __b)
17808 return __builtin_neon_vpaddv4hf (__a, __b);
17811 __extension__ extern __inline float16x4_t
17812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17813 vpmax_f16 (float16x4_t __a, float16x4_t __b)
17815 return __builtin_neon_vpmaxfv4hf (__a, __b);
17818 __extension__ extern __inline float16x4_t
17819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17820 vpmin_f16 (float16x4_t __a, float16x4_t __b)
17822 return __builtin_neon_vpminfv4hf (__a, __b);
17825 __extension__ extern __inline float16x4_t
17826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17827 vrecpe_f16 (float16x4_t __a)
17829 return __builtin_neon_vrecpev4hf (__a);
17832 __extension__ extern __inline float16x8_t
17833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17834 vrecpeq_f16 (float16x8_t __a)
17836 return __builtin_neon_vrecpev8hf (__a);
17839 __extension__ extern __inline float16x4_t
17840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17841 vrnd_f16 (float16x4_t __a)
17843 return __builtin_neon_vrndv4hf (__a);
17846 __extension__ extern __inline float16x8_t
17847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17848 vrndq_f16 (float16x8_t __a)
17850 return __builtin_neon_vrndv8hf (__a);
17853 __extension__ extern __inline float16x4_t
17854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17855 vrnda_f16 (float16x4_t __a)
17857 return __builtin_neon_vrndav4hf (__a);
17860 __extension__ extern __inline float16x8_t
17861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17862 vrndaq_f16 (float16x8_t __a)
17864 return __builtin_neon_vrndav8hf (__a);
17867 __extension__ extern __inline float16x4_t
17868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17869 vrndm_f16 (float16x4_t __a)
17871 return __builtin_neon_vrndmv4hf (__a);
17874 __extension__ extern __inline float16x8_t
17875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17876 vrndmq_f16 (float16x8_t __a)
17878 return __builtin_neon_vrndmv8hf (__a);
17881 __extension__ extern __inline float16x4_t
17882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17883 vrndn_f16 (float16x4_t __a)
17885 return __builtin_neon_vrndnv4hf (__a);
17888 __extension__ extern __inline float16x8_t
17889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17890 vrndnq_f16 (float16x8_t __a)
17892 return __builtin_neon_vrndnv8hf (__a);
17895 __extension__ extern __inline float16x4_t
17896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17897 vrndp_f16 (float16x4_t __a)
17899 return __builtin_neon_vrndpv4hf (__a);
17902 __extension__ extern __inline float16x8_t
17903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17904 vrndpq_f16 (float16x8_t __a)
17906 return __builtin_neon_vrndpv8hf (__a);
17909 __extension__ extern __inline float16x4_t
17910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17911 vrndx_f16 (float16x4_t __a)
17913 return __builtin_neon_vrndxv4hf (__a);
17916 __extension__ extern __inline float16x8_t
17917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17918 vrndxq_f16 (float16x8_t __a)
17920 return __builtin_neon_vrndxv8hf (__a);
17923 __extension__ extern __inline float16x4_t
17924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17925 vrsqrte_f16 (float16x4_t __a)
17927 return __builtin_neon_vrsqrtev4hf (__a);
17930 __extension__ extern __inline float16x8_t
17931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17932 vrsqrteq_f16 (float16x8_t __a)
17934 return __builtin_neon_vrsqrtev8hf (__a);
17937 __extension__ extern __inline float16x4_t
17938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17939 vrecps_f16 (float16x4_t __a, float16x4_t __b)
17941 return __builtin_neon_vrecpsv4hf (__a, __b);
17944 __extension__ extern __inline float16x8_t
17945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17946 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
17948 return __builtin_neon_vrecpsv8hf (__a, __b);
17951 __extension__ extern __inline float16x4_t
17952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17953 vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
17955 return __builtin_neon_vrsqrtsv4hf (__a, __b);
17958 __extension__ extern __inline float16x8_t
17959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17960 vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
17962 return __builtin_neon_vrsqrtsv8hf (__a, __b);
17965 __extension__ extern __inline float16x4_t
17966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17967 vsub_f16 (float16x4_t __a, float16x4_t __b)
17969 #ifdef __FAST_MATH__
17970 return __a - __b;
17971 #else
17972 return __builtin_neon_vsubv4hf (__a, __b);
17973 #endif
17976 __extension__ extern __inline float16x8_t
17977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17978 vsubq_f16 (float16x8_t __a, float16x8_t __b)
17980 #ifdef __FAST_MATH__
17981 return __a - __b;
17982 #else
17983 return __builtin_neon_vsubv8hf (__a, __b);
17984 #endif
17987 #endif /* __ARM_FEATURE_VECTOR_FP16_ARITHMETIC. */
17988 #pragma GCC pop_options
17990 /* Half-precision data processing intrinsics. */
17991 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
17993 __extension__ extern __inline float16x4_t
17994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17995 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
17997 return __builtin_neon_vbslv4hf ((int16x4_t)__a, __b, __c);
18000 __extension__ extern __inline float16x8_t
18001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18002 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
18004 return __builtin_neon_vbslv8hf ((int16x8_t)__a, __b, __c);
18007 __extension__ extern __inline float16x4_t
18008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18009 vdup_n_f16 (float16_t __a)
18011 return (float16x4_t) {__a, __a, __a, __a};
18014 __extension__ extern __inline float16x8_t
18015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18016 vdupq_n_f16 (float16_t __a)
18018 return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
18021 __extension__ extern __inline float16x4_t
18022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18023 vdup_lane_f16 (float16x4_t __a, const int __b)
18025 return __builtin_neon_vdup_lanev4hf (__a, __b);
18028 __extension__ extern __inline float16x8_t
18029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18030 vdupq_lane_f16 (float16x4_t __a, const int __b)
18032 return __builtin_neon_vdup_lanev8hf (__a, __b);
18035 __extension__ extern __inline float16x4_t
18036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18037 vext_f16 (float16x4_t __a, float16x4_t __b, const int __c)
18039 return __builtin_neon_vextv4hf (__a, __b, __c);
18042 __extension__ extern __inline float16x8_t
18043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18044 vextq_f16 (float16x8_t __a, float16x8_t __b, const int __c)
18046 return __builtin_neon_vextv8hf (__a, __b, __c);
18049 __extension__ extern __inline float16x4_t
18050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18051 vmov_n_f16 (float16_t __a)
18053 return vdup_n_f16 (__a);
18056 __extension__ extern __inline float16x8_t
18057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18058 vmovq_n_f16 (float16_t __a)
18060 return vdupq_n_f16 (__a);
18063 __extension__ extern __inline float16x4_t
18064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18065 vrev64_f16 (float16x4_t __a)
18067 return (float16x4_t)__builtin_shuffle (__a, (uint16x4_t){ 3, 2, 1, 0 });
18070 __extension__ extern __inline float16x8_t
18071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18072 vrev64q_f16 (float16x8_t __a)
18074 return
18075 (float16x8_t)__builtin_shuffle (__a,
18076 (uint16x8_t){ 3, 2, 1, 0, 7, 6, 5, 4 });
18079 __extension__ extern __inline float16x4x2_t
18080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18081 vtrn_f16 (float16x4_t __a, float16x4_t __b)
18083 float16x4x2_t __rv;
18084 #ifdef __ARM_BIG_ENDIAN
18085 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 1, 7, 3 });
18086 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 6, 2 });
18087 #else
18088 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 2, 6 });
18089 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 5, 3, 7 });
18090 #endif
18091 return __rv;
18094 __extension__ extern __inline float16x8x2_t
18095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18096 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
18098 float16x8x2_t __rv;
18099 #ifdef __ARM_BIG_ENDIAN
18100 __rv.val[0] = __builtin_shuffle (__a, __b,
18101 (uint16x8_t){ 9, 1, 11, 3, 13, 5, 15, 7 });
18102 __rv.val[1] = __builtin_shuffle (__a, __b,
18103 (uint16x8_t){ 8, 0, 10, 2, 12, 4, 14, 6 });
18104 #else
18105 __rv.val[0] = __builtin_shuffle (__a, __b,
18106 (uint16x8_t){ 0, 8, 2, 10, 4, 12, 6, 14 });
18107 __rv.val[1] = __builtin_shuffle (__a, __b,
18108 (uint16x8_t){ 1, 9, 3, 11, 5, 13, 7, 15 });
18109 #endif
18110 return __rv;
18113 __extension__ extern __inline float16x4x2_t
18114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18115 vuzp_f16 (float16x4_t __a, float16x4_t __b)
18117 float16x4x2_t __rv;
18118 #ifdef __ARM_BIG_ENDIAN
18119 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 5, 7, 1, 3 });
18120 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 6, 0, 2 });
18121 #else
18122 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 2, 4, 6 });
18123 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 1, 3, 5, 7 });
18124 #endif
18125 return __rv;
18128 __extension__ extern __inline float16x8x2_t
18129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18130 vuzpq_f16 (float16x8_t __a, float16x8_t __b)
18132 float16x8x2_t __rv;
18133 #ifdef __ARM_BIG_ENDIAN
18134 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
18135 { 5, 7, 1, 3, 13, 15, 9, 11 });
18136 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
18137 { 4, 6, 0, 2, 12, 14, 8, 10 });
18138 #else
18139 __rv.val[0] = __builtin_shuffle (__a, __b,
18140 (uint16x8_t){ 0, 2, 4, 6, 8, 10, 12, 14 });
18141 __rv.val[1] = __builtin_shuffle (__a, __b,
18142 (uint16x8_t){ 1, 3, 5, 7, 9, 11, 13, 15 });
18143 #endif
18144 return __rv;
18147 __extension__ extern __inline float16x4x2_t
18148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18149 vzip_f16 (float16x4_t __a, float16x4_t __b)
18151 float16x4x2_t __rv;
18152 #ifdef __ARM_BIG_ENDIAN
18153 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 6, 2, 7, 3 });
18154 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 4, 0, 5, 1 });
18155 #else
18156 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t){ 0, 4, 1, 5 });
18157 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t){ 2, 6, 3, 7 });
18158 #endif
18159 return __rv;
18162 __extension__ extern __inline float16x8x2_t
18163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18164 vzipq_f16 (float16x8_t __a, float16x8_t __b)
18166 float16x8x2_t __rv;
18167 #ifdef __ARM_BIG_ENDIAN
18168 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
18169 { 10, 2, 11, 3, 8, 0, 9, 1 });
18170 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
18171 { 14, 6, 15, 7, 12, 4, 13, 5 });
18172 #else
18173 __rv.val[0] = __builtin_shuffle (__a, __b,
18174 (uint16x8_t){ 0, 8, 1, 9, 2, 10, 3, 11 });
18175 __rv.val[1] = __builtin_shuffle (__a, __b,
18176 (uint16x8_t){ 4, 12, 5, 13, 6, 14, 7, 15 });
18177 #endif
18178 return __rv;
18181 #endif
18183 /* AdvSIMD Dot Product intrinsics. */
18185 #if __ARM_ARCH >= 8
18186 #pragma GCC push_options
18187 #pragma GCC target ("arch=armv8.2-a+dotprod")
18189 __extension__ extern __inline uint32x2_t
18190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18191 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
18193 return __builtin_neon_udotv8qi_uuuu (__r, __a, __b);
18196 __extension__ extern __inline uint32x4_t
18197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18198 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
18200 return __builtin_neon_udotv16qi_uuuu (__r, __a, __b);
18203 __extension__ extern __inline int32x2_t
18204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18205 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
18207 return __builtin_neon_sdotv8qi (__r, __a, __b);
18210 __extension__ extern __inline int32x4_t
18211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18212 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
18214 return __builtin_neon_sdotv16qi (__r, __a, __b);
18217 __extension__ extern __inline uint32x2_t
18218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18219 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
18221 return __builtin_neon_udot_lanev8qi_uuuus (__r, __a, __b, __index);
18224 __extension__ extern __inline uint32x4_t
18225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18226 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
18227 const int __index)
18229 return __builtin_neon_udot_lanev16qi_uuuus (__r, __a, __b, __index);
18232 __extension__ extern __inline int32x2_t
18233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18234 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
18236 return __builtin_neon_sdot_lanev8qi (__r, __a, __b, __index);
18239 __extension__ extern __inline int32x4_t
18240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18241 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
18243 return __builtin_neon_sdot_lanev16qi (__r, __a, __b, __index);
18246 __extension__ extern __inline uint32x2_t
18247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18248 vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b, const int __index)
18250 return __builtin_neon_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
18253 __extension__ extern __inline uint32x4_t
18254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18255 vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
18256 const int __index)
18258 return __builtin_neon_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
18261 __extension__ extern __inline int32x2_t
18262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18263 vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
18265 return __builtin_neon_sdot_laneqv8qi (__r, __a, __b, __index);
18268 __extension__ extern __inline int32x4_t
18269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18270 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
18272 return __builtin_neon_sdot_laneqv16qi (__r, __a, __b, __index);
18275 #pragma GCC pop_options
18276 #endif
18278 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18279 #pragma GCC push_options
18280 #pragma GCC target ("arch=armv8.2-a+fp16fml")
18282 __extension__ extern __inline float32x2_t
18283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18284 vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18286 return __builtin_neon_vfmal_lowv2sf (__r, __a, __b);
18289 __extension__ extern __inline float32x2_t
18290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18291 vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18293 return __builtin_neon_vfmsl_lowv2sf (__r, __a, __b);
18296 __extension__ extern __inline float32x2_t
18297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18298 vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18300 return __builtin_neon_vfmal_highv2sf (__r, __a, __b);
18303 __extension__ extern __inline float32x2_t
18304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18305 vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
18307 return __builtin_neon_vfmsl_highv2sf (__r, __a, __b);
18310 __extension__ extern __inline float32x4_t
18311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18312 vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18314 return __builtin_neon_vfmal_lowv4sf (__r, __a, __b);
18317 __extension__ extern __inline float32x4_t
18318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18319 vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18321 return __builtin_neon_vfmsl_lowv4sf (__r, __a, __b);
18324 __extension__ extern __inline float32x4_t
18325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18326 vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18328 return __builtin_neon_vfmal_highv4sf (__r, __a, __b);
18331 __extension__ extern __inline float32x4_t
18332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18333 vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
18335 return __builtin_neon_vfmsl_highv4sf (__r, __a, __b);
18338 __extension__ extern __inline float32x2_t
18339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18340 vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18341 const int __index)
18343 __builtin_arm_lane_check (4, __index);
18344 return __builtin_neon_vfmal_lane_lowv2sf (__r, __a, __b, __index);
18347 __extension__ extern __inline float32x2_t
18348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18349 vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18350 const int __index)
18352 __builtin_arm_lane_check (4, __index);
18353 return __builtin_neon_vfmal_lane_highv2sf (__r, __a, __b, __index);
18356 __extension__ extern __inline float32x4_t
18357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18358 vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18359 const int __index)
18361 __builtin_arm_lane_check (8, __index);
18362 return __builtin_neon_vfmal_lane_lowv4sf (__r, __a, __b, __index);
18365 __extension__ extern __inline float32x4_t
18366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18367 vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18368 const int __index)
18370 __builtin_arm_lane_check (4, __index);
18371 return __builtin_neon_vfmal_lane_lowv4hfv4sf (__r, __a, __b, __index);
18374 __extension__ extern __inline float32x2_t
18375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18376 vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18377 const int __index)
18379 __builtin_arm_lane_check (8, __index);
18380 return __builtin_neon_vfmal_lane_lowv8hfv2sf (__r, __a, __b, __index);
18383 __extension__ extern __inline float32x4_t
18384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18385 vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18386 const int __index)
18388 __builtin_arm_lane_check (8, __index);
18389 return __builtin_neon_vfmal_lane_highv4sf (__r, __a, __b, __index);
18392 __extension__ extern __inline float32x4_t
18393 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18394 vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18395 const int __index)
18397 __builtin_arm_lane_check (4, __index);
18398 return __builtin_neon_vfmal_lane_highv4hfv4sf (__r, __a, __b, __index);
18401 __extension__ extern __inline float32x2_t
18402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18403 vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18404 const int __index)
18406 __builtin_arm_lane_check (8, __index);
18407 return __builtin_neon_vfmal_lane_highv8hfv2sf (__r, __a, __b, __index);
18410 __extension__ extern __inline float32x2_t
18411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18412 vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18413 const int __index)
18415 __builtin_arm_lane_check (4, __index);
18416 return __builtin_neon_vfmsl_lane_lowv2sf (__r, __a, __b, __index);
18419 __extension__ extern __inline float32x2_t
18420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18421 vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
18422 const int __index)
18424 __builtin_arm_lane_check (4, __index);
18425 return __builtin_neon_vfmsl_lane_highv2sf (__r, __a, __b, __index);
18428 __extension__ extern __inline float32x4_t
18429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18430 vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18431 const int __index)
18433 __builtin_arm_lane_check (8, __index);
18434 return __builtin_neon_vfmsl_lane_lowv4sf (__r, __a, __b, __index);
18437 __extension__ extern __inline float32x4_t
18438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18439 vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18440 const int __index)
18442 __builtin_arm_lane_check (4, __index);
18443 return __builtin_neon_vfmsl_lane_lowv4hfv4sf (__r, __a, __b, __index);
18446 __extension__ extern __inline float32x2_t
18447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18448 vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18449 const int __index)
18451 __builtin_arm_lane_check (8, __index);
18452 return __builtin_neon_vfmsl_lane_lowv8hfv2sf (__r, __a, __b, __index);
18455 __extension__ extern __inline float32x4_t
18456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18457 vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
18458 const int __index)
18460 __builtin_arm_lane_check (8, __index);
18461 return __builtin_neon_vfmsl_lane_highv4sf (__r, __a, __b, __index);
18464 __extension__ extern __inline float32x4_t
18465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18466 vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
18467 const int __index)
18469 __builtin_arm_lane_check (4, __index);
18470 return __builtin_neon_vfmsl_lane_highv4hfv4sf (__r, __a, __b, __index);
18473 __extension__ extern __inline float32x2_t
18474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18475 vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
18476 const int __index)
18478 __builtin_arm_lane_check (8, __index);
18479 return __builtin_neon_vfmsl_lane_highv8hfv2sf (__r, __a, __b, __index);
18482 #pragma GCC pop_options
18483 #endif
18485 /* AdvSIMD Complex numbers intrinsics. */
18486 #if __ARM_ARCH >= 8
18487 #pragma GCC push_options
18488 #pragma GCC target ("arch=armv8.3-a")
18491 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
18492 #pragma GCC push_options
18493 #pragma GCC target ("+fp16")
18494 __extension__ extern __inline float16x4_t
18495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18496 vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
18498 return __builtin_neon_vcadd90v4hf (__a, __b);
18501 __extension__ extern __inline float16x8_t
18502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18503 vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
18505 return __builtin_neon_vcadd90v8hf (__a, __b);
18508 __extension__ extern __inline float16x4_t
18509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18510 vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
18512 return __builtin_neon_vcadd90v4hf (__a, __b);
18515 __extension__ extern __inline float16x8_t
18516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18517 vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
18519 return __builtin_neon_vcadd90v8hf (__a, __b);
18522 __extension__ extern __inline float16x4_t
18523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18524 vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18526 return __builtin_neon_vcmla0v4hf (__r, __a, __b);
18529 __extension__ extern __inline float16x8_t
18530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18531 vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18533 return __builtin_neon_vcmla0v8hf (__r, __a, __b);
18536 __extension__ extern __inline float16x4_t
18537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18538 vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18539 const int __index)
18541 return __builtin_neon_vcmla_lane0v4hf (__r, __a, __b, __index);
18544 __extension__ extern __inline float16x4_t
18545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18546 vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18547 const int __index)
18549 return __builtin_neon_vcmla_laneq0v4hf (__r, __a, __b, __index);
18552 __extension__ extern __inline float16x8_t
18553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18554 vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18555 const int __index)
18557 return __builtin_neon_vcmlaq_lane0v8hf (__r, __a, __b, __index);
18560 __extension__ extern __inline float16x8_t
18561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18562 vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18563 const int __index)
18565 return __builtin_neon_vcmla_lane0v8hf (__r, __a, __b, __index);
18568 __extension__ extern __inline float16x4_t
18569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18570 vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18572 return __builtin_neon_vcmla90v4hf (__r, __a, __b);
18575 __extension__ extern __inline float16x8_t
18576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18577 vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18579 return __builtin_neon_vcmla90v8hf (__r, __a, __b);
18582 __extension__ extern __inline float16x4_t
18583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18584 vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18585 const int __index)
18587 return __builtin_neon_vcmla_lane90v4hf (__r, __a, __b, __index);
18590 __extension__ extern __inline float16x4_t
18591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18592 vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18593 const int __index)
18595 return __builtin_neon_vcmla_laneq90v4hf (__r, __a, __b, __index);
18598 __extension__ extern __inline float16x8_t
18599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18600 vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18601 const int __index)
18603 return __builtin_neon_vcmlaq_lane90v8hf (__r, __a, __b, __index);
18606 __extension__ extern __inline float16x8_t
18607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18608 vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18609 const int __index)
18611 return __builtin_neon_vcmla_lane90v8hf (__r, __a, __b, __index);
18614 __extension__ extern __inline float16x4_t
18615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18616 vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18618 return __builtin_neon_vcmla180v4hf (__r, __a, __b);
18621 __extension__ extern __inline float16x8_t
18622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18623 vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18625 return __builtin_neon_vcmla180v8hf (__r, __a, __b);
18628 __extension__ extern __inline float16x4_t
18629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18630 vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18631 const int __index)
18633 return __builtin_neon_vcmla_lane180v4hf (__r, __a, __b, __index);
18636 __extension__ extern __inline float16x4_t
18637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18638 vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18639 const int __index)
18641 return __builtin_neon_vcmla_laneq180v4hf (__r, __a, __b, __index);
18644 __extension__ extern __inline float16x8_t
18645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18646 vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18647 const int __index)
18649 return __builtin_neon_vcmlaq_lane180v8hf (__r, __a, __b, __index);
18652 __extension__ extern __inline float16x8_t
18653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18654 vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18655 const int __index)
18657 return __builtin_neon_vcmla_lane180v8hf (__r, __a, __b, __index);
18660 __extension__ extern __inline float16x4_t
18661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18662 vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
18664 return __builtin_neon_vcmla270v4hf (__r, __a, __b);
18667 __extension__ extern __inline float16x8_t
18668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18669 vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
18671 return __builtin_neon_vcmla270v8hf (__r, __a, __b);
18674 __extension__ extern __inline float16x4_t
18675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18676 vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
18677 const int __index)
18679 return __builtin_neon_vcmla_lane270v4hf (__r, __a, __b, __index);
18682 __extension__ extern __inline float16x4_t
18683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18684 vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
18685 const int __index)
18687 return __builtin_neon_vcmla_laneq270v4hf (__r, __a, __b, __index);
18690 __extension__ extern __inline float16x8_t
18691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18692 vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
18693 const int __index)
18695 return __builtin_neon_vcmlaq_lane270v8hf (__r, __a, __b, __index);
18698 __extension__ extern __inline float16x8_t
18699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18700 vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
18701 const int __index)
18703 return __builtin_neon_vcmla_lane270v8hf (__r, __a, __b, __index);
18706 #pragma GCC pop_options
18707 #endif
18709 __extension__ extern __inline float32x2_t
18710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18711 vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
18713 return __builtin_neon_vcadd90v2sf (__a, __b);
18716 __extension__ extern __inline float32x4_t
18717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18718 vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
18720 return __builtin_neon_vcadd90v4sf (__a, __b);
18723 __extension__ extern __inline float32x2_t
18724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18725 vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
18727 return __builtin_neon_vcadd90v2sf (__a, __b);
18730 __extension__ extern __inline float32x4_t
18731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18732 vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
18734 return __builtin_neon_vcadd90v4sf (__a, __b);
18737 __extension__ extern __inline float32x2_t
18738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18739 vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18741 return __builtin_neon_vcmla0v2sf (__r, __a, __b);
18744 __extension__ extern __inline float32x4_t
18745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18746 vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18748 return __builtin_neon_vcmla0v4sf (__r, __a, __b);
18751 __extension__ extern __inline float32x2_t
18752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18753 vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18754 const int __index)
18756 return __builtin_neon_vcmla_lane0v2sf (__r, __a, __b, __index);
18759 __extension__ extern __inline float32x2_t
18760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18761 vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18762 const int __index)
18764 return __builtin_neon_vcmla_laneq0v2sf (__r, __a, __b, __index);
18767 __extension__ extern __inline float32x4_t
18768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18769 vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18770 const int __index)
18772 return __builtin_neon_vcmlaq_lane0v4sf (__r, __a, __b, __index);
18775 __extension__ extern __inline float32x4_t
18776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18777 vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18778 const int __index)
18780 return __builtin_neon_vcmla_lane0v4sf (__r, __a, __b, __index);
18783 __extension__ extern __inline float32x2_t
18784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18785 vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18787 return __builtin_neon_vcmla90v2sf (__r, __a, __b);
18790 __extension__ extern __inline float32x4_t
18791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18792 vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18794 return __builtin_neon_vcmla90v4sf (__r, __a, __b);
18797 __extension__ extern __inline float32x2_t
18798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18799 vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18800 const int __index)
18802 return __builtin_neon_vcmla_lane90v2sf (__r, __a, __b, __index);
18805 __extension__ extern __inline float32x2_t
18806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18807 vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18808 const int __index)
18810 return __builtin_neon_vcmla_laneq90v2sf (__r, __a, __b, __index);
18813 __extension__ extern __inline float32x4_t
18814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18815 vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18816 const int __index)
18818 return __builtin_neon_vcmlaq_lane90v4sf (__r, __a, __b, __index);
18821 __extension__ extern __inline float32x4_t
18822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18823 vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18824 const int __index)
18826 return __builtin_neon_vcmla_lane90v4sf (__r, __a, __b, __index);
18829 __extension__ extern __inline float32x2_t
18830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18831 vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18833 return __builtin_neon_vcmla180v2sf (__r, __a, __b);
18836 __extension__ extern __inline float32x4_t
18837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18838 vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18840 return __builtin_neon_vcmla180v4sf (__r, __a, __b);
18843 __extension__ extern __inline float32x2_t
18844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18845 vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18846 const int __index)
18848 return __builtin_neon_vcmla_lane180v2sf (__r, __a, __b, __index);
18851 __extension__ extern __inline float32x2_t
18852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18853 vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18854 const int __index)
18856 return __builtin_neon_vcmla_laneq180v2sf (__r, __a, __b, __index);
18859 __extension__ extern __inline float32x4_t
18860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18861 vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18862 const int __index)
18864 return __builtin_neon_vcmlaq_lane180v4sf (__r, __a, __b, __index);
18867 __extension__ extern __inline float32x4_t
18868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18869 vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18870 const int __index)
18872 return __builtin_neon_vcmla_lane180v4sf (__r, __a, __b, __index);
18875 __extension__ extern __inline float32x2_t
18876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18877 vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
18879 return __builtin_neon_vcmla270v2sf (__r, __a, __b);
18882 __extension__ extern __inline float32x4_t
18883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18884 vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
18886 return __builtin_neon_vcmla270v4sf (__r, __a, __b);
18889 __extension__ extern __inline float32x2_t
18890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18891 vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
18892 const int __index)
18894 return __builtin_neon_vcmla_lane270v2sf (__r, __a, __b, __index);
18897 __extension__ extern __inline float32x2_t
18898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18899 vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
18900 const int __index)
18902 return __builtin_neon_vcmla_laneq270v2sf (__r, __a, __b, __index);
18905 __extension__ extern __inline float32x4_t
18906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18907 vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
18908 const int __index)
18910 return __builtin_neon_vcmlaq_lane270v4sf (__r, __a, __b, __index);
18913 __extension__ extern __inline float32x4_t
18914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18915 vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
18916 const int __index)
18918 return __builtin_neon_vcmla_lane270v4sf (__r, __a, __b, __index);
18922 /* AdvSIMD Matrix Multiply-Accumulate and Dot Product intrinsics. */
18923 #pragma GCC push_options
18924 #pragma GCC target ("arch=armv8.2-a+i8mm")
18926 __extension__ extern __inline int32x2_t
18927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18928 vusdot_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b)
18930 return __builtin_neon_usdotv8qi_ssus (__r, __a, __b);
18933 __extension__ extern __inline int32x4_t
18934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18935 vusdotq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
18937 return __builtin_neon_usdotv16qi_ssus (__r, __a, __b);
18940 __extension__ extern __inline int32x2_t
18941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18942 vusdot_lane_s32 (int32x2_t __r, uint8x8_t __a,
18943 int8x8_t __b, const int __index)
18945 return __builtin_neon_usdot_lanev8qi_ssuss (__r, __a, __b, __index);
18948 __extension__ extern __inline int32x4_t
18949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18950 vusdotq_lane_s32 (int32x4_t __r, uint8x16_t __a,
18951 int8x8_t __b, const int __index)
18953 return __builtin_neon_usdot_lanev16qi_ssuss (__r, __a, __b, __index);
18956 __extension__ extern __inline int32x2_t
18957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18958 vsudot_lane_s32 (int32x2_t __r, int8x8_t __a,
18959 uint8x8_t __b, const int __index)
18961 return __builtin_neon_sudot_lanev8qi_sssus (__r, __a, __b, __index);
18964 __extension__ extern __inline int32x4_t
18965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18966 vsudotq_lane_s32 (int32x4_t __r, int8x16_t __a,
18967 uint8x8_t __b, const int __index)
18969 return __builtin_neon_sudot_lanev16qi_sssus (__r, __a, __b, __index);
18972 __extension__ extern __inline int32x2_t
18973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18974 vusdot_laneq_s32 (int32x2_t __r, uint8x8_t __a,
18975 int8x16_t __b, const int __index)
18977 return __builtin_neon_usdot_laneqv8qi_ssuss (__r, __a, __b, __index);
18980 __extension__ extern __inline int32x4_t
18981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18982 vusdotq_laneq_s32 (int32x4_t __r, uint8x16_t __a,
18983 int8x16_t __b, const int __index)
18985 return __builtin_neon_usdot_laneqv16qi_ssuss (__r, __a, __b, __index);
18988 __extension__ extern __inline int32x2_t
18989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18990 vsudot_laneq_s32 (int32x2_t __r, int8x8_t __a,
18991 uint8x16_t __b, const int __index)
18993 return __builtin_neon_sudot_laneqv8qi_sssus (__r, __a, __b, __index);
18996 __extension__ extern __inline int32x4_t
18997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
18998 vsudotq_laneq_s32 (int32x4_t __r, int8x16_t __a,
18999 uint8x16_t __b, const int __index)
19001 return __builtin_neon_sudot_laneqv16qi_sssus (__r, __a, __b, __index);
19004 #pragma GCC pop_options
19006 #pragma GCC pop_options
19007 #endif
19009 /* AdvSIMD 8-bit Integer Matrix Multiply (I8MM) intrinsics. */
19011 #pragma GCC push_options
19012 #pragma GCC target ("arch=armv8.2-a+i8mm")
19014 __extension__ extern __inline int32x4_t
19015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19016 vmmlaq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
19018 return __builtin_neon_smmlav16qi (__r, __a, __b);
19021 __extension__ extern __inline uint32x4_t
19022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19023 vmmlaq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
19025 return __builtin_neon_ummlav16qi_uuuu (__r, __a, __b);
19028 __extension__ extern __inline int32x4_t
19029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19030 vusmmlaq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
19032 return __builtin_neon_usmmlav16qi_ssus (__r, __a, __b);
19035 #pragma GCC pop_options
19037 /* AdvSIMD Brain half-precision float-point (Bfloat16) intrinsics. */
19038 #pragma GCC push_options
19039 #pragma GCC target ("arch=armv8.2-a+bf16")
19041 __extension__ extern __inline bfloat16x4_t
19042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19043 vcreate_bf16 (uint64_t __a)
19045 return (bfloat16x4_t) __a;
19048 __extension__ extern __inline bfloat16x4_t
19049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19050 vdup_n_bf16 (bfloat16_t __a)
19052 return (bfloat16x4_t) {__a, __a, __a, __a};
19055 __extension__ extern __inline bfloat16x8_t
19056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19057 vdupq_n_bf16 (bfloat16_t __a)
19059 return (bfloat16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
19062 __extension__ extern __inline bfloat16x4_t
19063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19064 vdup_lane_bf16 (bfloat16x4_t __a, const int __b)
19066 return __builtin_neon_vdup_lanev4bf (__a, __b);
19069 __extension__ extern __inline bfloat16x8_t
19070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19071 vdupq_lane_bf16 (bfloat16x4_t __a, const int __b)
19073 return __builtin_neon_vdup_lanev8bf (__a, __b);
19076 #define vset_lane_bf16(__e, __v, __idx) \
19077 __extension__ \
19078 ({ \
19079 bfloat16_t __elem = (__e); \
19080 bfloat16x4_t __vec = (__v); \
19081 __builtin_arm_lane_check (4, __idx); \
19082 __vec[__arm_lane(__vec, __idx)] = __elem; \
19083 __vec; \
19086 #define vsetq_lane_bf16(__e, __v, __idx) \
19087 __extension__ \
19088 ({ \
19089 bfloat16_t __elem = (__e); \
19090 bfloat16x8_t __vec = (__v); \
19091 __builtin_arm_lane_check (8, __idx); \
19092 __vec[__arm_laneq(__vec, __idx)] = __elem; \
19093 __vec; \
19096 #define vget_lane_bf16(__v, __idx) \
19097 __extension__ \
19098 ({ \
19099 bfloat16x4_t __vec = (__v); \
19100 __builtin_arm_lane_check (4, __idx); \
19101 bfloat16_t __res = __vec[__arm_lane(__vec, __idx)]; \
19102 __res; \
19105 #define vgetq_lane_bf16(__v, __idx) \
19106 __extension__ \
19107 ({ \
19108 bfloat16x8_t __vec = (__v); \
19109 __builtin_arm_lane_check (8, __idx); \
19110 bfloat16_t __res = __vec[__arm_laneq(__vec, __idx)]; \
19111 __res; \
19114 __extension__ extern __inline bfloat16x4_t
19115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19116 vdup_laneq_bf16 (bfloat16x8_t __a, const int __b)
19118 return vdup_n_bf16( vgetq_lane_bf16 (__a, __b));
19121 __extension__ extern __inline bfloat16x8_t
19122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19123 vdupq_laneq_bf16 (bfloat16x8_t __a, const int __b)
19125 return vdupq_n_bf16( vgetq_lane_bf16 (__a, __b));
19128 __extension__ extern __inline bfloat16_t
19129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19130 vduph_lane_bf16 (bfloat16x4_t __a, const int __b)
19132 return vget_lane_bf16 (__a, __b);
19135 __extension__ extern __inline bfloat16_t
19136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19137 vduph_laneq_bf16 (bfloat16x8_t __a, const int __b)
19139 return vgetq_lane_bf16 (__a, __b);
19142 __extension__ extern __inline bfloat16x4_t
19143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19144 vget_high_bf16 (bfloat16x8_t __a)
19146 return __builtin_neon_vget_highv8bf (__a);
19149 __extension__ extern __inline bfloat16x4_t
19150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19151 vget_low_bf16 (bfloat16x8_t __a)
19153 return __builtin_neon_vget_lowv8bf (__a);
19156 __extension__ extern __inline bfloat16x8_t
19157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19158 vcombine_bf16 (bfloat16x4_t __a, bfloat16x4_t __b)
19160 return __builtin_neon_vcombinev4bf (__a, __b);
19163 __extension__ extern __inline bfloat16x4_t
19164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19165 vreinterpret_bf16_u8 (uint8x8_t __a)
19167 return (bfloat16x4_t)__a;
19170 __extension__ extern __inline bfloat16x4_t
19171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19172 vreinterpret_bf16_u16 (uint16x4_t __a)
19174 return (bfloat16x4_t)__a;
19177 __extension__ extern __inline bfloat16x4_t
19178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19179 vreinterpret_bf16_u32 (uint32x2_t __a)
19181 return (bfloat16x4_t)__a;
19184 __extension__ extern __inline bfloat16x4_t
19185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19186 vreinterpret_bf16_u64 (uint64x1_t __a)
19188 return (bfloat16x4_t)__a;
19191 __extension__ extern __inline bfloat16x4_t
19192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19193 vreinterpret_bf16_s8 (int8x8_t __a)
19195 return (bfloat16x4_t)__a;
19198 __extension__ extern __inline bfloat16x4_t
19199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19200 vreinterpret_bf16_s16 (int16x4_t __a)
19202 return (bfloat16x4_t)__a;
19205 __extension__ extern __inline bfloat16x4_t
19206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19207 vreinterpret_bf16_s32 (int32x2_t __a)
19209 return (bfloat16x4_t)__a;
19212 __extension__ extern __inline bfloat16x4_t
19213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19214 vreinterpret_bf16_s64 (int64x1_t __a)
19216 return (bfloat16x4_t)__a;
19219 __extension__ extern __inline bfloat16x4_t
19220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19221 vreinterpret_bf16_p8 (poly8x8_t __a)
19223 return (bfloat16x4_t)__a;
19226 __extension__ extern __inline bfloat16x4_t
19227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19228 vreinterpret_bf16_p16 (poly16x4_t __a)
19230 return (bfloat16x4_t)__a;
19233 __extension__ extern __inline bfloat16x4_t
19234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19235 vreinterpret_bf16_p64 (poly64x1_t __a)
19237 return (bfloat16x4_t)__a;
19240 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
19241 __extension__ extern __inline bfloat16x4_t
19242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19243 vreinterpret_bf16_f16 (float16x4_t __a)
19245 return (bfloat16x4_t)__a;
19247 #endif
19249 __extension__ extern __inline bfloat16x4_t
19250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19251 vreinterpret_bf16_f32 (float32x2_t __a)
19253 return (bfloat16x4_t)__a;
19256 __extension__ extern __inline bfloat16x8_t
19257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19258 vreinterpretq_bf16_u8 (uint8x16_t __a)
19260 return (bfloat16x8_t)__a;
19263 __extension__ extern __inline bfloat16x8_t
19264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19265 vreinterpretq_bf16_u16 (uint16x8_t __a)
19267 return (bfloat16x8_t)__a;
19270 __extension__ extern __inline bfloat16x8_t
19271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19272 vreinterpretq_bf16_u32 (uint32x4_t __a)
19274 return (bfloat16x8_t)__a;
19277 __extension__ extern __inline bfloat16x8_t
19278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19279 vreinterpretq_bf16_u64 (uint64x2_t __a)
19281 return (bfloat16x8_t)__a;
19284 __extension__ extern __inline bfloat16x8_t
19285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19286 vreinterpretq_bf16_s8 (int8x16_t __a)
19288 return (bfloat16x8_t)__a;
19291 __extension__ extern __inline bfloat16x8_t
19292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19293 vreinterpretq_bf16_s16 (int16x8_t __a)
19295 return (bfloat16x8_t)__a;
19298 __extension__ extern __inline bfloat16x8_t
19299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19300 vreinterpretq_bf16_s32 (int32x4_t __a)
19302 return (bfloat16x8_t)__a;
19305 __extension__ extern __inline bfloat16x8_t
19306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19307 vreinterpretq_bf16_s64 (int64x2_t __a)
19309 return (bfloat16x8_t)__a;
19312 __extension__ extern __inline bfloat16x8_t
19313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19314 vreinterpretq_bf16_p8 (poly8x16_t __a)
19316 return (bfloat16x8_t)__a;
19319 __extension__ extern __inline bfloat16x8_t
19320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19321 vreinterpretq_bf16_p16 (poly16x8_t __a)
19323 return (bfloat16x8_t)__a;
19326 __extension__ extern __inline bfloat16x8_t
19327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19328 vreinterpretq_bf16_p64 (poly64x2_t __a)
19330 return (bfloat16x8_t)__a;
19333 __extension__ extern __inline bfloat16x8_t
19334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19335 vreinterpretq_bf16_p128 (poly128_t __a)
19337 return (bfloat16x8_t)__a;
19340 #if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
19341 __extension__ extern __inline bfloat16x8_t
19342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19343 vreinterpretq_bf16_f16 (float16x8_t __a)
19345 return (bfloat16x8_t)__a;
19347 #endif
19349 __extension__ extern __inline bfloat16x8_t
19350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19351 vreinterpretq_bf16_f32 (float32x4_t __a)
19353 return (bfloat16x8_t)__a;
19356 __extension__ extern __inline int8x8_t
19357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19358 vreinterpret_s8_bf16 (bfloat16x4_t __a)
19360 return (int8x8_t)__a;
19363 __extension__ extern __inline int16x4_t
19364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19365 vreinterpret_s16_bf16 (bfloat16x4_t __a)
19367 return (int16x4_t)__a;
19370 __extension__ extern __inline int32x2_t
19371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19372 vreinterpret_s32_bf16 (bfloat16x4_t __a)
19374 return (int32x2_t)__a;
19377 __extension__ extern __inline int64x1_t
19378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19379 vreinterpret_s64_bf16 (bfloat16x4_t __a)
19381 return (int64x1_t)__a;
19384 __extension__ extern __inline uint8x8_t
19385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19386 vreinterpret_u8_bf16 (bfloat16x4_t __a)
19388 return (uint8x8_t)__a;
19391 __extension__ extern __inline uint16x4_t
19392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19393 vreinterpret_u16_bf16 (bfloat16x4_t __a)
19395 return (uint16x4_t)__a;
19398 __extension__ extern __inline uint32x2_t
19399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19400 vreinterpret_u32_bf16 (bfloat16x4_t __a)
19402 return (uint32x2_t)__a;
19405 __extension__ extern __inline uint64x1_t
19406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19407 vreinterpret_u64_bf16 (bfloat16x4_t __a)
19409 return (uint64x1_t)__a;
19412 __extension__ extern __inline float32x2_t
19413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19414 vreinterpret_f32_bf16 (bfloat16x4_t __a)
19416 return (float32x2_t)__a;
19419 __extension__ extern __inline poly8x8_t
19420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19421 vreinterpret_p8_bf16 (bfloat16x4_t __a)
19423 return (poly8x8_t)__a;
19426 __extension__ extern __inline poly16x4_t
19427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19428 vreinterpret_p16_bf16 (bfloat16x4_t __a)
19430 return (poly16x4_t)__a;
19433 __extension__ extern __inline poly64x1_t
19434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19435 vreinterpret_p64_bf16 (bfloat16x4_t __a)
19437 return (poly64x1_t)__a;
19440 __extension__ extern __inline int8x16_t
19441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19442 vreinterpretq_s8_bf16 (bfloat16x8_t __a)
19444 return (int8x16_t)__a;
19447 __extension__ extern __inline int16x8_t
19448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19449 vreinterpretq_s16_bf16 (bfloat16x8_t __a)
19451 return (int16x8_t)__a;
19454 __extension__ extern __inline int32x4_t
19455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19456 vreinterpretq_s32_bf16 (bfloat16x8_t __a)
19458 return (int32x4_t)__a;
19461 __extension__ extern __inline int64x2_t
19462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19463 vreinterpretq_s64_bf16 (bfloat16x8_t __a)
19465 return (int64x2_t)__a;
19468 __extension__ extern __inline uint8x16_t
19469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19470 vreinterpretq_u8_bf16 (bfloat16x8_t __a)
19472 return (uint8x16_t)__a;
19475 __extension__ extern __inline uint16x8_t
19476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19477 vreinterpretq_u16_bf16 (bfloat16x8_t __a)
19479 return (uint16x8_t)__a;
19482 __extension__ extern __inline uint32x4_t
19483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19484 vreinterpretq_u32_bf16 (bfloat16x8_t __a)
19486 return (uint32x4_t)__a;
19489 __extension__ extern __inline uint64x2_t
19490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19491 vreinterpretq_u64_bf16 (bfloat16x8_t __a)
19493 return (uint64x2_t)__a;
19496 __extension__ extern __inline float32x4_t
19497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19498 vreinterpretq_f32_bf16 (bfloat16x8_t __a)
19500 return (float32x4_t)__a;
19503 __extension__ extern __inline poly8x16_t
19504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19505 vreinterpretq_p8_bf16 (bfloat16x8_t __a)
19507 return (poly8x16_t)__a;
19510 __extension__ extern __inline poly16x8_t
19511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19512 vreinterpretq_p16_bf16 (bfloat16x8_t __a)
19514 return (poly16x8_t)__a;
19517 __extension__ extern __inline poly64x2_t
19518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19519 vreinterpretq_p64_bf16 (bfloat16x8_t __a)
19521 return (poly64x2_t)__a;
19524 __extension__ extern __inline poly128_t
19525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19526 vreinterpretq_p128_bf16 (bfloat16x8_t __a)
19528 return (poly128_t)__a;
19531 __extension__ extern __inline float32x2_t
19532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19533 vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
19535 return __builtin_neon_vbfdotv2sf (__r, __a, __b);
19538 __extension__ extern __inline float32x4_t
19539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19540 vbfdotq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19542 return __builtin_neon_vbfdotv4sf (__r, __a, __b);
19545 __extension__ extern __inline float32x2_t
19546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19547 vbfdot_lane_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b,
19548 const int __index)
19550 return __builtin_neon_vbfdot_lanev4bfv2sf (__r, __a, __b, __index);
19553 __extension__ extern __inline float32x4_t
19554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19555 vbfdotq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19556 const int __index)
19558 return __builtin_neon_vbfdot_lanev8bfv4sf (__r, __a, __b, __index);
19561 __extension__ extern __inline float32x2_t
19562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19563 vbfdot_laneq_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x8_t __b,
19564 const int __index)
19566 return __builtin_neon_vbfdot_lanev8bfv2sf (__r, __a, __b, __index);
19569 __extension__ extern __inline float32x4_t
19570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19571 vbfdotq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19572 const int __index)
19574 return __builtin_neon_vbfdot_lanev4bfv4sf (__r, __a, __b, __index);
19577 #pragma GCC pop_options
19579 #pragma GCC push_options
19580 #pragma GCC target ("arch=armv8.2-a+bf16")
19582 typedef struct bfloat16x4x2_t
19584 bfloat16x4_t val[2];
19585 } bfloat16x4x2_t;
19587 typedef struct bfloat16x8x2_t
19589 bfloat16x8_t val[2];
19590 } bfloat16x8x2_t;
19592 typedef struct bfloat16x4x3_t
19594 bfloat16x4_t val[3];
19595 } bfloat16x4x3_t;
19597 typedef struct bfloat16x8x3_t
19599 bfloat16x8_t val[3];
19600 } bfloat16x8x3_t;
19602 typedef struct bfloat16x4x4_t
19604 bfloat16x4_t val[4];
19605 } bfloat16x4x4_t;
19607 typedef struct bfloat16x8x4_t
19609 bfloat16x8_t val[4];
19610 } bfloat16x8x4_t;
19612 __extension__ extern __inline float32x4_t
19613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19614 vcvt_f32_bf16 (bfloat16x4_t __a)
19616 return __builtin_neon_vbfcvtv4bf (__a);
19619 __extension__ extern __inline float32x4_t
19620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19621 vcvtq_low_f32_bf16 (bfloat16x8_t __a)
19623 return __builtin_neon_vbfcvtv8bf (__a);
19626 __extension__ extern __inline float32x4_t
19627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19628 vcvtq_high_f32_bf16 (bfloat16x8_t __a)
19630 return __builtin_neon_vbfcvt_highv8bf (__a);
19633 __extension__ extern __inline bfloat16x4_t
19634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19635 vcvt_bf16_f32 (float32x4_t __a)
19637 return __builtin_neon_vbfcvtv4sfv4bf (__a);
19640 __extension__ extern __inline bfloat16x8_t
19641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19642 vcvtq_low_bf16_f32 (float32x4_t __a)
19644 return __builtin_neon_vbfcvtv4sfv8bf (__a);
19647 /* The 'inactive' operand is not converted but it provides the
19648 low 64 bits to assemble the final 128-bit result. */
19649 __extension__ extern __inline bfloat16x8_t
19650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19651 vcvtq_high_bf16_f32 (bfloat16x8_t inactive, float32x4_t __a)
19653 return __builtin_neon_vbfcvtv4sf_highv8bf (inactive, __a);
19656 __extension__ extern __inline float32x4_t
19657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19658 vbfmmlaq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19660 return __builtin_neon_vmmlav8bf (__r, __a, __b);
19663 __extension__ extern __inline float32x4_t
19664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19665 vbfmlalbq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19667 return __builtin_neon_vfmabv8bf (__r, __a, __b);
19670 __extension__ extern __inline float32x4_t
19671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19672 vbfmlaltq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
19674 return __builtin_neon_vfmatv8bf (__r, __a, __b);
19677 __extension__ extern __inline float32x4_t
19678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19679 vbfmlalbq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19680 const int __index)
19682 return __builtin_neon_vfmab_lanev8bf (__r, __a, __b, __index);
19685 __extension__ extern __inline float32x4_t
19686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19687 vbfmlaltq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
19688 const int __index)
19690 return __builtin_neon_vfmat_lanev8bf (__r, __a, __b, __index);
19693 __extension__ extern __inline float32x4_t
19694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19695 vbfmlalbq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19696 const int __index)
19698 return __builtin_neon_vfmab_laneqv8bf (__r, __a, __b, __index);
19701 __extension__ extern __inline float32x4_t
19702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19703 vbfmlaltq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
19704 const int __index)
19706 return __builtin_neon_vfmat_laneqv8bf (__r, __a, __b, __index);
19709 __extension__ extern __inline void
19710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19711 vst1_bf16 (bfloat16_t * __a, bfloat16x4_t __b)
19713 __builtin_neon_vst1v4bf (__a, __b);
19716 __extension__ extern __inline void
19717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19718 vst1q_bf16 (bfloat16_t * __a, bfloat16x8_t __b)
19720 __builtin_neon_vst1v8bf (__a, __b);
19723 __extension__ extern __inline void
19724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19725 vst2_bf16 (bfloat16_t * __ptr, bfloat16x4x2_t __val)
19727 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __val };
19728 return __builtin_neon_vst2v4bf (__ptr, __bu.__o);
19731 __extension__ extern __inline void
19732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19733 vst2q_bf16 (bfloat16_t * __ptr, bfloat16x8x2_t __val)
19735 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __val };
19736 return __builtin_neon_vst2v8bf (__ptr, __bu.__o);
19739 __extension__ extern __inline void
19740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19741 vst3_bf16 (bfloat16_t * __ptr, bfloat16x4x3_t __val)
19743 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __val };
19744 return __builtin_neon_vst3v4bf (__ptr, __bu.__o);
19747 __extension__ extern __inline void
19748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19749 vst3q_bf16 (bfloat16_t * __ptr, bfloat16x8x3_t __val)
19751 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __val };
19752 return __builtin_neon_vst3v8bf (__ptr, __bu.__o);
19755 __extension__ extern __inline void
19756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19757 vst4_bf16 (bfloat16_t * __ptr, bfloat16x4x4_t __val)
19759 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __val };
19760 return __builtin_neon_vst4v4bf (__ptr, __bu.__o);
19763 __extension__ extern __inline void
19764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19765 vst4q_bf16 (bfloat16_t * __ptr, bfloat16x8x4_t __val)
19767 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __val };
19768 return __builtin_neon_vst4v8bf (__ptr, __bu.__o);
19771 __extension__ extern __inline bfloat16x4_t
19772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19773 vld1_bf16 (bfloat16_t const * __ptr)
19775 return __builtin_neon_vld1v4bf (__ptr);
19778 __extension__ extern __inline bfloat16x8_t
19779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19780 vld1q_bf16 (const bfloat16_t * __ptr)
19782 return __builtin_neon_vld1v8bf (__ptr);
19785 __extension__ extern __inline bfloat16x4x2_t
19786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19787 vld2_bf16 (bfloat16_t const * __ptr)
19789 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19790 __rv.__o = __builtin_neon_vld2v4bf ((const __builtin_neon_bf *) __ptr);
19791 return __rv.__i;
19794 __extension__ extern __inline bfloat16x8x2_t
19795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19796 vld2q_bf16 (const bfloat16_t * __ptr)
19798 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19799 __rv.__o = __builtin_neon_vld2v8bf ((const __builtin_neon_bf *) __ptr);
19800 return __rv.__i;
19803 __extension__ extern __inline bfloat16x4x3_t
19804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19805 vld3_bf16 (const bfloat16_t * __ptr)
19807 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19808 __rv.__o = __builtin_neon_vld3v4bf ((const __builtin_neon_bf *) __ptr);
19809 return __rv.__i;
19812 __extension__ extern __inline bfloat16x8x3_t
19813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19814 vld3q_bf16 (const bfloat16_t * __ptr)
19816 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19817 __rv.__o = __builtin_neon_vld3v8bf ((const __builtin_neon_bf *) __ptr);
19818 return __rv.__i;
19821 __extension__ extern __inline bfloat16x4x4_t
19822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19823 vld4_bf16 (const bfloat16_t * __ptr)
19825 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19826 __rv.__o = __builtin_neon_vld4v4bf ((const __builtin_neon_bf *) __ptr);
19827 return __rv.__i;
19830 __extension__ extern __inline bfloat16x8x4_t
19831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19832 vld4q_bf16 (const bfloat16_t * __ptr)
19834 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19835 __rv.__o = __builtin_neon_vld4v8bf ((const __builtin_neon_bf *) __ptr);
19836 return __rv.__i;
19839 __extension__ extern __inline bfloat16x4x2_t
19840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19841 vld2_dup_bf16 (const bfloat16_t * __ptr)
19843 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19844 __rv.__o = __builtin_neon_vld2_dupv4bf ((const __builtin_neon_bf *) __ptr);
19845 return __rv.__i;
19848 __extension__ extern __inline bfloat16x8x2_t
19849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19850 vld2q_dup_bf16 (const bfloat16_t * __ptr)
19852 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19853 __rv.__o = __builtin_neon_vld2_dupv8bf ((const __builtin_neon_bf *) __ptr);
19854 return __rv.__i;
19857 __extension__ extern __inline bfloat16x4x3_t
19858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19859 vld3_dup_bf16 (const bfloat16_t * __ptr)
19861 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19862 __rv.__o = __builtin_neon_vld3_dupv4bf ((const __builtin_neon_bf *) __ptr);
19863 return __rv.__i;
19866 __extension__ extern __inline bfloat16x8x3_t
19867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19868 vld3q_dup_bf16 (const bfloat16_t * __ptr)
19870 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19871 __rv.__o = __builtin_neon_vld3_dupv8bf ((const __builtin_neon_bf *) __ptr);
19872 return __rv.__i;
19875 __extension__ extern __inline bfloat16x4x4_t
19876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19877 vld4_dup_bf16 (const bfloat16_t * __ptr)
19879 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19880 __rv.__o = __builtin_neon_vld4_dupv4bf ((const __builtin_neon_bf *) __ptr);
19881 return __rv.__i;
19884 __extension__ extern __inline bfloat16x8x4_t
19885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19886 vld4q_dup_bf16 (const bfloat16_t * __ptr)
19888 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19889 __rv.__o = __builtin_neon_vld4_dupv8bf ((const __builtin_neon_bf *) __ptr);
19890 return __rv.__i;
19893 __extension__ extern __inline bfloat16x4_t
19894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19895 vld1_lane_bf16 (const bfloat16_t * __a, bfloat16x4_t __b, const int __c)
19897 return __builtin_neon_vld1_lanev4bf (__a, __b, __c);
19900 __extension__ extern __inline bfloat16x8_t
19901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19902 vld1q_lane_bf16 (const bfloat16_t * __a, bfloat16x8_t __b, const int __c)
19904 return __builtin_neon_vld1_lanev8bf (__a, __b, __c);
19907 __extension__ extern __inline void
19908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19909 vst1_lane_bf16 (bfloat16_t * __a, bfloat16x4_t __b, const int __c)
19911 __builtin_neon_vst1_lanev4bf (__a, __b, __c);
19914 __extension__ extern __inline void
19915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19916 vst1q_lane_bf16 (bfloat16_t * __a, bfloat16x8_t __b, const int __c)
19918 __builtin_neon_vst1_lanev8bf (__a, __b, __c);
19921 __extension__ extern __inline bfloat16x4x2_t
19922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19923 vld2_lane_bf16 (const bfloat16_t * __a, bfloat16x4x2_t __b, const int __c)
19925 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
19926 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __rv;
19927 __rv.__o = __builtin_neon_vld2_lanev4bf ( __a, __bu.__o, __c);
19928 return __rv.__i;
19931 __extension__ extern __inline bfloat16x8x2_t
19932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19933 vld2q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x2_t __b, const int __c)
19935 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
19936 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __rv;
19937 __rv.__o = __builtin_neon_vld2_lanev8bf (__a, __bu.__o, __c);
19938 return __rv.__i;
19941 __extension__ extern __inline bfloat16x4x3_t
19942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19943 vld3_lane_bf16 (const bfloat16_t * __a, bfloat16x4x3_t __b, const int __c)
19945 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
19946 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __rv;
19947 __rv.__o = __builtin_neon_vld3_lanev4bf (__a, __bu.__o, __c);
19948 return __rv.__i;
19951 __extension__ extern __inline bfloat16x8x3_t
19952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19953 vld3q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x3_t __b, const int __c)
19955 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
19956 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __rv;
19957 __rv.__o = __builtin_neon_vld3_lanev8bf (__a, __bu.__o, __c);
19958 return __rv.__i;
19961 __extension__ extern __inline bfloat16x4x4_t
19962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19963 vld4_lane_bf16 (const bfloat16_t * __a, bfloat16x4x4_t __b, const int __c)
19965 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
19966 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __rv;
19967 __rv.__o = __builtin_neon_vld4_lanev4bf (__a,
19968 __bu.__o, __c);
19969 return __rv.__i;
19972 __extension__ extern __inline bfloat16x8x4_t
19973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19974 vld4q_lane_bf16 (const bfloat16_t * __a, bfloat16x8x4_t __b, const int __c)
19976 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
19977 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __rv;
19978 __rv.__o = __builtin_neon_vld4_lanev8bf (__a,
19979 __bu.__o, __c);
19980 return __rv.__i;
19983 __extension__ extern __inline void
19984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19985 vst2_lane_bf16 (bfloat16_t * __a, bfloat16x4x2_t __b, const int __c)
19987 union { bfloat16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
19988 __builtin_neon_vst2_lanev4bf (__a, __bu.__o, __c);
19991 __extension__ extern __inline void
19992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
19993 vst2q_lane_bf16 (bfloat16_t * __a, bfloat16x8x2_t __b, const int __c)
19995 union { bfloat16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
19996 __builtin_neon_vst2_lanev8bf (__a, __bu.__o, __c);
19999 __extension__ extern __inline void
20000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20001 vst3_lane_bf16 (bfloat16_t * __a, bfloat16x4x3_t __b, const int __c)
20003 union { bfloat16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
20004 __builtin_neon_vst3_lanev4bf (__a, __bu.__o, __c);
20007 __extension__ extern __inline void
20008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20009 vst3q_lane_bf16 (bfloat16_t * __a, bfloat16x8x3_t __b, const int __c)
20011 union { bfloat16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
20012 __builtin_neon_vst3_lanev8bf (__a, __bu.__o, __c);
20015 __extension__ extern __inline void
20016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20017 vst4_lane_bf16 (bfloat16_t * __a, bfloat16x4x4_t __b, const int __c)
20019 union { bfloat16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
20020 __builtin_neon_vst4_lanev4bf (__a, __bu.__o, __c);
20023 __extension__ extern __inline void
20024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
20025 vst4q_lane_bf16 (bfloat16_t * __a, bfloat16x8x4_t __b, const int __c)
20027 union { bfloat16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
20028 __builtin_neon_vst4_lanev8bf (__a, __bu.__o, __c);
20031 #pragma GCC pop_options
20033 #ifdef __cplusplus
20035 #endif
20037 #pragma GCC pop_options
20039 #endif
20040 #endif