[ARM Refactor Builtins: 1/8] Remove arm_neon.h's "Magic Words"
[official-gcc.git] / gcc / config / arm / arm_neon.h
blobd27d970a846ae47cef6c9c05e42b47465cb2d37f
1 /* ARM NEON intrinsics include file.
3 Copyright (C) 2006-2014 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_NEON__
31 #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
32 #else
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
38 #include <stdint.h>
40 typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8)));
41 typedef __builtin_neon_hi int16x4_t __attribute__ ((__vector_size__ (8)));
42 typedef __builtin_neon_si int32x2_t __attribute__ ((__vector_size__ (8)));
43 typedef __builtin_neon_di int64x1_t;
44 typedef __builtin_neon_hf float16x4_t __attribute__ ((__vector_size__ (8)));
45 typedef __builtin_neon_sf float32x2_t __attribute__ ((__vector_size__ (8)));
46 typedef __builtin_neon_poly8 poly8x8_t __attribute__ ((__vector_size__ (8)));
47 typedef __builtin_neon_poly16 poly16x4_t __attribute__ ((__vector_size__ (8)));
48 #ifdef __ARM_FEATURE_CRYPTO
49 typedef __builtin_neon_poly64 poly64x1_t;
50 #endif
51 typedef __builtin_neon_uqi uint8x8_t __attribute__ ((__vector_size__ (8)));
52 typedef __builtin_neon_uhi uint16x4_t __attribute__ ((__vector_size__ (8)));
53 typedef __builtin_neon_usi uint32x2_t __attribute__ ((__vector_size__ (8)));
54 typedef __builtin_neon_udi uint64x1_t;
55 typedef __builtin_neon_qi int8x16_t __attribute__ ((__vector_size__ (16)));
56 typedef __builtin_neon_hi int16x8_t __attribute__ ((__vector_size__ (16)));
57 typedef __builtin_neon_si int32x4_t __attribute__ ((__vector_size__ (16)));
58 typedef __builtin_neon_di int64x2_t __attribute__ ((__vector_size__ (16)));
59 typedef __builtin_neon_sf float32x4_t __attribute__ ((__vector_size__ (16)));
60 typedef __builtin_neon_poly8 poly8x16_t __attribute__ ((__vector_size__ (16)));
61 typedef __builtin_neon_poly16 poly16x8_t __attribute__ ((__vector_size__ (16)));
62 #ifdef __ARM_FEATURE_CRYPTO
63 typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16)));
64 #endif
65 typedef __builtin_neon_uqi uint8x16_t __attribute__ ((__vector_size__ (16)));
66 typedef __builtin_neon_uhi uint16x8_t __attribute__ ((__vector_size__ (16)));
67 typedef __builtin_neon_usi uint32x4_t __attribute__ ((__vector_size__ (16)));
68 typedef __builtin_neon_udi uint64x2_t __attribute__ ((__vector_size__ (16)));
70 typedef float float32_t;
71 typedef __builtin_neon_poly8 poly8_t;
72 typedef __builtin_neon_poly16 poly16_t;
73 #ifdef __ARM_FEATURE_CRYPTO
74 typedef __builtin_neon_poly64 poly64_t;
75 typedef __builtin_neon_poly128 poly128_t;
76 #endif
78 typedef struct int8x8x2_t
80 int8x8_t val[2];
81 } int8x8x2_t;
83 typedef struct int8x16x2_t
85 int8x16_t val[2];
86 } int8x16x2_t;
88 typedef struct int16x4x2_t
90 int16x4_t val[2];
91 } int16x4x2_t;
93 typedef struct int16x8x2_t
95 int16x8_t val[2];
96 } int16x8x2_t;
98 typedef struct int32x2x2_t
100 int32x2_t val[2];
101 } int32x2x2_t;
103 typedef struct int32x4x2_t
105 int32x4_t val[2];
106 } int32x4x2_t;
108 typedef struct int64x1x2_t
110 int64x1_t val[2];
111 } int64x1x2_t;
113 typedef struct int64x2x2_t
115 int64x2_t val[2];
116 } int64x2x2_t;
118 typedef struct uint8x8x2_t
120 uint8x8_t val[2];
121 } uint8x8x2_t;
123 typedef struct uint8x16x2_t
125 uint8x16_t val[2];
126 } uint8x16x2_t;
128 typedef struct uint16x4x2_t
130 uint16x4_t val[2];
131 } uint16x4x2_t;
133 typedef struct uint16x8x2_t
135 uint16x8_t val[2];
136 } uint16x8x2_t;
138 typedef struct uint32x2x2_t
140 uint32x2_t val[2];
141 } uint32x2x2_t;
143 typedef struct uint32x4x2_t
145 uint32x4_t val[2];
146 } uint32x4x2_t;
148 typedef struct uint64x1x2_t
150 uint64x1_t val[2];
151 } uint64x1x2_t;
153 typedef struct uint64x2x2_t
155 uint64x2_t val[2];
156 } uint64x2x2_t;
158 typedef struct float32x2x2_t
160 float32x2_t val[2];
161 } float32x2x2_t;
163 typedef struct float32x4x2_t
165 float32x4_t val[2];
166 } float32x4x2_t;
168 typedef struct poly8x8x2_t
170 poly8x8_t val[2];
171 } poly8x8x2_t;
173 typedef struct poly8x16x2_t
175 poly8x16_t val[2];
176 } poly8x16x2_t;
178 typedef struct poly16x4x2_t
180 poly16x4_t val[2];
181 } poly16x4x2_t;
183 typedef struct poly16x8x2_t
185 poly16x8_t val[2];
186 } poly16x8x2_t;
188 #ifdef __ARM_FEATURE_CRYPTO
189 typedef struct poly64x1x2_t
191 poly64x1_t val[2];
192 } poly64x1x2_t;
193 #endif
196 #ifdef __ARM_FEATURE_CRYPTO
197 typedef struct poly64x2x2_t
199 poly64x2_t val[2];
200 } poly64x2x2_t;
201 #endif
204 typedef struct int8x8x3_t
206 int8x8_t val[3];
207 } int8x8x3_t;
209 typedef struct int8x16x3_t
211 int8x16_t val[3];
212 } int8x16x3_t;
214 typedef struct int16x4x3_t
216 int16x4_t val[3];
217 } int16x4x3_t;
219 typedef struct int16x8x3_t
221 int16x8_t val[3];
222 } int16x8x3_t;
224 typedef struct int32x2x3_t
226 int32x2_t val[3];
227 } int32x2x3_t;
229 typedef struct int32x4x3_t
231 int32x4_t val[3];
232 } int32x4x3_t;
234 typedef struct int64x1x3_t
236 int64x1_t val[3];
237 } int64x1x3_t;
239 typedef struct int64x2x3_t
241 int64x2_t val[3];
242 } int64x2x3_t;
244 typedef struct uint8x8x3_t
246 uint8x8_t val[3];
247 } uint8x8x3_t;
249 typedef struct uint8x16x3_t
251 uint8x16_t val[3];
252 } uint8x16x3_t;
254 typedef struct uint16x4x3_t
256 uint16x4_t val[3];
257 } uint16x4x3_t;
259 typedef struct uint16x8x3_t
261 uint16x8_t val[3];
262 } uint16x8x3_t;
264 typedef struct uint32x2x3_t
266 uint32x2_t val[3];
267 } uint32x2x3_t;
269 typedef struct uint32x4x3_t
271 uint32x4_t val[3];
272 } uint32x4x3_t;
274 typedef struct uint64x1x3_t
276 uint64x1_t val[3];
277 } uint64x1x3_t;
279 typedef struct uint64x2x3_t
281 uint64x2_t val[3];
282 } uint64x2x3_t;
284 typedef struct float32x2x3_t
286 float32x2_t val[3];
287 } float32x2x3_t;
289 typedef struct float32x4x3_t
291 float32x4_t val[3];
292 } float32x4x3_t;
294 typedef struct poly8x8x3_t
296 poly8x8_t val[3];
297 } poly8x8x3_t;
299 typedef struct poly8x16x3_t
301 poly8x16_t val[3];
302 } poly8x16x3_t;
304 typedef struct poly16x4x3_t
306 poly16x4_t val[3];
307 } poly16x4x3_t;
309 typedef struct poly16x8x3_t
311 poly16x8_t val[3];
312 } poly16x8x3_t;
314 #ifdef __ARM_FEATURE_CRYPTO
315 typedef struct poly64x1x3_t
317 poly64x1_t val[3];
318 } poly64x1x3_t;
319 #endif
322 #ifdef __ARM_FEATURE_CRYPTO
323 typedef struct poly64x2x3_t
325 poly64x2_t val[3];
326 } poly64x2x3_t;
327 #endif
330 typedef struct int8x8x4_t
332 int8x8_t val[4];
333 } int8x8x4_t;
335 typedef struct int8x16x4_t
337 int8x16_t val[4];
338 } int8x16x4_t;
340 typedef struct int16x4x4_t
342 int16x4_t val[4];
343 } int16x4x4_t;
345 typedef struct int16x8x4_t
347 int16x8_t val[4];
348 } int16x8x4_t;
350 typedef struct int32x2x4_t
352 int32x2_t val[4];
353 } int32x2x4_t;
355 typedef struct int32x4x4_t
357 int32x4_t val[4];
358 } int32x4x4_t;
360 typedef struct int64x1x4_t
362 int64x1_t val[4];
363 } int64x1x4_t;
365 typedef struct int64x2x4_t
367 int64x2_t val[4];
368 } int64x2x4_t;
370 typedef struct uint8x8x4_t
372 uint8x8_t val[4];
373 } uint8x8x4_t;
375 typedef struct uint8x16x4_t
377 uint8x16_t val[4];
378 } uint8x16x4_t;
380 typedef struct uint16x4x4_t
382 uint16x4_t val[4];
383 } uint16x4x4_t;
385 typedef struct uint16x8x4_t
387 uint16x8_t val[4];
388 } uint16x8x4_t;
390 typedef struct uint32x2x4_t
392 uint32x2_t val[4];
393 } uint32x2x4_t;
395 typedef struct uint32x4x4_t
397 uint32x4_t val[4];
398 } uint32x4x4_t;
400 typedef struct uint64x1x4_t
402 uint64x1_t val[4];
403 } uint64x1x4_t;
405 typedef struct uint64x2x4_t
407 uint64x2_t val[4];
408 } uint64x2x4_t;
410 typedef struct float32x2x4_t
412 float32x2_t val[4];
413 } float32x2x4_t;
415 typedef struct float32x4x4_t
417 float32x4_t val[4];
418 } float32x4x4_t;
420 typedef struct poly8x8x4_t
422 poly8x8_t val[4];
423 } poly8x8x4_t;
425 typedef struct poly8x16x4_t
427 poly8x16_t val[4];
428 } poly8x16x4_t;
430 typedef struct poly16x4x4_t
432 poly16x4_t val[4];
433 } poly16x4x4_t;
435 typedef struct poly16x8x4_t
437 poly16x8_t val[4];
438 } poly16x8x4_t;
440 #ifdef __ARM_FEATURE_CRYPTO
441 typedef struct poly64x1x4_t
443 poly64x1_t val[4];
444 } poly64x1x4_t;
445 #endif
448 #ifdef __ARM_FEATURE_CRYPTO
449 typedef struct poly64x2x4_t
451 poly64x2_t val[4];
452 } poly64x2x4_t;
453 #endif
455 /* vadd */
456 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
457 vadd_s8 (int8x8_t __a, int8x8_t __b)
459 return __a + __b;
462 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
463 vadd_s16 (int16x4_t __a, int16x4_t __b)
465 return __a + __b;
468 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
469 vadd_s32 (int32x2_t __a, int32x2_t __b)
471 return __a + __b;
474 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
475 vadd_f32 (float32x2_t __a, float32x2_t __b)
477 #ifdef __FAST_MATH
478 return __a + __b;
479 #else
480 return (float32x2_t) __builtin_neon_vaddv2sf (__a, __b);
481 #endif
484 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
485 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
487 return __a + __b;
490 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
491 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
493 return __a + __b;
496 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
497 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
499 return __a + __b;
502 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
503 vadd_s64 (int64x1_t __a, int64x1_t __b)
505 return __a + __b;
508 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
509 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
511 return __a + __b;
514 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
515 vaddq_s8 (int8x16_t __a, int8x16_t __b)
517 return __a + __b;
520 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
521 vaddq_s16 (int16x8_t __a, int16x8_t __b)
523 return __a + __b;
526 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
527 vaddq_s32 (int32x4_t __a, int32x4_t __b)
529 return __a + __b;
532 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
533 vaddq_s64 (int64x2_t __a, int64x2_t __b)
535 return __a + __b;
538 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
539 vaddq_f32 (float32x4_t __a, float32x4_t __b)
541 #ifdef __FAST_MATH
542 return __a + __b;
543 #else
544 return (float32x4_t) __builtin_neon_vaddv4sf (__a, __b);
545 #endif
548 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
549 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
551 return __a + __b;
554 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
555 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
557 return __a + __b;
560 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
561 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
563 return __a + __b;
566 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
567 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
569 return __a + __b;
572 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
573 vaddl_s8 (int8x8_t __a, int8x8_t __b)
575 return (int16x8_t)__builtin_neon_vaddlsv8qi (__a, __b);
578 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
579 vaddl_s16 (int16x4_t __a, int16x4_t __b)
581 return (int32x4_t)__builtin_neon_vaddlsv4hi (__a, __b);
584 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
585 vaddl_s32 (int32x2_t __a, int32x2_t __b)
587 return (int64x2_t)__builtin_neon_vaddlsv2si (__a, __b);
590 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
591 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
593 return (uint16x8_t)__builtin_neon_vaddluv8qi ((int8x8_t) __a, (int8x8_t) __b);
596 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
597 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
599 return (uint32x4_t)__builtin_neon_vaddluv4hi ((int16x4_t) __a, (int16x4_t) __b);
602 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
603 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
605 return (uint64x2_t)__builtin_neon_vaddluv2si ((int32x2_t) __a, (int32x2_t) __b);
608 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
609 vaddw_s8 (int16x8_t __a, int8x8_t __b)
611 return (int16x8_t)__builtin_neon_vaddwsv8qi (__a, __b);
614 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
615 vaddw_s16 (int32x4_t __a, int16x4_t __b)
617 return (int32x4_t)__builtin_neon_vaddwsv4hi (__a, __b);
620 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
621 vaddw_s32 (int64x2_t __a, int32x2_t __b)
623 return (int64x2_t)__builtin_neon_vaddwsv2si (__a, __b);
626 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
627 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
629 return (uint16x8_t)__builtin_neon_vaddwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
632 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
633 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
635 return (uint32x4_t)__builtin_neon_vaddwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
638 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
639 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
641 return (uint64x2_t)__builtin_neon_vaddwuv2si ((int64x2_t) __a, (int32x2_t) __b);
644 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
645 vhadd_s8 (int8x8_t __a, int8x8_t __b)
647 return (int8x8_t)__builtin_neon_vhaddsv8qi (__a, __b);
650 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
651 vhadd_s16 (int16x4_t __a, int16x4_t __b)
653 return (int16x4_t)__builtin_neon_vhaddsv4hi (__a, __b);
656 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
657 vhadd_s32 (int32x2_t __a, int32x2_t __b)
659 return (int32x2_t)__builtin_neon_vhaddsv2si (__a, __b);
662 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
663 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
665 return (uint8x8_t)__builtin_neon_vhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
668 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
669 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
671 return (uint16x4_t)__builtin_neon_vhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
674 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
675 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
677 return (uint32x2_t)__builtin_neon_vhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
680 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
681 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
683 return (int8x16_t)__builtin_neon_vhaddsv16qi (__a, __b);
686 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
687 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
689 return (int16x8_t)__builtin_neon_vhaddsv8hi (__a, __b);
692 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
693 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
695 return (int32x4_t)__builtin_neon_vhaddsv4si (__a, __b);
698 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
699 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
701 return (uint8x16_t)__builtin_neon_vhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
704 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
705 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
707 return (uint16x8_t)__builtin_neon_vhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
710 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
711 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
713 return (uint32x4_t)__builtin_neon_vhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
716 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
717 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
719 return (int8x8_t)__builtin_neon_vrhaddsv8qi (__a, __b);
722 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
723 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
725 return (int16x4_t)__builtin_neon_vrhaddsv4hi (__a, __b);
728 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
729 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
731 return (int32x2_t)__builtin_neon_vrhaddsv2si (__a, __b);
734 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
735 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
737 return (uint8x8_t)__builtin_neon_vrhadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
740 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
741 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
743 return (uint16x4_t)__builtin_neon_vrhadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
746 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
747 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
749 return (uint32x2_t)__builtin_neon_vrhadduv2si ((int32x2_t) __a, (int32x2_t) __b);
752 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
753 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
755 return (int8x16_t)__builtin_neon_vrhaddsv16qi (__a, __b);
758 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
759 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
761 return (int16x8_t)__builtin_neon_vrhaddsv8hi (__a, __b);
764 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
765 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
767 return (int32x4_t)__builtin_neon_vrhaddsv4si (__a, __b);
770 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
771 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
773 return (uint8x16_t)__builtin_neon_vrhadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
776 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
777 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
779 return (uint16x8_t)__builtin_neon_vrhadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
782 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
783 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
785 return (uint32x4_t)__builtin_neon_vrhadduv4si ((int32x4_t) __a, (int32x4_t) __b);
788 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
789 vqadd_s8 (int8x8_t __a, int8x8_t __b)
791 return (int8x8_t)__builtin_neon_vqaddsv8qi (__a, __b);
794 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
795 vqadd_s16 (int16x4_t __a, int16x4_t __b)
797 return (int16x4_t)__builtin_neon_vqaddsv4hi (__a, __b);
800 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
801 vqadd_s32 (int32x2_t __a, int32x2_t __b)
803 return (int32x2_t)__builtin_neon_vqaddsv2si (__a, __b);
806 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
807 vqadd_s64 (int64x1_t __a, int64x1_t __b)
809 return (int64x1_t)__builtin_neon_vqaddsdi (__a, __b);
812 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
813 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
815 return (uint8x8_t)__builtin_neon_vqadduv8qi ((int8x8_t) __a, (int8x8_t) __b);
818 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
819 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
821 return (uint16x4_t)__builtin_neon_vqadduv4hi ((int16x4_t) __a, (int16x4_t) __b);
824 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
825 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
827 return (uint32x2_t)__builtin_neon_vqadduv2si ((int32x2_t) __a, (int32x2_t) __b);
830 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
831 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
833 return (uint64x1_t)__builtin_neon_vqaddudi ((int64x1_t) __a, (int64x1_t) __b);
836 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
837 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
839 return (int8x16_t)__builtin_neon_vqaddsv16qi (__a, __b);
842 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
843 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
845 return (int16x8_t)__builtin_neon_vqaddsv8hi (__a, __b);
848 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
849 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
851 return (int32x4_t)__builtin_neon_vqaddsv4si (__a, __b);
854 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
855 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
857 return (int64x2_t)__builtin_neon_vqaddsv2di (__a, __b);
860 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
861 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
863 return (uint8x16_t)__builtin_neon_vqadduv16qi ((int8x16_t) __a, (int8x16_t) __b);
866 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
867 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
869 return (uint16x8_t)__builtin_neon_vqadduv8hi ((int16x8_t) __a, (int16x8_t) __b);
872 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
873 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
875 return (uint32x4_t)__builtin_neon_vqadduv4si ((int32x4_t) __a, (int32x4_t) __b);
878 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
879 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
881 return (uint64x2_t)__builtin_neon_vqadduv2di ((int64x2_t) __a, (int64x2_t) __b);
884 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
885 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
887 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b);
890 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
891 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
893 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b);
896 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
897 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
899 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b);
902 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
903 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
905 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
908 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
909 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
911 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
914 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
915 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
917 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
920 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
921 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
923 return (int8x8_t)__builtin_neon_vraddhnv8hi (__a, __b);
926 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
927 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
929 return (int16x4_t)__builtin_neon_vraddhnv4si (__a, __b);
932 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
933 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
935 return (int32x2_t)__builtin_neon_vraddhnv2di (__a, __b);
938 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
939 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
941 return (uint8x8_t)__builtin_neon_vraddhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
944 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
945 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
947 return (uint16x4_t)__builtin_neon_vraddhnv4si ((int32x4_t) __a, (int32x4_t) __b);
950 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
951 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
953 return (uint32x2_t)__builtin_neon_vraddhnv2di ((int64x2_t) __a, (int64x2_t) __b);
956 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
957 vmul_s8 (int8x8_t __a, int8x8_t __b)
959 return __a * __b;
962 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
963 vmul_s16 (int16x4_t __a, int16x4_t __b)
965 return __a * __b;
968 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
969 vmul_s32 (int32x2_t __a, int32x2_t __b)
971 return __a * __b;
974 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
975 vmul_f32 (float32x2_t __a, float32x2_t __b)
977 #ifdef __FAST_MATH
978 return __a * __b;
979 #else
980 return (float32x2_t) __builtin_neon_vmulfv2sf (__a, __b);
981 #endif
985 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
986 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
988 return __a * __b;
991 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
992 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
994 return __a * __b;
997 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
998 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1000 return __a * __b;
1003 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1004 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1006 return __a * __b;
1009 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1010 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1012 return __a * __b;
1015 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1016 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1018 return __a * __b;
1021 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1022 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1024 #ifdef __FAST_MATH
1025 return __a * __b;
1026 #else
1027 return (float32x4_t) __builtin_neon_vmulfv4sf (__a, __b);
1028 #endif
1031 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1032 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1034 return __a * __b;
1037 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1038 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1040 return __a * __b;
1043 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1044 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1046 return __a * __b;
1049 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
1050 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1052 return (poly8x8_t)__builtin_neon_vmulpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1055 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
1056 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1058 return (poly8x16_t)__builtin_neon_vmulpv16qi ((int8x16_t) __a, (int8x16_t) __b);
1061 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1062 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
1064 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b);
1067 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1068 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
1070 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b);
1073 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1074 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1076 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b);
1079 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1080 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1082 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b);
1085 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1086 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
1088 return (int16x4_t)__builtin_neon_vqrdmulhv4hi (__a, __b);
1091 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1092 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
1094 return (int32x2_t)__builtin_neon_vqrdmulhv2si (__a, __b);
1097 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1098 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
1100 return (int16x8_t)__builtin_neon_vqrdmulhv8hi (__a, __b);
1103 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1104 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
1106 return (int32x4_t)__builtin_neon_vqrdmulhv4si (__a, __b);
1109 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1110 vmull_s8 (int8x8_t __a, int8x8_t __b)
1112 return (int16x8_t)__builtin_neon_vmullsv8qi (__a, __b);
1115 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1116 vmull_s16 (int16x4_t __a, int16x4_t __b)
1118 return (int32x4_t)__builtin_neon_vmullsv4hi (__a, __b);
1121 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1122 vmull_s32 (int32x2_t __a, int32x2_t __b)
1124 return (int64x2_t)__builtin_neon_vmullsv2si (__a, __b);
1127 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1128 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
1130 return (uint16x8_t)__builtin_neon_vmulluv8qi ((int8x8_t) __a, (int8x8_t) __b);
1133 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1134 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
1136 return (uint32x4_t)__builtin_neon_vmulluv4hi ((int16x4_t) __a, (int16x4_t) __b);
1139 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1140 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
1142 return (uint64x2_t)__builtin_neon_vmulluv2si ((int32x2_t) __a, (int32x2_t) __b);
1145 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
1146 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
1148 return (poly16x8_t)__builtin_neon_vmullpv8qi ((int8x8_t) __a, (int8x8_t) __b);
1151 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1152 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
1154 return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b);
1157 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1158 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
1160 return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b);
1163 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1164 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1166 return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c);
1169 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1170 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1172 return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c);
1175 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1176 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1178 return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c);
1181 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1182 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1184 return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c);
1187 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1188 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1190 return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1193 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1194 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1196 return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1199 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1200 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1202 return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1205 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1206 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1208 return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c);
1211 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1212 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1214 return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c);
1217 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1218 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1220 return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c);
1223 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1224 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1226 return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c);
1229 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1230 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1232 return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1235 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1236 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1238 return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1241 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1242 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1244 return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1247 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1248 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1250 return (int16x8_t)__builtin_neon_vmlalsv8qi (__a, __b, __c);
1253 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1254 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1256 return (int32x4_t)__builtin_neon_vmlalsv4hi (__a, __b, __c);
1259 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1260 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1262 return (int64x2_t)__builtin_neon_vmlalsv2si (__a, __b, __c);
1265 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1266 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1268 return (uint16x8_t)__builtin_neon_vmlaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1271 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1272 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1274 return (uint32x4_t)__builtin_neon_vmlaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1277 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1278 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1280 return (uint64x2_t)__builtin_neon_vmlaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1283 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1284 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1286 return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c);
1289 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1290 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1292 return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c);
1295 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1296 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
1298 return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c);
1301 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1302 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
1304 return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c);
1307 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1308 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
1310 return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c);
1313 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1314 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1316 return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c);
1319 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1320 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
1322 return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1325 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1326 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
1328 return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1331 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1332 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
1334 return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1337 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1338 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
1340 return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c);
1343 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1344 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
1346 return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c);
1349 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1350 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
1352 return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c);
1355 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1356 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1358 return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c);
1361 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1362 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
1364 return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
1367 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1368 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
1370 return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
1373 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1374 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
1376 return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
1379 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1380 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
1382 return (int16x8_t)__builtin_neon_vmlslsv8qi (__a, __b, __c);
1385 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1386 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1388 return (int32x4_t)__builtin_neon_vmlslsv4hi (__a, __b, __c);
1391 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1392 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1394 return (int64x2_t)__builtin_neon_vmlslsv2si (__a, __b, __c);
1397 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1398 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
1400 return (uint16x8_t)__builtin_neon_vmlsluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
1403 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1404 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
1406 return (uint32x4_t)__builtin_neon_vmlsluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
1409 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1410 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
1412 return (uint64x2_t)__builtin_neon_vmlsluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
1415 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1416 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
1418 return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c);
1421 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1422 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
1424 return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c);
1427 #ifdef __ARM_FEATURE_FMA
1428 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1429 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1431 return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c);
1434 #endif
1435 #ifdef __ARM_FEATURE_FMA
1436 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1437 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1439 return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c);
1442 #endif
1443 #ifdef __ARM_FEATURE_FMA
1444 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1445 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
1447 return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c);
1450 #endif
1451 #ifdef __ARM_FEATURE_FMA
1452 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1453 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
1455 return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c);
1458 #endif
1459 #if __ARM_ARCH >= 8
1460 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1461 vrndn_f32 (float32x2_t __a)
1463 return (float32x2_t)__builtin_neon_vrintnv2sf (__a);
1466 #endif
1467 #if __ARM_ARCH >= 8
1468 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1469 vrndqn_f32 (float32x4_t __a)
1471 return (float32x4_t)__builtin_neon_vrintnv4sf (__a);
1474 #endif
1475 #if __ARM_ARCH >= 8
1476 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1477 vrnda_f32 (float32x2_t __a)
1479 return (float32x2_t)__builtin_neon_vrintav2sf (__a);
1482 #endif
1483 #if __ARM_ARCH >= 8
1484 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1485 vrndqa_f32 (float32x4_t __a)
1487 return (float32x4_t)__builtin_neon_vrintav4sf (__a);
1490 #endif
1491 #if __ARM_ARCH >= 8
1492 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1493 vrndp_f32 (float32x2_t __a)
1495 return (float32x2_t)__builtin_neon_vrintpv2sf (__a);
1498 #endif
1499 #if __ARM_ARCH >= 8
1500 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1501 vrndqp_f32 (float32x4_t __a)
1503 return (float32x4_t)__builtin_neon_vrintpv4sf (__a);
1506 #endif
1507 #if __ARM_ARCH >= 8
1508 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1509 vrndm_f32 (float32x2_t __a)
1511 return (float32x2_t)__builtin_neon_vrintmv2sf (__a);
1514 #endif
1515 #if __ARM_ARCH >= 8
1516 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1517 vrndqm_f32 (float32x4_t __a)
1519 return (float32x4_t)__builtin_neon_vrintmv4sf (__a);
1522 #endif
1523 #if __ARM_ARCH >= 8
1524 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1525 vrnd_f32 (float32x2_t __a)
1527 return (float32x2_t)__builtin_neon_vrintzv2sf (__a);
1530 #endif
1531 #if __ARM_ARCH >= 8
1532 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1533 vrndq_f32 (float32x4_t __a)
1535 return (float32x4_t)__builtin_neon_vrintzv4sf (__a);
1538 #endif
1540 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1541 vsub_s8 (int8x8_t __a, int8x8_t __b)
1543 return __a - __b;
1546 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1547 vsub_s16 (int16x4_t __a, int16x4_t __b)
1549 return __a - __b;
1552 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1553 vsub_s32 (int32x2_t __a, int32x2_t __b)
1555 return __a - __b;
1558 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
1559 vsub_f32 (float32x2_t __a, float32x2_t __b)
1561 #ifdef __FAST_MATH
1562 return __a - __b;
1563 #else
1564 return (float32x2_t) __builtin_neon_vsubv2sf (__a, __b);
1565 #endif
1568 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1569 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
1571 return __a - __b;
1574 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1575 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
1577 return __a - __b;
1580 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1581 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
1583 return __a - __b;
1586 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
1587 vsub_s64 (int64x1_t __a, int64x1_t __b)
1589 return __a - __b;
1592 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
1593 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
1595 return __a - __b;
1598 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1599 vsubq_s8 (int8x16_t __a, int8x16_t __b)
1601 return __a - __b;
1604 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1605 vsubq_s16 (int16x8_t __a, int16x8_t __b)
1607 return __a - __b;
1610 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1611 vsubq_s32 (int32x4_t __a, int32x4_t __b)
1613 return __a - __b;
1616 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1617 vsubq_s64 (int64x2_t __a, int64x2_t __b)
1619 return __a - __b;
1622 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
1623 vsubq_f32 (float32x4_t __a, float32x4_t __b)
1625 #ifdef __FAST_MATH
1626 return __a - __b;
1627 #else
1628 return (float32x4_t) __builtin_neon_vsubv4sf (__a, __b);
1629 #endif
1632 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1633 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1635 return __a - __b;
1638 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1639 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1641 return __a - __b;
1644 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1645 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1647 return __a - __b;
1650 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1651 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1653 return __a - __b;
1656 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1657 vsubl_s8 (int8x8_t __a, int8x8_t __b)
1659 return (int16x8_t)__builtin_neon_vsublsv8qi (__a, __b);
1662 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1663 vsubl_s16 (int16x4_t __a, int16x4_t __b)
1665 return (int32x4_t)__builtin_neon_vsublsv4hi (__a, __b);
1668 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1669 vsubl_s32 (int32x2_t __a, int32x2_t __b)
1671 return (int64x2_t)__builtin_neon_vsublsv2si (__a, __b);
1674 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1675 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
1677 return (uint16x8_t)__builtin_neon_vsubluv8qi ((int8x8_t) __a, (int8x8_t) __b);
1680 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1681 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
1683 return (uint32x4_t)__builtin_neon_vsubluv4hi ((int16x4_t) __a, (int16x4_t) __b);
1686 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1687 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
1689 return (uint64x2_t)__builtin_neon_vsubluv2si ((int32x2_t) __a, (int32x2_t) __b);
1692 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1693 vsubw_s8 (int16x8_t __a, int8x8_t __b)
1695 return (int16x8_t)__builtin_neon_vsubwsv8qi (__a, __b);
1698 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1699 vsubw_s16 (int32x4_t __a, int16x4_t __b)
1701 return (int32x4_t)__builtin_neon_vsubwsv4hi (__a, __b);
1704 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1705 vsubw_s32 (int64x2_t __a, int32x2_t __b)
1707 return (int64x2_t)__builtin_neon_vsubwsv2si (__a, __b);
1710 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1711 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
1713 return (uint16x8_t)__builtin_neon_vsubwuv8qi ((int16x8_t) __a, (int8x8_t) __b);
1716 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1717 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
1719 return (uint32x4_t)__builtin_neon_vsubwuv4hi ((int32x4_t) __a, (int16x4_t) __b);
1722 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1723 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
1725 return (uint64x2_t)__builtin_neon_vsubwuv2si ((int64x2_t) __a, (int32x2_t) __b);
1728 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1729 vhsub_s8 (int8x8_t __a, int8x8_t __b)
1731 return (int8x8_t)__builtin_neon_vhsubsv8qi (__a, __b);
1734 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1735 vhsub_s16 (int16x4_t __a, int16x4_t __b)
1737 return (int16x4_t)__builtin_neon_vhsubsv4hi (__a, __b);
1740 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1741 vhsub_s32 (int32x2_t __a, int32x2_t __b)
1743 return (int32x2_t)__builtin_neon_vhsubsv2si (__a, __b);
1746 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1747 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
1749 return (uint8x8_t)__builtin_neon_vhsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
1752 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1753 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
1755 return (uint16x4_t)__builtin_neon_vhsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
1758 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1759 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
1761 return (uint32x2_t)__builtin_neon_vhsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
1764 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1765 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
1767 return (int8x16_t)__builtin_neon_vhsubsv16qi (__a, __b);
1770 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1771 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
1773 return (int16x8_t)__builtin_neon_vhsubsv8hi (__a, __b);
1776 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1777 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
1779 return (int32x4_t)__builtin_neon_vhsubsv4si (__a, __b);
1782 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1783 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1785 return (uint8x16_t)__builtin_neon_vhsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
1788 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1789 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1791 return (uint16x8_t)__builtin_neon_vhsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
1794 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1795 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1797 return (uint32x4_t)__builtin_neon_vhsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
1800 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1801 vqsub_s8 (int8x8_t __a, int8x8_t __b)
1803 return (int8x8_t)__builtin_neon_vqsubsv8qi (__a, __b);
1806 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1807 vqsub_s16 (int16x4_t __a, int16x4_t __b)
1809 return (int16x4_t)__builtin_neon_vqsubsv4hi (__a, __b);
1812 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1813 vqsub_s32 (int32x2_t __a, int32x2_t __b)
1815 return (int32x2_t)__builtin_neon_vqsubsv2si (__a, __b);
1818 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
1819 vqsub_s64 (int64x1_t __a, int64x1_t __b)
1821 return (int64x1_t)__builtin_neon_vqsubsdi (__a, __b);
1824 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1825 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
1827 return (uint8x8_t)__builtin_neon_vqsubuv8qi ((int8x8_t) __a, (int8x8_t) __b);
1830 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1831 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
1833 return (uint16x4_t)__builtin_neon_vqsubuv4hi ((int16x4_t) __a, (int16x4_t) __b);
1836 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1837 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
1839 return (uint32x2_t)__builtin_neon_vqsubuv2si ((int32x2_t) __a, (int32x2_t) __b);
1842 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
1843 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
1845 return (uint64x1_t)__builtin_neon_vqsubudi ((int64x1_t) __a, (int64x1_t) __b);
1848 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
1849 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
1851 return (int8x16_t)__builtin_neon_vqsubsv16qi (__a, __b);
1854 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
1855 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
1857 return (int16x8_t)__builtin_neon_vqsubsv8hi (__a, __b);
1860 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
1861 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
1863 return (int32x4_t)__builtin_neon_vqsubsv4si (__a, __b);
1866 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
1867 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
1869 return (int64x2_t)__builtin_neon_vqsubsv2di (__a, __b);
1872 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
1873 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
1875 return (uint8x16_t)__builtin_neon_vqsubuv16qi ((int8x16_t) __a, (int8x16_t) __b);
1878 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
1879 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
1881 return (uint16x8_t)__builtin_neon_vqsubuv8hi ((int16x8_t) __a, (int16x8_t) __b);
1884 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
1885 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
1887 return (uint32x4_t)__builtin_neon_vqsubuv4si ((int32x4_t) __a, (int32x4_t) __b);
1890 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
1891 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
1893 return (uint64x2_t)__builtin_neon_vqsubuv2di ((int64x2_t) __a, (int64x2_t) __b);
1896 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1897 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
1899 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b);
1902 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1903 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
1905 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b);
1908 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1909 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
1911 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b);
1914 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1915 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
1917 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1920 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1921 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
1923 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1926 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1927 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
1929 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1932 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
1933 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
1935 return (int8x8_t)__builtin_neon_vrsubhnv8hi (__a, __b);
1938 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
1939 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
1941 return (int16x4_t)__builtin_neon_vrsubhnv4si (__a, __b);
1944 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
1945 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
1947 return (int32x2_t)__builtin_neon_vrsubhnv2di (__a, __b);
1950 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1951 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
1953 return (uint8x8_t)__builtin_neon_vrsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b);
1956 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1957 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
1959 return (uint16x4_t)__builtin_neon_vrsubhnv4si ((int32x4_t) __a, (int32x4_t) __b);
1962 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1963 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
1965 return (uint32x2_t)__builtin_neon_vrsubhnv2di ((int64x2_t) __a, (int64x2_t) __b);
1968 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1969 vceq_s8 (int8x8_t __a, int8x8_t __b)
1971 return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b);
1974 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1975 vceq_s16 (int16x4_t __a, int16x4_t __b)
1977 return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b);
1980 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1981 vceq_s32 (int32x2_t __a, int32x2_t __b)
1983 return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b);
1986 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
1987 vceq_f32 (float32x2_t __a, float32x2_t __b)
1989 return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b);
1992 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
1993 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
1995 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
1998 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
1999 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
2001 return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b);
2004 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2005 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
2007 return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b);
2010 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2011 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
2013 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b);
2016 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2017 vceqq_s8 (int8x16_t __a, int8x16_t __b)
2019 return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b);
2022 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2023 vceqq_s16 (int16x8_t __a, int16x8_t __b)
2025 return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b);
2028 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2029 vceqq_s32 (int32x4_t __a, int32x4_t __b)
2031 return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b);
2034 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2035 vceqq_f32 (float32x4_t __a, float32x4_t __b)
2037 return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b);
2040 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2041 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
2043 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2046 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2047 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
2049 return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b);
2052 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2053 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
2055 return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b);
2058 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2059 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
2061 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b);
2064 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2065 vcge_s8 (int8x8_t __a, int8x8_t __b)
2067 return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b);
2070 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2071 vcge_s16 (int16x4_t __a, int16x4_t __b)
2073 return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b);
2076 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2077 vcge_s32 (int32x2_t __a, int32x2_t __b)
2079 return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b);
2082 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2083 vcge_f32 (float32x2_t __a, float32x2_t __b)
2085 return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b);
2088 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2089 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
2091 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2094 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2095 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
2097 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2100 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2101 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
2103 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b);
2106 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2107 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
2109 return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b);
2112 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2113 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
2115 return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b);
2118 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2119 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
2121 return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b);
2124 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2125 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
2127 return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b);
2130 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2131 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
2133 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2136 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2137 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
2139 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2142 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2143 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
2145 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b);
2148 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2149 vcle_s8 (int8x8_t __a, int8x8_t __b)
2151 return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a);
2154 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2155 vcle_s16 (int16x4_t __a, int16x4_t __b)
2157 return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a);
2160 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2161 vcle_s32 (int32x2_t __a, int32x2_t __b)
2163 return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a);
2166 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2167 vcle_f32 (float32x2_t __a, float32x2_t __b)
2169 return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a);
2172 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2173 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
2175 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2178 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2179 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
2181 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2184 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2185 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
2187 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a);
2190 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2191 vcleq_s8 (int8x16_t __a, int8x16_t __b)
2193 return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a);
2196 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2197 vcleq_s16 (int16x8_t __a, int16x8_t __b)
2199 return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a);
2202 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2203 vcleq_s32 (int32x4_t __a, int32x4_t __b)
2205 return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a);
2208 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2209 vcleq_f32 (float32x4_t __a, float32x4_t __b)
2211 return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a);
2214 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2215 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
2217 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2220 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2221 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
2223 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2226 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2227 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
2229 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a);
2232 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2233 vcgt_s8 (int8x8_t __a, int8x8_t __b)
2235 return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b);
2238 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2239 vcgt_s16 (int16x4_t __a, int16x4_t __b)
2241 return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b);
2244 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2245 vcgt_s32 (int32x2_t __a, int32x2_t __b)
2247 return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b);
2250 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2251 vcgt_f32 (float32x2_t __a, float32x2_t __b)
2253 return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b);
2256 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2257 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
2259 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2262 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2263 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
2265 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2268 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2269 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
2271 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __a, (int32x2_t) __b);
2274 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2275 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
2277 return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b);
2280 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2281 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
2283 return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b);
2286 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2287 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
2289 return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b);
2292 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2293 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
2295 return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b);
2298 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2299 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
2301 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2304 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2305 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
2307 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2310 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2311 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
2313 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __a, (int32x4_t) __b);
2316 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2317 vclt_s8 (int8x8_t __a, int8x8_t __b)
2319 return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a);
2322 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2323 vclt_s16 (int16x4_t __a, int16x4_t __b)
2325 return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a);
2328 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2329 vclt_s32 (int32x2_t __a, int32x2_t __b)
2331 return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a);
2334 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2335 vclt_f32 (float32x2_t __a, float32x2_t __b)
2337 return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a);
2340 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2341 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
2343 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __b, (int8x8_t) __a);
2346 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2347 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
2349 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __b, (int16x4_t) __a);
2352 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2353 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
2355 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __b, (int32x2_t) __a);
2358 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2359 vcltq_s8 (int8x16_t __a, int8x16_t __b)
2361 return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a);
2364 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2365 vcltq_s16 (int16x8_t __a, int16x8_t __b)
2367 return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a);
2370 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2371 vcltq_s32 (int32x4_t __a, int32x4_t __b)
2373 return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a);
2376 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2377 vcltq_f32 (float32x4_t __a, float32x4_t __b)
2379 return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a);
2382 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2383 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
2385 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __b, (int8x16_t) __a);
2388 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2389 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
2391 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __b, (int16x8_t) __a);
2394 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2395 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
2397 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __b, (int32x4_t) __a);
2400 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2401 vcage_f32 (float32x2_t __a, float32x2_t __b)
2403 return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b);
2406 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2407 vcageq_f32 (float32x4_t __a, float32x4_t __b)
2409 return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b);
2412 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2413 vcale_f32 (float32x2_t __a, float32x2_t __b)
2415 return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a);
2418 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2419 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
2421 return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a);
2424 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2425 vcagt_f32 (float32x2_t __a, float32x2_t __b)
2427 return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b);
2430 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2431 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
2433 return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b);
2436 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2437 vcalt_f32 (float32x2_t __a, float32x2_t __b)
2439 return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a);
2442 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2443 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
2445 return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a);
2448 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2449 vtst_s8 (int8x8_t __a, int8x8_t __b)
2451 return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b);
2454 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2455 vtst_s16 (int16x4_t __a, int16x4_t __b)
2457 return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b);
2460 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2461 vtst_s32 (int32x2_t __a, int32x2_t __b)
2463 return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b);
2466 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2467 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
2469 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2472 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2473 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
2475 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b);
2478 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2479 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
2481 return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b);
2484 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2485 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
2487 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b);
2490 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2491 vtstq_s8 (int8x16_t __a, int8x16_t __b)
2493 return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b);
2496 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2497 vtstq_s16 (int16x8_t __a, int16x8_t __b)
2499 return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b);
2502 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2503 vtstq_s32 (int32x4_t __a, int32x4_t __b)
2505 return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b);
2508 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2509 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
2511 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
2514 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2515 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
2517 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b);
2520 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2521 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
2523 return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b);
2526 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2527 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
2529 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b);
2532 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2533 vabd_s8 (int8x8_t __a, int8x8_t __b)
2535 return (int8x8_t)__builtin_neon_vabdsv8qi (__a, __b);
2538 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2539 vabd_s16 (int16x4_t __a, int16x4_t __b)
2541 return (int16x4_t)__builtin_neon_vabdsv4hi (__a, __b);
2544 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2545 vabd_s32 (int32x2_t __a, int32x2_t __b)
2547 return (int32x2_t)__builtin_neon_vabdsv2si (__a, __b);
2550 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2551 vabd_f32 (float32x2_t __a, float32x2_t __b)
2553 return (float32x2_t)__builtin_neon_vabdfv2sf (__a, __b);
2556 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2557 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
2559 return (uint8x8_t)__builtin_neon_vabduv8qi ((int8x8_t) __a, (int8x8_t) __b);
2562 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2563 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
2565 return (uint16x4_t)__builtin_neon_vabduv4hi ((int16x4_t) __a, (int16x4_t) __b);
2568 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2569 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
2571 return (uint32x2_t)__builtin_neon_vabduv2si ((int32x2_t) __a, (int32x2_t) __b);
2574 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2575 vabdq_s8 (int8x16_t __a, int8x16_t __b)
2577 return (int8x16_t)__builtin_neon_vabdsv16qi (__a, __b);
2580 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2581 vabdq_s16 (int16x8_t __a, int16x8_t __b)
2583 return (int16x8_t)__builtin_neon_vabdsv8hi (__a, __b);
2586 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2587 vabdq_s32 (int32x4_t __a, int32x4_t __b)
2589 return (int32x4_t)__builtin_neon_vabdsv4si (__a, __b);
2592 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2593 vabdq_f32 (float32x4_t __a, float32x4_t __b)
2595 return (float32x4_t)__builtin_neon_vabdfv4sf (__a, __b);
2598 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2599 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
2601 return (uint8x16_t)__builtin_neon_vabduv16qi ((int8x16_t) __a, (int8x16_t) __b);
2604 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2605 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
2607 return (uint16x8_t)__builtin_neon_vabduv8hi ((int16x8_t) __a, (int16x8_t) __b);
2610 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2611 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
2613 return (uint32x4_t)__builtin_neon_vabduv4si ((int32x4_t) __a, (int32x4_t) __b);
2616 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2617 vabdl_s8 (int8x8_t __a, int8x8_t __b)
2619 return (int16x8_t)__builtin_neon_vabdlsv8qi (__a, __b);
2622 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2623 vabdl_s16 (int16x4_t __a, int16x4_t __b)
2625 return (int32x4_t)__builtin_neon_vabdlsv4hi (__a, __b);
2628 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2629 vabdl_s32 (int32x2_t __a, int32x2_t __b)
2631 return (int64x2_t)__builtin_neon_vabdlsv2si (__a, __b);
2634 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2635 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
2637 return (uint16x8_t)__builtin_neon_vabdluv8qi ((int8x8_t) __a, (int8x8_t) __b);
2640 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2641 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
2643 return (uint32x4_t)__builtin_neon_vabdluv4hi ((int16x4_t) __a, (int16x4_t) __b);
2646 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
2647 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
2649 return (uint64x2_t)__builtin_neon_vabdluv2si ((int32x2_t) __a, (int32x2_t) __b);
2652 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2653 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
2655 return (int8x8_t)__builtin_neon_vabasv8qi (__a, __b, __c);
2658 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2659 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
2661 return (int16x4_t)__builtin_neon_vabasv4hi (__a, __b, __c);
2664 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2665 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
2667 return (int32x2_t)__builtin_neon_vabasv2si (__a, __b, __c);
2670 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2671 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
2673 return (uint8x8_t)__builtin_neon_vabauv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
2676 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2677 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
2679 return (uint16x4_t)__builtin_neon_vabauv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
2682 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2683 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
2685 return (uint32x2_t)__builtin_neon_vabauv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
2688 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2689 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
2691 return (int8x16_t)__builtin_neon_vabasv16qi (__a, __b, __c);
2694 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2695 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
2697 return (int16x8_t)__builtin_neon_vabasv8hi (__a, __b, __c);
2700 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2701 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
2703 return (int32x4_t)__builtin_neon_vabasv4si (__a, __b, __c);
2706 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2707 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
2709 return (uint8x16_t)__builtin_neon_vabauv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
2712 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2713 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
2715 return (uint16x8_t)__builtin_neon_vabauv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
2718 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2719 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
2721 return (uint32x4_t)__builtin_neon_vabauv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
2724 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2725 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
2727 return (int16x8_t)__builtin_neon_vabalsv8qi (__a, __b, __c);
2730 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2731 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
2733 return (int32x4_t)__builtin_neon_vabalsv4hi (__a, __b, __c);
2736 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
2737 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
2739 return (int64x2_t)__builtin_neon_vabalsv2si (__a, __b, __c);
2742 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2743 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
2745 return (uint16x8_t)__builtin_neon_vabaluv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
2748 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2749 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
2751 return (uint32x4_t)__builtin_neon_vabaluv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
2754 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
2755 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
2757 return (uint64x2_t)__builtin_neon_vabaluv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
2760 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2761 vmax_s8 (int8x8_t __a, int8x8_t __b)
2763 return (int8x8_t)__builtin_neon_vmaxsv8qi (__a, __b);
2766 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2767 vmax_s16 (int16x4_t __a, int16x4_t __b)
2769 return (int16x4_t)__builtin_neon_vmaxsv4hi (__a, __b);
2772 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2773 vmax_s32 (int32x2_t __a, int32x2_t __b)
2775 return (int32x2_t)__builtin_neon_vmaxsv2si (__a, __b);
2778 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2779 vmax_f32 (float32x2_t __a, float32x2_t __b)
2781 return (float32x2_t)__builtin_neon_vmaxfv2sf (__a, __b);
2784 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2785 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
2787 return (uint8x8_t)__builtin_neon_vmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2790 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2791 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
2793 return (uint16x4_t)__builtin_neon_vmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2796 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2797 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
2799 return (uint32x2_t)__builtin_neon_vmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
2802 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2803 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
2805 return (int8x16_t)__builtin_neon_vmaxsv16qi (__a, __b);
2808 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2809 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
2811 return (int16x8_t)__builtin_neon_vmaxsv8hi (__a, __b);
2814 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2815 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
2817 return (int32x4_t)__builtin_neon_vmaxsv4si (__a, __b);
2820 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2821 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
2823 return (float32x4_t)__builtin_neon_vmaxfv4sf (__a, __b);
2826 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2827 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
2829 return (uint8x16_t)__builtin_neon_vmaxuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2832 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2833 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
2835 return (uint16x8_t)__builtin_neon_vmaxuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2838 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2839 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
2841 return (uint32x4_t)__builtin_neon_vmaxuv4si ((int32x4_t) __a, (int32x4_t) __b);
2844 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2845 vmin_s8 (int8x8_t __a, int8x8_t __b)
2847 return (int8x8_t)__builtin_neon_vminsv8qi (__a, __b);
2850 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2851 vmin_s16 (int16x4_t __a, int16x4_t __b)
2853 return (int16x4_t)__builtin_neon_vminsv4hi (__a, __b);
2856 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2857 vmin_s32 (int32x2_t __a, int32x2_t __b)
2859 return (int32x2_t)__builtin_neon_vminsv2si (__a, __b);
2862 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2863 vmin_f32 (float32x2_t __a, float32x2_t __b)
2865 return (float32x2_t)__builtin_neon_vminfv2sf (__a, __b);
2868 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2869 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
2871 return (uint8x8_t)__builtin_neon_vminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
2874 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2875 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
2877 return (uint16x4_t)__builtin_neon_vminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
2880 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2881 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
2883 return (uint32x2_t)__builtin_neon_vminuv2si ((int32x2_t) __a, (int32x2_t) __b);
2886 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
2887 vminq_s8 (int8x16_t __a, int8x16_t __b)
2889 return (int8x16_t)__builtin_neon_vminsv16qi (__a, __b);
2892 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
2893 vminq_s16 (int16x8_t __a, int16x8_t __b)
2895 return (int16x8_t)__builtin_neon_vminsv8hi (__a, __b);
2898 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
2899 vminq_s32 (int32x4_t __a, int32x4_t __b)
2901 return (int32x4_t)__builtin_neon_vminsv4si (__a, __b);
2904 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
2905 vminq_f32 (float32x4_t __a, float32x4_t __b)
2907 return (float32x4_t)__builtin_neon_vminfv4sf (__a, __b);
2910 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
2911 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
2913 return (uint8x16_t)__builtin_neon_vminuv16qi ((int8x16_t) __a, (int8x16_t) __b);
2916 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
2917 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
2919 return (uint16x8_t)__builtin_neon_vminuv8hi ((int16x8_t) __a, (int16x8_t) __b);
2922 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
2923 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
2925 return (uint32x4_t)__builtin_neon_vminuv4si ((int32x4_t) __a, (int32x4_t) __b);
2928 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
2929 vpadd_s8 (int8x8_t __a, int8x8_t __b)
2931 return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b);
2934 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2935 vpadd_s16 (int16x4_t __a, int16x4_t __b)
2937 return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b);
2940 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2941 vpadd_s32 (int32x2_t __a, int32x2_t __b)
2943 return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b);
2946 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
2947 vpadd_f32 (float32x2_t __a, float32x2_t __b)
2949 return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b);
2952 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
2953 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
2955 return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b);
2958 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2959 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
2961 return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b);
2964 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2965 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
2967 return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b);
2970 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
2971 vpaddl_s8 (int8x8_t __a)
2973 return (int16x4_t)__builtin_neon_vpaddlsv8qi (__a);
2976 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
2977 vpaddl_s16 (int16x4_t __a)
2979 return (int32x2_t)__builtin_neon_vpaddlsv4hi (__a);
2982 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
2983 vpaddl_s32 (int32x2_t __a)
2985 return (int64x1_t)__builtin_neon_vpaddlsv2si (__a);
2988 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
2989 vpaddl_u8 (uint8x8_t __a)
2991 return (uint16x4_t)__builtin_neon_vpaddluv8qi ((int8x8_t) __a);
2994 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
2995 vpaddl_u16 (uint16x4_t __a)
2997 return (uint32x2_t)__builtin_neon_vpaddluv4hi ((int16x4_t) __a);
3000 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3001 vpaddl_u32 (uint32x2_t __a)
3003 return (uint64x1_t)__builtin_neon_vpaddluv2si ((int32x2_t) __a);
3006 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3007 vpaddlq_s8 (int8x16_t __a)
3009 return (int16x8_t)__builtin_neon_vpaddlsv16qi (__a);
3012 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3013 vpaddlq_s16 (int16x8_t __a)
3015 return (int32x4_t)__builtin_neon_vpaddlsv8hi (__a);
3018 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3019 vpaddlq_s32 (int32x4_t __a)
3021 return (int64x2_t)__builtin_neon_vpaddlsv4si (__a);
3024 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3025 vpaddlq_u8 (uint8x16_t __a)
3027 return (uint16x8_t)__builtin_neon_vpaddluv16qi ((int8x16_t) __a);
3030 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3031 vpaddlq_u16 (uint16x8_t __a)
3033 return (uint32x4_t)__builtin_neon_vpaddluv8hi ((int16x8_t) __a);
3036 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3037 vpaddlq_u32 (uint32x4_t __a)
3039 return (uint64x2_t)__builtin_neon_vpaddluv4si ((int32x4_t) __a);
3042 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3043 vpadal_s8 (int16x4_t __a, int8x8_t __b)
3045 return (int16x4_t)__builtin_neon_vpadalsv8qi (__a, __b);
3048 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3049 vpadal_s16 (int32x2_t __a, int16x4_t __b)
3051 return (int32x2_t)__builtin_neon_vpadalsv4hi (__a, __b);
3054 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3055 vpadal_s32 (int64x1_t __a, int32x2_t __b)
3057 return (int64x1_t)__builtin_neon_vpadalsv2si (__a, __b);
3060 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3061 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
3063 return (uint16x4_t)__builtin_neon_vpadaluv8qi ((int16x4_t) __a, (int8x8_t) __b);
3066 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3067 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
3069 return (uint32x2_t)__builtin_neon_vpadaluv4hi ((int32x2_t) __a, (int16x4_t) __b);
3072 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3073 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
3075 return (uint64x1_t)__builtin_neon_vpadaluv2si ((int64x1_t) __a, (int32x2_t) __b);
3078 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3079 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
3081 return (int16x8_t)__builtin_neon_vpadalsv16qi (__a, __b);
3084 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3085 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
3087 return (int32x4_t)__builtin_neon_vpadalsv8hi (__a, __b);
3090 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3091 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
3093 return (int64x2_t)__builtin_neon_vpadalsv4si (__a, __b);
3096 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3097 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
3099 return (uint16x8_t)__builtin_neon_vpadaluv16qi ((int16x8_t) __a, (int8x16_t) __b);
3102 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3103 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
3105 return (uint32x4_t)__builtin_neon_vpadaluv8hi ((int32x4_t) __a, (int16x8_t) __b);
3108 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3109 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
3111 return (uint64x2_t)__builtin_neon_vpadaluv4si ((int64x2_t) __a, (int32x4_t) __b);
3114 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3115 vpmax_s8 (int8x8_t __a, int8x8_t __b)
3117 return (int8x8_t)__builtin_neon_vpmaxsv8qi (__a, __b);
3120 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3121 vpmax_s16 (int16x4_t __a, int16x4_t __b)
3123 return (int16x4_t)__builtin_neon_vpmaxsv4hi (__a, __b);
3126 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3127 vpmax_s32 (int32x2_t __a, int32x2_t __b)
3129 return (int32x2_t)__builtin_neon_vpmaxsv2si (__a, __b);
3132 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3133 vpmax_f32 (float32x2_t __a, float32x2_t __b)
3135 return (float32x2_t)__builtin_neon_vpmaxfv2sf (__a, __b);
3138 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3139 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
3141 return (uint8x8_t)__builtin_neon_vpmaxuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3144 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3145 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
3147 return (uint16x4_t)__builtin_neon_vpmaxuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3150 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3151 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
3153 return (uint32x2_t)__builtin_neon_vpmaxuv2si ((int32x2_t) __a, (int32x2_t) __b);
3156 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3157 vpmin_s8 (int8x8_t __a, int8x8_t __b)
3159 return (int8x8_t)__builtin_neon_vpminsv8qi (__a, __b);
3162 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3163 vpmin_s16 (int16x4_t __a, int16x4_t __b)
3165 return (int16x4_t)__builtin_neon_vpminsv4hi (__a, __b);
3168 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3169 vpmin_s32 (int32x2_t __a, int32x2_t __b)
3171 return (int32x2_t)__builtin_neon_vpminsv2si (__a, __b);
3174 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3175 vpmin_f32 (float32x2_t __a, float32x2_t __b)
3177 return (float32x2_t)__builtin_neon_vpminfv2sf (__a, __b);
3180 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3181 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
3183 return (uint8x8_t)__builtin_neon_vpminuv8qi ((int8x8_t) __a, (int8x8_t) __b);
3186 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3187 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
3189 return (uint16x4_t)__builtin_neon_vpminuv4hi ((int16x4_t) __a, (int16x4_t) __b);
3192 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3193 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
3195 return (uint32x2_t)__builtin_neon_vpminuv2si ((int32x2_t) __a, (int32x2_t) __b);
3198 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3199 vrecps_f32 (float32x2_t __a, float32x2_t __b)
3201 return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b);
3204 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
3205 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
3207 return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b);
3210 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
3211 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
3213 return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b);
3216 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
3217 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
3219 return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b);
3222 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3223 vshl_s8 (int8x8_t __a, int8x8_t __b)
3225 return (int8x8_t)__builtin_neon_vshlsv8qi (__a, __b);
3228 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3229 vshl_s16 (int16x4_t __a, int16x4_t __b)
3231 return (int16x4_t)__builtin_neon_vshlsv4hi (__a, __b);
3234 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3235 vshl_s32 (int32x2_t __a, int32x2_t __b)
3237 return (int32x2_t)__builtin_neon_vshlsv2si (__a, __b);
3240 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3241 vshl_s64 (int64x1_t __a, int64x1_t __b)
3243 return (int64x1_t)__builtin_neon_vshlsdi (__a, __b);
3246 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3247 vshl_u8 (uint8x8_t __a, int8x8_t __b)
3249 return (uint8x8_t)__builtin_neon_vshluv8qi ((int8x8_t) __a, __b);
3252 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3253 vshl_u16 (uint16x4_t __a, int16x4_t __b)
3255 return (uint16x4_t)__builtin_neon_vshluv4hi ((int16x4_t) __a, __b);
3258 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3259 vshl_u32 (uint32x2_t __a, int32x2_t __b)
3261 return (uint32x2_t)__builtin_neon_vshluv2si ((int32x2_t) __a, __b);
3264 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3265 vshl_u64 (uint64x1_t __a, int64x1_t __b)
3267 return (uint64x1_t)__builtin_neon_vshludi ((int64x1_t) __a, __b);
3270 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3271 vshlq_s8 (int8x16_t __a, int8x16_t __b)
3273 return (int8x16_t)__builtin_neon_vshlsv16qi (__a, __b);
3276 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3277 vshlq_s16 (int16x8_t __a, int16x8_t __b)
3279 return (int16x8_t)__builtin_neon_vshlsv8hi (__a, __b);
3282 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3283 vshlq_s32 (int32x4_t __a, int32x4_t __b)
3285 return (int32x4_t)__builtin_neon_vshlsv4si (__a, __b);
3288 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3289 vshlq_s64 (int64x2_t __a, int64x2_t __b)
3291 return (int64x2_t)__builtin_neon_vshlsv2di (__a, __b);
3294 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3295 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
3297 return (uint8x16_t)__builtin_neon_vshluv16qi ((int8x16_t) __a, __b);
3300 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3301 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
3303 return (uint16x8_t)__builtin_neon_vshluv8hi ((int16x8_t) __a, __b);
3306 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3307 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
3309 return (uint32x4_t)__builtin_neon_vshluv4si ((int32x4_t) __a, __b);
3312 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3313 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
3315 return (uint64x2_t)__builtin_neon_vshluv2di ((int64x2_t) __a, __b);
3318 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3319 vrshl_s8 (int8x8_t __a, int8x8_t __b)
3321 return (int8x8_t)__builtin_neon_vrshlsv8qi (__a, __b);
3324 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3325 vrshl_s16 (int16x4_t __a, int16x4_t __b)
3327 return (int16x4_t)__builtin_neon_vrshlsv4hi (__a, __b);
3330 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3331 vrshl_s32 (int32x2_t __a, int32x2_t __b)
3333 return (int32x2_t)__builtin_neon_vrshlsv2si (__a, __b);
3336 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3337 vrshl_s64 (int64x1_t __a, int64x1_t __b)
3339 return (int64x1_t)__builtin_neon_vrshlsdi (__a, __b);
3342 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3343 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
3345 return (uint8x8_t)__builtin_neon_vrshluv8qi ((int8x8_t) __a, __b);
3348 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3349 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
3351 return (uint16x4_t)__builtin_neon_vrshluv4hi ((int16x4_t) __a, __b);
3354 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3355 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
3357 return (uint32x2_t)__builtin_neon_vrshluv2si ((int32x2_t) __a, __b);
3360 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3361 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
3363 return (uint64x1_t)__builtin_neon_vrshludi ((int64x1_t) __a, __b);
3366 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3367 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
3369 return (int8x16_t)__builtin_neon_vrshlsv16qi (__a, __b);
3372 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3373 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
3375 return (int16x8_t)__builtin_neon_vrshlsv8hi (__a, __b);
3378 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3379 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
3381 return (int32x4_t)__builtin_neon_vrshlsv4si (__a, __b);
3384 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3385 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
3387 return (int64x2_t)__builtin_neon_vrshlsv2di (__a, __b);
3390 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3391 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
3393 return (uint8x16_t)__builtin_neon_vrshluv16qi ((int8x16_t) __a, __b);
3396 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3397 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
3399 return (uint16x8_t)__builtin_neon_vrshluv8hi ((int16x8_t) __a, __b);
3402 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3403 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
3405 return (uint32x4_t)__builtin_neon_vrshluv4si ((int32x4_t) __a, __b);
3408 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3409 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
3411 return (uint64x2_t)__builtin_neon_vrshluv2di ((int64x2_t) __a, __b);
3414 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3415 vqshl_s8 (int8x8_t __a, int8x8_t __b)
3417 return (int8x8_t)__builtin_neon_vqshlsv8qi (__a, __b);
3420 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3421 vqshl_s16 (int16x4_t __a, int16x4_t __b)
3423 return (int16x4_t)__builtin_neon_vqshlsv4hi (__a, __b);
3426 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3427 vqshl_s32 (int32x2_t __a, int32x2_t __b)
3429 return (int32x2_t)__builtin_neon_vqshlsv2si (__a, __b);
3432 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3433 vqshl_s64 (int64x1_t __a, int64x1_t __b)
3435 return (int64x1_t)__builtin_neon_vqshlsdi (__a, __b);
3438 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3439 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
3441 return (uint8x8_t)__builtin_neon_vqshluv8qi ((int8x8_t) __a, __b);
3444 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3445 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
3447 return (uint16x4_t)__builtin_neon_vqshluv4hi ((int16x4_t) __a, __b);
3450 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3451 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
3453 return (uint32x2_t)__builtin_neon_vqshluv2si ((int32x2_t) __a, __b);
3456 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3457 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
3459 return (uint64x1_t)__builtin_neon_vqshludi ((int64x1_t) __a, __b);
3462 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3463 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
3465 return (int8x16_t)__builtin_neon_vqshlsv16qi (__a, __b);
3468 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3469 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
3471 return (int16x8_t)__builtin_neon_vqshlsv8hi (__a, __b);
3474 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3475 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
3477 return (int32x4_t)__builtin_neon_vqshlsv4si (__a, __b);
3480 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3481 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
3483 return (int64x2_t)__builtin_neon_vqshlsv2di (__a, __b);
3486 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3487 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
3489 return (uint8x16_t)__builtin_neon_vqshluv16qi ((int8x16_t) __a, __b);
3492 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3493 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
3495 return (uint16x8_t)__builtin_neon_vqshluv8hi ((int16x8_t) __a, __b);
3498 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3499 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
3501 return (uint32x4_t)__builtin_neon_vqshluv4si ((int32x4_t) __a, __b);
3504 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3505 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
3507 return (uint64x2_t)__builtin_neon_vqshluv2di ((int64x2_t) __a, __b);
3510 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3511 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
3513 return (int8x8_t)__builtin_neon_vqrshlsv8qi (__a, __b);
3516 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3517 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
3519 return (int16x4_t)__builtin_neon_vqrshlsv4hi (__a, __b);
3522 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3523 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
3525 return (int32x2_t)__builtin_neon_vqrshlsv2si (__a, __b);
3528 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3529 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
3531 return (int64x1_t)__builtin_neon_vqrshlsdi (__a, __b);
3534 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3535 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
3537 return (uint8x8_t)__builtin_neon_vqrshluv8qi ((int8x8_t) __a, __b);
3540 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3541 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
3543 return (uint16x4_t)__builtin_neon_vqrshluv4hi ((int16x4_t) __a, __b);
3546 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3547 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
3549 return (uint32x2_t)__builtin_neon_vqrshluv2si ((int32x2_t) __a, __b);
3552 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3553 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
3555 return (uint64x1_t)__builtin_neon_vqrshludi ((int64x1_t) __a, __b);
3558 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3559 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
3561 return (int8x16_t)__builtin_neon_vqrshlsv16qi (__a, __b);
3564 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3565 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
3567 return (int16x8_t)__builtin_neon_vqrshlsv8hi (__a, __b);
3570 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3571 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
3573 return (int32x4_t)__builtin_neon_vqrshlsv4si (__a, __b);
3576 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3577 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
3579 return (int64x2_t)__builtin_neon_vqrshlsv2di (__a, __b);
3582 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3583 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
3585 return (uint8x16_t)__builtin_neon_vqrshluv16qi ((int8x16_t) __a, __b);
3588 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3589 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
3591 return (uint16x8_t)__builtin_neon_vqrshluv8hi ((int16x8_t) __a, __b);
3594 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3595 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
3597 return (uint32x4_t)__builtin_neon_vqrshluv4si ((int32x4_t) __a, __b);
3600 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3601 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
3603 return (uint64x2_t)__builtin_neon_vqrshluv2di ((int64x2_t) __a, __b);
3606 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3607 vshr_n_s8 (int8x8_t __a, const int __b)
3609 return (int8x8_t)__builtin_neon_vshrs_nv8qi (__a, __b);
3612 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3613 vshr_n_s16 (int16x4_t __a, const int __b)
3615 return (int16x4_t)__builtin_neon_vshrs_nv4hi (__a, __b);
3618 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3619 vshr_n_s32 (int32x2_t __a, const int __b)
3621 return (int32x2_t)__builtin_neon_vshrs_nv2si (__a, __b);
3624 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3625 vshr_n_s64 (int64x1_t __a, const int __b)
3627 return (int64x1_t)__builtin_neon_vshrs_ndi (__a, __b);
3630 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3631 vshr_n_u8 (uint8x8_t __a, const int __b)
3633 return (uint8x8_t)__builtin_neon_vshru_nv8qi ((int8x8_t) __a, __b);
3636 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3637 vshr_n_u16 (uint16x4_t __a, const int __b)
3639 return (uint16x4_t)__builtin_neon_vshru_nv4hi ((int16x4_t) __a, __b);
3642 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3643 vshr_n_u32 (uint32x2_t __a, const int __b)
3645 return (uint32x2_t)__builtin_neon_vshru_nv2si ((int32x2_t) __a, __b);
3648 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3649 vshr_n_u64 (uint64x1_t __a, const int __b)
3651 return (uint64x1_t)__builtin_neon_vshru_ndi ((int64x1_t) __a, __b);
3654 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3655 vshrq_n_s8 (int8x16_t __a, const int __b)
3657 return (int8x16_t)__builtin_neon_vshrs_nv16qi (__a, __b);
3660 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3661 vshrq_n_s16 (int16x8_t __a, const int __b)
3663 return (int16x8_t)__builtin_neon_vshrs_nv8hi (__a, __b);
3666 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3667 vshrq_n_s32 (int32x4_t __a, const int __b)
3669 return (int32x4_t)__builtin_neon_vshrs_nv4si (__a, __b);
3672 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3673 vshrq_n_s64 (int64x2_t __a, const int __b)
3675 return (int64x2_t)__builtin_neon_vshrs_nv2di (__a, __b);
3678 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3679 vshrq_n_u8 (uint8x16_t __a, const int __b)
3681 return (uint8x16_t)__builtin_neon_vshru_nv16qi ((int8x16_t) __a, __b);
3684 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3685 vshrq_n_u16 (uint16x8_t __a, const int __b)
3687 return (uint16x8_t)__builtin_neon_vshru_nv8hi ((int16x8_t) __a, __b);
3690 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3691 vshrq_n_u32 (uint32x4_t __a, const int __b)
3693 return (uint32x4_t)__builtin_neon_vshru_nv4si ((int32x4_t) __a, __b);
3696 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3697 vshrq_n_u64 (uint64x2_t __a, const int __b)
3699 return (uint64x2_t)__builtin_neon_vshru_nv2di ((int64x2_t) __a, __b);
3702 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3703 vrshr_n_s8 (int8x8_t __a, const int __b)
3705 return (int8x8_t)__builtin_neon_vrshrs_nv8qi (__a, __b);
3708 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3709 vrshr_n_s16 (int16x4_t __a, const int __b)
3711 return (int16x4_t)__builtin_neon_vrshrs_nv4hi (__a, __b);
3714 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3715 vrshr_n_s32 (int32x2_t __a, const int __b)
3717 return (int32x2_t)__builtin_neon_vrshrs_nv2si (__a, __b);
3720 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3721 vrshr_n_s64 (int64x1_t __a, const int __b)
3723 return (int64x1_t)__builtin_neon_vrshrs_ndi (__a, __b);
3726 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3727 vrshr_n_u8 (uint8x8_t __a, const int __b)
3729 return (uint8x8_t)__builtin_neon_vrshru_nv8qi ((int8x8_t) __a, __b);
3732 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3733 vrshr_n_u16 (uint16x4_t __a, const int __b)
3735 return (uint16x4_t)__builtin_neon_vrshru_nv4hi ((int16x4_t) __a, __b);
3738 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3739 vrshr_n_u32 (uint32x2_t __a, const int __b)
3741 return (uint32x2_t)__builtin_neon_vrshru_nv2si ((int32x2_t) __a, __b);
3744 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
3745 vrshr_n_u64 (uint64x1_t __a, const int __b)
3747 return (uint64x1_t)__builtin_neon_vrshru_ndi ((int64x1_t) __a, __b);
3750 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
3751 vrshrq_n_s8 (int8x16_t __a, const int __b)
3753 return (int8x16_t)__builtin_neon_vrshrs_nv16qi (__a, __b);
3756 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
3757 vrshrq_n_s16 (int16x8_t __a, const int __b)
3759 return (int16x8_t)__builtin_neon_vrshrs_nv8hi (__a, __b);
3762 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
3763 vrshrq_n_s32 (int32x4_t __a, const int __b)
3765 return (int32x4_t)__builtin_neon_vrshrs_nv4si (__a, __b);
3768 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
3769 vrshrq_n_s64 (int64x2_t __a, const int __b)
3771 return (int64x2_t)__builtin_neon_vrshrs_nv2di (__a, __b);
3774 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
3775 vrshrq_n_u8 (uint8x16_t __a, const int __b)
3777 return (uint8x16_t)__builtin_neon_vrshru_nv16qi ((int8x16_t) __a, __b);
3780 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
3781 vrshrq_n_u16 (uint16x8_t __a, const int __b)
3783 return (uint16x8_t)__builtin_neon_vrshru_nv8hi ((int16x8_t) __a, __b);
3786 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
3787 vrshrq_n_u32 (uint32x4_t __a, const int __b)
3789 return (uint32x4_t)__builtin_neon_vrshru_nv4si ((int32x4_t) __a, __b);
3792 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
3793 vrshrq_n_u64 (uint64x2_t __a, const int __b)
3795 return (uint64x2_t)__builtin_neon_vrshru_nv2di ((int64x2_t) __a, __b);
3798 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3799 vshrn_n_s16 (int16x8_t __a, const int __b)
3801 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b);
3804 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3805 vshrn_n_s32 (int32x4_t __a, const int __b)
3807 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b);
3810 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3811 vshrn_n_s64 (int64x2_t __a, const int __b)
3813 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b);
3816 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3817 vshrn_n_u16 (uint16x8_t __a, const int __b)
3819 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b);
3822 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3823 vshrn_n_u32 (uint32x4_t __a, const int __b)
3825 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b);
3828 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3829 vshrn_n_u64 (uint64x2_t __a, const int __b)
3831 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b);
3834 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3835 vrshrn_n_s16 (int16x8_t __a, const int __b)
3837 return (int8x8_t)__builtin_neon_vrshrn_nv8hi (__a, __b);
3840 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3841 vrshrn_n_s32 (int32x4_t __a, const int __b)
3843 return (int16x4_t)__builtin_neon_vrshrn_nv4si (__a, __b);
3846 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3847 vrshrn_n_s64 (int64x2_t __a, const int __b)
3849 return (int32x2_t)__builtin_neon_vrshrn_nv2di (__a, __b);
3852 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3853 vrshrn_n_u16 (uint16x8_t __a, const int __b)
3855 return (uint8x8_t)__builtin_neon_vrshrn_nv8hi ((int16x8_t) __a, __b);
3858 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3859 vrshrn_n_u32 (uint32x4_t __a, const int __b)
3861 return (uint16x4_t)__builtin_neon_vrshrn_nv4si ((int32x4_t) __a, __b);
3864 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3865 vrshrn_n_u64 (uint64x2_t __a, const int __b)
3867 return (uint32x2_t)__builtin_neon_vrshrn_nv2di ((int64x2_t) __a, __b);
3870 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3871 vqshrn_n_s16 (int16x8_t __a, const int __b)
3873 return (int8x8_t)__builtin_neon_vqshrns_nv8hi (__a, __b);
3876 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3877 vqshrn_n_s32 (int32x4_t __a, const int __b)
3879 return (int16x4_t)__builtin_neon_vqshrns_nv4si (__a, __b);
3882 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3883 vqshrn_n_s64 (int64x2_t __a, const int __b)
3885 return (int32x2_t)__builtin_neon_vqshrns_nv2di (__a, __b);
3888 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3889 vqshrn_n_u16 (uint16x8_t __a, const int __b)
3891 return (uint8x8_t)__builtin_neon_vqshrnu_nv8hi ((int16x8_t) __a, __b);
3894 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3895 vqshrn_n_u32 (uint32x4_t __a, const int __b)
3897 return (uint16x4_t)__builtin_neon_vqshrnu_nv4si ((int32x4_t) __a, __b);
3900 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3901 vqshrn_n_u64 (uint64x2_t __a, const int __b)
3903 return (uint32x2_t)__builtin_neon_vqshrnu_nv2di ((int64x2_t) __a, __b);
3906 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3907 vqrshrn_n_s16 (int16x8_t __a, const int __b)
3909 return (int8x8_t)__builtin_neon_vqrshrns_nv8hi (__a, __b);
3912 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3913 vqrshrn_n_s32 (int32x4_t __a, const int __b)
3915 return (int16x4_t)__builtin_neon_vqrshrns_nv4si (__a, __b);
3918 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3919 vqrshrn_n_s64 (int64x2_t __a, const int __b)
3921 return (int32x2_t)__builtin_neon_vqrshrns_nv2di (__a, __b);
3924 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3925 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
3927 return (uint8x8_t)__builtin_neon_vqrshrnu_nv8hi ((int16x8_t) __a, __b);
3930 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3931 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
3933 return (uint16x4_t)__builtin_neon_vqrshrnu_nv4si ((int32x4_t) __a, __b);
3936 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3937 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
3939 return (uint32x2_t)__builtin_neon_vqrshrnu_nv2di ((int64x2_t) __a, __b);
3942 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3943 vqshrun_n_s16 (int16x8_t __a, const int __b)
3945 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b);
3948 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3949 vqshrun_n_s32 (int32x4_t __a, const int __b)
3951 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b);
3954 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3955 vqshrun_n_s64 (int64x2_t __a, const int __b)
3957 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b);
3960 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
3961 vqrshrun_n_s16 (int16x8_t __a, const int __b)
3963 return (uint8x8_t)__builtin_neon_vqrshrun_nv8hi (__a, __b);
3966 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
3967 vqrshrun_n_s32 (int32x4_t __a, const int __b)
3969 return (uint16x4_t)__builtin_neon_vqrshrun_nv4si (__a, __b);
3972 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
3973 vqrshrun_n_s64 (int64x2_t __a, const int __b)
3975 return (uint32x2_t)__builtin_neon_vqrshrun_nv2di (__a, __b);
3978 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
3979 vshl_n_s8 (int8x8_t __a, const int __b)
3981 return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b);
3984 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
3985 vshl_n_s16 (int16x4_t __a, const int __b)
3987 return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b);
3990 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
3991 vshl_n_s32 (int32x2_t __a, const int __b)
3993 return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b);
3996 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
3997 vshl_n_s64 (int64x1_t __a, const int __b)
3999 return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b);
4002 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4003 vshl_n_u8 (uint8x8_t __a, const int __b)
4005 return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b);
4008 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4009 vshl_n_u16 (uint16x4_t __a, const int __b)
4011 return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b);
4014 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4015 vshl_n_u32 (uint32x2_t __a, const int __b)
4017 return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b);
4020 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4021 vshl_n_u64 (uint64x1_t __a, const int __b)
4023 return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b);
4026 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4027 vshlq_n_s8 (int8x16_t __a, const int __b)
4029 return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b);
4032 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4033 vshlq_n_s16 (int16x8_t __a, const int __b)
4035 return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b);
4038 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4039 vshlq_n_s32 (int32x4_t __a, const int __b)
4041 return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b);
4044 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4045 vshlq_n_s64 (int64x2_t __a, const int __b)
4047 return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b);
4050 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4051 vshlq_n_u8 (uint8x16_t __a, const int __b)
4053 return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b);
4056 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4057 vshlq_n_u16 (uint16x8_t __a, const int __b)
4059 return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b);
4062 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4063 vshlq_n_u32 (uint32x4_t __a, const int __b)
4065 return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b);
4068 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4069 vshlq_n_u64 (uint64x2_t __a, const int __b)
4071 return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b);
4074 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4075 vqshl_n_s8 (int8x8_t __a, const int __b)
4077 return (int8x8_t)__builtin_neon_vqshl_s_nv8qi (__a, __b);
4080 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4081 vqshl_n_s16 (int16x4_t __a, const int __b)
4083 return (int16x4_t)__builtin_neon_vqshl_s_nv4hi (__a, __b);
4086 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4087 vqshl_n_s32 (int32x2_t __a, const int __b)
4089 return (int32x2_t)__builtin_neon_vqshl_s_nv2si (__a, __b);
4092 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4093 vqshl_n_s64 (int64x1_t __a, const int __b)
4095 return (int64x1_t)__builtin_neon_vqshl_s_ndi (__a, __b);
4098 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4099 vqshl_n_u8 (uint8x8_t __a, const int __b)
4101 return (uint8x8_t)__builtin_neon_vqshl_u_nv8qi ((int8x8_t) __a, __b);
4104 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4105 vqshl_n_u16 (uint16x4_t __a, const int __b)
4107 return (uint16x4_t)__builtin_neon_vqshl_u_nv4hi ((int16x4_t) __a, __b);
4110 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4111 vqshl_n_u32 (uint32x2_t __a, const int __b)
4113 return (uint32x2_t)__builtin_neon_vqshl_u_nv2si ((int32x2_t) __a, __b);
4116 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4117 vqshl_n_u64 (uint64x1_t __a, const int __b)
4119 return (uint64x1_t)__builtin_neon_vqshl_u_ndi ((int64x1_t) __a, __b);
4122 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4123 vqshlq_n_s8 (int8x16_t __a, const int __b)
4125 return (int8x16_t)__builtin_neon_vqshl_s_nv16qi (__a, __b);
4128 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4129 vqshlq_n_s16 (int16x8_t __a, const int __b)
4131 return (int16x8_t)__builtin_neon_vqshl_s_nv8hi (__a, __b);
4134 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4135 vqshlq_n_s32 (int32x4_t __a, const int __b)
4137 return (int32x4_t)__builtin_neon_vqshl_s_nv4si (__a, __b);
4140 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4141 vqshlq_n_s64 (int64x2_t __a, const int __b)
4143 return (int64x2_t)__builtin_neon_vqshl_s_nv2di (__a, __b);
4146 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4147 vqshlq_n_u8 (uint8x16_t __a, const int __b)
4149 return (uint8x16_t)__builtin_neon_vqshl_u_nv16qi ((int8x16_t) __a, __b);
4152 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4153 vqshlq_n_u16 (uint16x8_t __a, const int __b)
4155 return (uint16x8_t)__builtin_neon_vqshl_u_nv8hi ((int16x8_t) __a, __b);
4158 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4159 vqshlq_n_u32 (uint32x4_t __a, const int __b)
4161 return (uint32x4_t)__builtin_neon_vqshl_u_nv4si ((int32x4_t) __a, __b);
4164 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4165 vqshlq_n_u64 (uint64x2_t __a, const int __b)
4167 return (uint64x2_t)__builtin_neon_vqshl_u_nv2di ((int64x2_t) __a, __b);
4170 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4171 vqshlu_n_s8 (int8x8_t __a, const int __b)
4173 return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b);
4176 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4177 vqshlu_n_s16 (int16x4_t __a, const int __b)
4179 return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b);
4182 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4183 vqshlu_n_s32 (int32x2_t __a, const int __b)
4185 return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b);
4188 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4189 vqshlu_n_s64 (int64x1_t __a, const int __b)
4191 return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b);
4194 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4195 vqshluq_n_s8 (int8x16_t __a, const int __b)
4197 return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b);
4200 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4201 vqshluq_n_s16 (int16x8_t __a, const int __b)
4203 return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b);
4206 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4207 vqshluq_n_s32 (int32x4_t __a, const int __b)
4209 return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b);
4212 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4213 vqshluq_n_s64 (int64x2_t __a, const int __b)
4215 return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b);
4218 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4219 vshll_n_s8 (int8x8_t __a, const int __b)
4221 return (int16x8_t)__builtin_neon_vshlls_nv8qi (__a, __b);
4224 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4225 vshll_n_s16 (int16x4_t __a, const int __b)
4227 return (int32x4_t)__builtin_neon_vshlls_nv4hi (__a, __b);
4230 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4231 vshll_n_s32 (int32x2_t __a, const int __b)
4233 return (int64x2_t)__builtin_neon_vshlls_nv2si (__a, __b);
4236 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4237 vshll_n_u8 (uint8x8_t __a, const int __b)
4239 return (uint16x8_t)__builtin_neon_vshllu_nv8qi ((int8x8_t) __a, __b);
4242 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4243 vshll_n_u16 (uint16x4_t __a, const int __b)
4245 return (uint32x4_t)__builtin_neon_vshllu_nv4hi ((int16x4_t) __a, __b);
4248 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4249 vshll_n_u32 (uint32x2_t __a, const int __b)
4251 return (uint64x2_t)__builtin_neon_vshllu_nv2si ((int32x2_t) __a, __b);
4254 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4255 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4257 return (int8x8_t)__builtin_neon_vsras_nv8qi (__a, __b, __c);
4260 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4261 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4263 return (int16x4_t)__builtin_neon_vsras_nv4hi (__a, __b, __c);
4266 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4267 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4269 return (int32x2_t)__builtin_neon_vsras_nv2si (__a, __b, __c);
4272 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4273 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4275 return (int64x1_t)__builtin_neon_vsras_ndi (__a, __b, __c);
4278 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4279 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4281 return (uint8x8_t)__builtin_neon_vsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4284 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4285 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4287 return (uint16x4_t)__builtin_neon_vsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4290 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4291 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4293 return (uint32x2_t)__builtin_neon_vsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4296 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4297 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4299 return (uint64x1_t)__builtin_neon_vsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4302 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4303 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4305 return (int8x16_t)__builtin_neon_vsras_nv16qi (__a, __b, __c);
4308 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4309 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4311 return (int16x8_t)__builtin_neon_vsras_nv8hi (__a, __b, __c);
4314 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4315 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4317 return (int32x4_t)__builtin_neon_vsras_nv4si (__a, __b, __c);
4320 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4321 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4323 return (int64x2_t)__builtin_neon_vsras_nv2di (__a, __b, __c);
4326 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4327 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4329 return (uint8x16_t)__builtin_neon_vsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4332 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4333 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4335 return (uint16x8_t)__builtin_neon_vsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4338 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4339 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4341 return (uint32x4_t)__builtin_neon_vsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4344 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4345 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4347 return (uint64x2_t)__builtin_neon_vsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4350 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4351 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4353 return (int8x8_t)__builtin_neon_vrsras_nv8qi (__a, __b, __c);
4356 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4357 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4359 return (int16x4_t)__builtin_neon_vrsras_nv4hi (__a, __b, __c);
4362 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4363 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4365 return (int32x2_t)__builtin_neon_vrsras_nv2si (__a, __b, __c);
4368 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4369 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4371 return (int64x1_t)__builtin_neon_vrsras_ndi (__a, __b, __c);
4374 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4375 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4377 return (uint8x8_t)__builtin_neon_vrsrau_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4380 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4381 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4383 return (uint16x4_t)__builtin_neon_vrsrau_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4386 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4387 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4389 return (uint32x2_t)__builtin_neon_vrsrau_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4392 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4393 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4395 return (uint64x1_t)__builtin_neon_vrsrau_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4398 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4399 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4401 return (int8x16_t)__builtin_neon_vrsras_nv16qi (__a, __b, __c);
4404 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4405 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4407 return (int16x8_t)__builtin_neon_vrsras_nv8hi (__a, __b, __c);
4410 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4411 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4413 return (int32x4_t)__builtin_neon_vrsras_nv4si (__a, __b, __c);
4416 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4417 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4419 return (int64x2_t)__builtin_neon_vrsras_nv2di (__a, __b, __c);
4422 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4423 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4425 return (uint8x16_t)__builtin_neon_vrsrau_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4428 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4429 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4431 return (uint16x8_t)__builtin_neon_vrsrau_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4434 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4435 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4437 return (uint32x4_t)__builtin_neon_vrsrau_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4440 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4441 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4443 return (uint64x2_t)__builtin_neon_vrsrau_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4446 #ifdef __ARM_FEATURE_CRYPTO
4447 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
4448 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
4450 return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
4453 #endif
4454 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4455 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4457 return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c);
4460 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4461 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4463 return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c);
4466 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4467 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4469 return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c);
4472 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4473 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4475 return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c);
4478 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4479 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4481 return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4484 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4485 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4487 return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4490 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4491 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4493 return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4496 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4497 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4499 return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4502 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4503 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
4505 return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4508 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
4509 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
4511 return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4514 #ifdef __ARM_FEATURE_CRYPTO
4515 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
4516 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
4518 return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4521 #endif
4522 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4523 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4525 return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c);
4528 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4529 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4531 return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c);
4534 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4535 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4537 return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c);
4540 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4541 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4543 return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c);
4546 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4547 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4549 return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4552 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4553 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4555 return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4558 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4559 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4561 return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4564 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4565 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4567 return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4570 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4571 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
4573 return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4576 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
4577 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
4579 return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4582 #ifdef __ARM_FEATURE_CRYPTO
4583 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
4584 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
4586 return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
4589 #endif
4590 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4591 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
4593 return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c);
4596 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4597 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
4599 return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c);
4602 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4603 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
4605 return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c);
4608 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
4609 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
4611 return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c);
4614 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4615 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
4617 return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4620 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4621 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
4623 return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4626 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4627 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
4629 return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
4632 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
4633 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
4635 return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c);
4638 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4639 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
4641 return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
4644 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
4645 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
4647 return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
4650 #ifdef __ARM_FEATURE_CRYPTO
4651 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
4652 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
4654 return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4657 #endif
4658 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4659 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
4661 return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c);
4664 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4665 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
4667 return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c);
4670 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4671 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
4673 return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c);
4676 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
4677 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
4679 return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c);
4682 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4683 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
4685 return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4688 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4689 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
4691 return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4694 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4695 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
4697 return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
4700 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
4701 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
4703 return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
4706 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4707 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
4709 return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
4712 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
4713 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
4715 return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
4718 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4719 vabs_s8 (int8x8_t __a)
4721 return (int8x8_t)__builtin_neon_vabsv8qi (__a);
4724 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4725 vabs_s16 (int16x4_t __a)
4727 return (int16x4_t)__builtin_neon_vabsv4hi (__a);
4730 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4731 vabs_s32 (int32x2_t __a)
4733 return (int32x2_t)__builtin_neon_vabsv2si (__a);
4736 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
4737 vabs_f32 (float32x2_t __a)
4739 return (float32x2_t)__builtin_neon_vabsv2sf (__a);
4742 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4743 vabsq_s8 (int8x16_t __a)
4745 return (int8x16_t)__builtin_neon_vabsv16qi (__a);
4748 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4749 vabsq_s16 (int16x8_t __a)
4751 return (int16x8_t)__builtin_neon_vabsv8hi (__a);
4754 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4755 vabsq_s32 (int32x4_t __a)
4757 return (int32x4_t)__builtin_neon_vabsv4si (__a);
4760 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
4761 vabsq_f32 (float32x4_t __a)
4763 return (float32x4_t)__builtin_neon_vabsv4sf (__a);
4766 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4767 vqabs_s8 (int8x8_t __a)
4769 return (int8x8_t)__builtin_neon_vqabsv8qi (__a);
4772 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4773 vqabs_s16 (int16x4_t __a)
4775 return (int16x4_t)__builtin_neon_vqabsv4hi (__a);
4778 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4779 vqabs_s32 (int32x2_t __a)
4781 return (int32x2_t)__builtin_neon_vqabsv2si (__a);
4784 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4785 vqabsq_s8 (int8x16_t __a)
4787 return (int8x16_t)__builtin_neon_vqabsv16qi (__a);
4790 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4791 vqabsq_s16 (int16x8_t __a)
4793 return (int16x8_t)__builtin_neon_vqabsv8hi (__a);
4796 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4797 vqabsq_s32 (int32x4_t __a)
4799 return (int32x4_t)__builtin_neon_vqabsv4si (__a);
4802 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4803 vneg_s8 (int8x8_t __a)
4805 return (int8x8_t)__builtin_neon_vnegv8qi (__a);
4808 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4809 vneg_s16 (int16x4_t __a)
4811 return (int16x4_t)__builtin_neon_vnegv4hi (__a);
4814 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4815 vneg_s32 (int32x2_t __a)
4817 return (int32x2_t)__builtin_neon_vnegv2si (__a);
4820 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
4821 vneg_f32 (float32x2_t __a)
4823 return (float32x2_t)__builtin_neon_vnegv2sf (__a);
4826 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4827 vnegq_s8 (int8x16_t __a)
4829 return (int8x16_t)__builtin_neon_vnegv16qi (__a);
4832 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4833 vnegq_s16 (int16x8_t __a)
4835 return (int16x8_t)__builtin_neon_vnegv8hi (__a);
4838 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4839 vnegq_s32 (int32x4_t __a)
4841 return (int32x4_t)__builtin_neon_vnegv4si (__a);
4844 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
4845 vnegq_f32 (float32x4_t __a)
4847 return (float32x4_t)__builtin_neon_vnegv4sf (__a);
4850 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4851 vqneg_s8 (int8x8_t __a)
4853 return (int8x8_t)__builtin_neon_vqnegv8qi (__a);
4856 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4857 vqneg_s16 (int16x4_t __a)
4859 return (int16x4_t)__builtin_neon_vqnegv4hi (__a);
4862 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4863 vqneg_s32 (int32x2_t __a)
4865 return (int32x2_t)__builtin_neon_vqnegv2si (__a);
4868 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4869 vqnegq_s8 (int8x16_t __a)
4871 return (int8x16_t)__builtin_neon_vqnegv16qi (__a);
4874 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4875 vqnegq_s16 (int16x8_t __a)
4877 return (int16x8_t)__builtin_neon_vqnegv8hi (__a);
4880 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4881 vqnegq_s32 (int32x4_t __a)
4883 return (int32x4_t)__builtin_neon_vqnegv4si (__a);
4886 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4887 vmvn_s8 (int8x8_t __a)
4889 return (int8x8_t)__builtin_neon_vmvnv8qi (__a);
4892 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4893 vmvn_s16 (int16x4_t __a)
4895 return (int16x4_t)__builtin_neon_vmvnv4hi (__a);
4898 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4899 vmvn_s32 (int32x2_t __a)
4901 return (int32x2_t)__builtin_neon_vmvnv2si (__a);
4904 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
4905 vmvn_u8 (uint8x8_t __a)
4907 return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
4910 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
4911 vmvn_u16 (uint16x4_t __a)
4913 return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a);
4916 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
4917 vmvn_u32 (uint32x2_t __a)
4919 return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a);
4922 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
4923 vmvn_p8 (poly8x8_t __a)
4925 return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a);
4928 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4929 vmvnq_s8 (int8x16_t __a)
4931 return (int8x16_t)__builtin_neon_vmvnv16qi (__a);
4934 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4935 vmvnq_s16 (int16x8_t __a)
4937 return (int16x8_t)__builtin_neon_vmvnv8hi (__a);
4940 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
4941 vmvnq_s32 (int32x4_t __a)
4943 return (int32x4_t)__builtin_neon_vmvnv4si (__a);
4946 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
4947 vmvnq_u8 (uint8x16_t __a)
4949 return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
4952 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
4953 vmvnq_u16 (uint16x8_t __a)
4955 return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a);
4958 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
4959 vmvnq_u32 (uint32x4_t __a)
4961 return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a);
4964 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
4965 vmvnq_p8 (poly8x16_t __a)
4967 return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a);
4970 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
4971 vcls_s8 (int8x8_t __a)
4973 return (int8x8_t)__builtin_neon_vclsv8qi (__a);
4976 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
4977 vcls_s16 (int16x4_t __a)
4979 return (int16x4_t)__builtin_neon_vclsv4hi (__a);
4982 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
4983 vcls_s32 (int32x2_t __a)
4985 return (int32x2_t)__builtin_neon_vclsv2si (__a);
4988 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
4989 vclsq_s8 (int8x16_t __a)
4991 return (int8x16_t)__builtin_neon_vclsv16qi (__a);
4994 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
4995 vclsq_s16 (int16x8_t __a)
4997 return (int16x8_t)__builtin_neon_vclsv8hi (__a);
5000 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5001 vclsq_s32 (int32x4_t __a)
5003 return (int32x4_t)__builtin_neon_vclsv4si (__a);
5006 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5007 vclz_s8 (int8x8_t __a)
5009 return (int8x8_t)__builtin_neon_vclzv8qi (__a);
5012 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5013 vclz_s16 (int16x4_t __a)
5015 return (int16x4_t)__builtin_neon_vclzv4hi (__a);
5018 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5019 vclz_s32 (int32x2_t __a)
5021 return (int32x2_t)__builtin_neon_vclzv2si (__a);
5024 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5025 vclz_u8 (uint8x8_t __a)
5027 return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a);
5030 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5031 vclz_u16 (uint16x4_t __a)
5033 return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a);
5036 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5037 vclz_u32 (uint32x2_t __a)
5039 return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a);
5042 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5043 vclzq_s8 (int8x16_t __a)
5045 return (int8x16_t)__builtin_neon_vclzv16qi (__a);
5048 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5049 vclzq_s16 (int16x8_t __a)
5051 return (int16x8_t)__builtin_neon_vclzv8hi (__a);
5054 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5055 vclzq_s32 (int32x4_t __a)
5057 return (int32x4_t)__builtin_neon_vclzv4si (__a);
5060 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5061 vclzq_u8 (uint8x16_t __a)
5063 return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a);
5066 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5067 vclzq_u16 (uint16x8_t __a)
5069 return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a);
5072 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5073 vclzq_u32 (uint32x4_t __a)
5075 return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a);
5078 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5079 vcnt_s8 (int8x8_t __a)
5081 return (int8x8_t)__builtin_neon_vcntv8qi (__a);
5084 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5085 vcnt_u8 (uint8x8_t __a)
5087 return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
5090 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5091 vcnt_p8 (poly8x8_t __a)
5093 return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a);
5096 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5097 vcntq_s8 (int8x16_t __a)
5099 return (int8x16_t)__builtin_neon_vcntv16qi (__a);
5102 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5103 vcntq_u8 (uint8x16_t __a)
5105 return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
5108 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5109 vcntq_p8 (poly8x16_t __a)
5111 return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a);
5114 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5115 vrecpe_f32 (float32x2_t __a)
5117 return (float32x2_t)__builtin_neon_vrecpev2sf (__a);
5120 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5121 vrecpe_u32 (uint32x2_t __a)
5123 return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a);
5126 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5127 vrecpeq_f32 (float32x4_t __a)
5129 return (float32x4_t)__builtin_neon_vrecpev4sf (__a);
5132 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5133 vrecpeq_u32 (uint32x4_t __a)
5135 return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a);
5138 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5139 vrsqrte_f32 (float32x2_t __a)
5141 return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a);
5144 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5145 vrsqrte_u32 (uint32x2_t __a)
5147 return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a);
5150 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5151 vrsqrteq_f32 (float32x4_t __a)
5153 return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a);
5156 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5157 vrsqrteq_u32 (uint32x4_t __a)
5159 return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a);
5162 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
5163 vget_lane_s8 (int8x8_t __a, const int __b)
5165 return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b);
5168 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
5169 vget_lane_s16 (int16x4_t __a, const int __b)
5171 return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b);
5174 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
5175 vget_lane_s32 (int32x2_t __a, const int __b)
5177 return (int32_t)__builtin_neon_vget_lanev2si (__a, __b);
5180 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
5181 vget_lane_f32 (float32x2_t __a, const int __b)
5183 return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b);
5186 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
5187 vget_lane_u8 (uint8x8_t __a, const int __b)
5189 return (uint8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
5192 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
5193 vget_lane_u16 (uint16x4_t __a, const int __b)
5195 return (uint16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
5198 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
5199 vget_lane_u32 (uint32x2_t __a, const int __b)
5201 return (uint32_t)__builtin_neon_vget_laneuv2si ((int32x2_t) __a, __b);
5204 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
5205 vget_lane_p8 (poly8x8_t __a, const int __b)
5207 return (poly8_t)__builtin_neon_vget_laneuv8qi ((int8x8_t) __a, __b);
5210 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
5211 vget_lane_p16 (poly16x4_t __a, const int __b)
5213 return (poly16_t)__builtin_neon_vget_laneuv4hi ((int16x4_t) __a, __b);
5216 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
5217 vget_lane_s64 (int64x1_t __a, const int __b)
5219 return (int64_t)__builtin_neon_vget_lanedi (__a, __b);
5222 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
5223 vget_lane_u64 (uint64x1_t __a, const int __b)
5225 return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
5228 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
5229 vgetq_lane_s8 (int8x16_t __a, const int __b)
5231 return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b);
5234 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
5235 vgetq_lane_s16 (int16x8_t __a, const int __b)
5237 return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b);
5240 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
5241 vgetq_lane_s32 (int32x4_t __a, const int __b)
5243 return (int32_t)__builtin_neon_vget_lanev4si (__a, __b);
5246 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
5247 vgetq_lane_f32 (float32x4_t __a, const int __b)
5249 return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b);
5252 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
5253 vgetq_lane_u8 (uint8x16_t __a, const int __b)
5255 return (uint8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
5258 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
5259 vgetq_lane_u16 (uint16x8_t __a, const int __b)
5261 return (uint16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
5264 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
5265 vgetq_lane_u32 (uint32x4_t __a, const int __b)
5267 return (uint32_t)__builtin_neon_vget_laneuv4si ((int32x4_t) __a, __b);
5270 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
5271 vgetq_lane_p8 (poly8x16_t __a, const int __b)
5273 return (poly8_t)__builtin_neon_vget_laneuv16qi ((int8x16_t) __a, __b);
5276 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
5277 vgetq_lane_p16 (poly16x8_t __a, const int __b)
5279 return (poly16_t)__builtin_neon_vget_laneuv8hi ((int16x8_t) __a, __b);
5282 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
5283 vgetq_lane_s64 (int64x2_t __a, const int __b)
5285 return (int64_t)__builtin_neon_vget_lanev2di (__a, __b);
5288 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
5289 vgetq_lane_u64 (uint64x2_t __a, const int __b)
5291 return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b);
5294 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5295 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c)
5297 return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c);
5300 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5301 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
5303 return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c);
5306 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5307 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
5309 return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c);
5312 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5313 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
5315 return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
5318 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5319 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c)
5321 return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
5324 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5325 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c)
5327 return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
5330 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5331 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c)
5333 return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c);
5336 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5337 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c)
5339 return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c);
5342 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5343 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c)
5345 return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c);
5348 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5349 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c)
5351 return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c);
5354 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5355 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c)
5357 return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c);
5360 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5361 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c)
5363 return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c);
5366 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5367 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c)
5369 return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c);
5372 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5373 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
5375 return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c);
5378 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5379 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
5381 return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
5384 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5385 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c)
5387 return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
5390 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5391 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c)
5393 return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
5396 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5397 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c)
5399 return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c);
5402 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5403 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c)
5405 return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c);
5408 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5409 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c)
5411 return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c);
5414 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5415 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c)
5417 return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c);
5420 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5421 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c)
5423 return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c);
5426 #ifdef __ARM_FEATURE_CRYPTO
5427 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
5428 vcreate_p64 (uint64_t __a)
5430 return (poly64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5433 #endif
5434 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5435 vcreate_s8 (uint64_t __a)
5437 return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5440 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5441 vcreate_s16 (uint64_t __a)
5443 return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5446 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5447 vcreate_s32 (uint64_t __a)
5449 return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
5452 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5453 vcreate_s64 (uint64_t __a)
5455 return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5458 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5459 vcreate_f32 (uint64_t __a)
5461 return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a);
5464 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5465 vcreate_u8 (uint64_t __a)
5467 return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5470 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5471 vcreate_u16 (uint64_t __a)
5473 return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5476 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5477 vcreate_u32 (uint64_t __a)
5479 return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a);
5482 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5483 vcreate_u64 (uint64_t __a)
5485 return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a);
5488 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5489 vcreate_p8 (uint64_t __a)
5491 return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a);
5494 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5495 vcreate_p16 (uint64_t __a)
5497 return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a);
5500 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5501 vdup_n_s8 (int8_t __a)
5503 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5506 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5507 vdup_n_s16 (int16_t __a)
5509 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5512 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5513 vdup_n_s32 (int32_t __a)
5515 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5518 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5519 vdup_n_f32 (float32_t __a)
5521 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
5524 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5525 vdup_n_u8 (uint8_t __a)
5527 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5530 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5531 vdup_n_u16 (uint16_t __a)
5533 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5536 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5537 vdup_n_u32 (uint32_t __a)
5539 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5542 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5543 vdup_n_p8 (poly8_t __a)
5545 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5548 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5549 vdup_n_p16 (poly16_t __a)
5551 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5554 #ifdef __ARM_FEATURE_CRYPTO
5555 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
5556 vdup_n_p64 (poly64_t __a)
5558 return (poly64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5561 #endif
5562 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5563 vdup_n_s64 (int64_t __a)
5565 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5568 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5569 vdup_n_u64 (uint64_t __a)
5571 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5574 #ifdef __ARM_FEATURE_CRYPTO
5575 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
5576 vdupq_n_p64 (poly64_t __a)
5578 return (poly64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5581 #endif
5582 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5583 vdupq_n_s8 (int8_t __a)
5585 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5588 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5589 vdupq_n_s16 (int16_t __a)
5591 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5594 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5595 vdupq_n_s32 (int32_t __a)
5597 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5600 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5601 vdupq_n_f32 (float32_t __a)
5603 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
5606 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5607 vdupq_n_u8 (uint8_t __a)
5609 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5612 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5613 vdupq_n_u16 (uint16_t __a)
5615 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5618 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5619 vdupq_n_u32 (uint32_t __a)
5621 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5624 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5625 vdupq_n_p8 (poly8_t __a)
5627 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5630 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5631 vdupq_n_p16 (poly16_t __a)
5633 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5636 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5637 vdupq_n_s64 (int64_t __a)
5639 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5642 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5643 vdupq_n_u64 (uint64_t __a)
5645 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5648 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5649 vmov_n_s8 (int8_t __a)
5651 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5654 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5655 vmov_n_s16 (int16_t __a)
5657 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5660 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5661 vmov_n_s32 (int32_t __a)
5663 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5666 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5667 vmov_n_f32 (float32_t __a)
5669 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
5672 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5673 vmov_n_u8 (uint8_t __a)
5675 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5678 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5679 vmov_n_u16 (uint16_t __a)
5681 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5684 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5685 vmov_n_u32 (uint32_t __a)
5687 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a);
5690 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5691 vmov_n_p8 (poly8_t __a)
5693 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a);
5696 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5697 vmov_n_p16 (poly16_t __a)
5699 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a);
5702 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5703 vmov_n_s64 (int64_t __a)
5705 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5708 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5709 vmov_n_u64 (uint64_t __a)
5711 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a);
5714 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5715 vmovq_n_s8 (int8_t __a)
5717 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5720 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5721 vmovq_n_s16 (int16_t __a)
5723 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5726 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5727 vmovq_n_s32 (int32_t __a)
5729 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5732 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5733 vmovq_n_f32 (float32_t __a)
5735 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
5738 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5739 vmovq_n_u8 (uint8_t __a)
5741 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5744 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5745 vmovq_n_u16 (uint16_t __a)
5747 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5750 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5751 vmovq_n_u32 (uint32_t __a)
5753 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a);
5756 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5757 vmovq_n_p8 (poly8_t __a)
5759 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a);
5762 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5763 vmovq_n_p16 (poly16_t __a)
5765 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a);
5768 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5769 vmovq_n_s64 (int64_t __a)
5771 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5774 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5775 vmovq_n_u64 (uint64_t __a)
5777 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a);
5780 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
5781 vdup_lane_s8 (int8x8_t __a, const int __b)
5783 return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b);
5786 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
5787 vdup_lane_s16 (int16x4_t __a, const int __b)
5789 return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b);
5792 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
5793 vdup_lane_s32 (int32x2_t __a, const int __b)
5795 return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b);
5798 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
5799 vdup_lane_f32 (float32x2_t __a, const int __b)
5801 return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b);
5804 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
5805 vdup_lane_u8 (uint8x8_t __a, const int __b)
5807 return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
5810 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
5811 vdup_lane_u16 (uint16x4_t __a, const int __b)
5813 return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
5816 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
5817 vdup_lane_u32 (uint32x2_t __a, const int __b)
5819 return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b);
5822 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
5823 vdup_lane_p8 (poly8x8_t __a, const int __b)
5825 return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b);
5828 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
5829 vdup_lane_p16 (poly16x4_t __a, const int __b)
5831 return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b);
5834 #ifdef __ARM_FEATURE_CRYPTO
5835 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
5836 vdup_lane_p64 (poly64x1_t __a, const int __b)
5838 return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
5841 #endif
5842 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
5843 vdup_lane_s64 (int64x1_t __a, const int __b)
5845 return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b);
5848 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
5849 vdup_lane_u64 (uint64x1_t __a, const int __b)
5851 return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b);
5854 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5855 vdupq_lane_s8 (int8x8_t __a, const int __b)
5857 return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b);
5860 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5861 vdupq_lane_s16 (int16x4_t __a, const int __b)
5863 return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b);
5866 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5867 vdupq_lane_s32 (int32x2_t __a, const int __b)
5869 return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b);
5872 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5873 vdupq_lane_f32 (float32x2_t __a, const int __b)
5875 return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b);
5878 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5879 vdupq_lane_u8 (uint8x8_t __a, const int __b)
5881 return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
5884 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5885 vdupq_lane_u16 (uint16x4_t __a, const int __b)
5887 return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
5890 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5891 vdupq_lane_u32 (uint32x2_t __a, const int __b)
5893 return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b);
5896 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5897 vdupq_lane_p8 (poly8x8_t __a, const int __b)
5899 return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b);
5902 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5903 vdupq_lane_p16 (poly16x4_t __a, const int __b)
5905 return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b);
5908 #ifdef __ARM_FEATURE_CRYPTO
5909 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
5910 vdupq_lane_p64 (poly64x1_t __a, const int __b)
5912 return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
5915 #endif
5916 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5917 vdupq_lane_s64 (int64x1_t __a, const int __b)
5919 return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b);
5922 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5923 vdupq_lane_u64 (uint64x1_t __a, const int __b)
5925 return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b);
5928 #ifdef __ARM_FEATURE_CRYPTO
5929 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
5930 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
5932 return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b);
5935 #endif
5936 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
5937 vcombine_s8 (int8x8_t __a, int8x8_t __b)
5939 return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b);
5942 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
5943 vcombine_s16 (int16x4_t __a, int16x4_t __b)
5945 return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b);
5948 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
5949 vcombine_s32 (int32x2_t __a, int32x2_t __b)
5951 return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b);
5954 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
5955 vcombine_s64 (int64x1_t __a, int64x1_t __b)
5957 return (int64x2_t)__builtin_neon_vcombinedi (__a, __b);
5960 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
5961 vcombine_f32 (float32x2_t __a, float32x2_t __b)
5963 return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b);
5966 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
5967 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
5969 return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
5972 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
5973 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
5975 return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
5978 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
5979 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
5981 return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b);
5984 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
5985 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
5987 return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b);
5990 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
5991 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
5993 return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b);
5996 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
5997 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
5999 return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b);
6002 #ifdef __ARM_FEATURE_CRYPTO
6003 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
6004 vget_high_p64 (poly64x2_t __a)
6006 return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
6009 #endif
6010 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6011 vget_high_s8 (int8x16_t __a)
6013 return (int8x8_t)__builtin_neon_vget_highv16qi (__a);
6016 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6017 vget_high_s16 (int16x8_t __a)
6019 return (int16x4_t)__builtin_neon_vget_highv8hi (__a);
6022 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6023 vget_high_s32 (int32x4_t __a)
6025 return (int32x2_t)__builtin_neon_vget_highv4si (__a);
6028 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
6029 vget_high_s64 (int64x2_t __a)
6031 return (int64x1_t)__builtin_neon_vget_highv2di (__a);
6034 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6035 vget_high_f32 (float32x4_t __a)
6037 return (float32x2_t)__builtin_neon_vget_highv4sf (__a);
6040 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6041 vget_high_u8 (uint8x16_t __a)
6043 return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
6046 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6047 vget_high_u16 (uint16x8_t __a)
6049 return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
6052 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6053 vget_high_u32 (uint32x4_t __a)
6055 return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a);
6058 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
6059 vget_high_u64 (uint64x2_t __a)
6061 return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a);
6064 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6065 vget_high_p8 (poly8x16_t __a)
6067 return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a);
6070 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
6071 vget_high_p16 (poly16x8_t __a)
6073 return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a);
6076 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6077 vget_low_s8 (int8x16_t __a)
6079 return (int8x8_t)__builtin_neon_vget_lowv16qi (__a);
6082 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6083 vget_low_s16 (int16x8_t __a)
6085 return (int16x4_t)__builtin_neon_vget_lowv8hi (__a);
6088 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6089 vget_low_s32 (int32x4_t __a)
6091 return (int32x2_t)__builtin_neon_vget_lowv4si (__a);
6094 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6095 vget_low_f32 (float32x4_t __a)
6097 return (float32x2_t)__builtin_neon_vget_lowv4sf (__a);
6100 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6101 vget_low_u8 (uint8x16_t __a)
6103 return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
6106 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6107 vget_low_u16 (uint16x8_t __a)
6109 return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
6112 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6113 vget_low_u32 (uint32x4_t __a)
6115 return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a);
6118 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6119 vget_low_p8 (poly8x16_t __a)
6121 return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a);
6124 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
6125 vget_low_p16 (poly16x8_t __a)
6127 return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a);
6130 #ifdef __ARM_FEATURE_CRYPTO
6131 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
6132 vget_low_p64 (poly64x2_t __a)
6134 return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
6137 #endif
6138 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
6139 vget_low_s64 (int64x2_t __a)
6141 return (int64x1_t)__builtin_neon_vget_lowv2di (__a);
6144 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
6145 vget_low_u64 (uint64x2_t __a)
6147 return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a);
6150 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6151 vcvt_s32_f32 (float32x2_t __a)
6153 return (int32x2_t)__builtin_neon_vcvtsv2sf (__a);
6156 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6157 vcvt_f32_s32 (int32x2_t __a)
6159 return (float32x2_t)__builtin_neon_vcvtsv2si (__a);
6162 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6163 vcvt_f32_u32 (uint32x2_t __a)
6165 return (float32x2_t)__builtin_neon_vcvtuv2si ((int32x2_t) __a);
6168 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6169 vcvt_u32_f32 (float32x2_t __a)
6171 return (uint32x2_t)__builtin_neon_vcvtuv2sf (__a);
6174 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6175 vcvtq_s32_f32 (float32x4_t __a)
6177 return (int32x4_t)__builtin_neon_vcvtsv4sf (__a);
6180 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6181 vcvtq_f32_s32 (int32x4_t __a)
6183 return (float32x4_t)__builtin_neon_vcvtsv4si (__a);
6186 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6187 vcvtq_f32_u32 (uint32x4_t __a)
6189 return (float32x4_t)__builtin_neon_vcvtuv4si ((int32x4_t) __a);
6192 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6193 vcvtq_u32_f32 (float32x4_t __a)
6195 return (uint32x4_t)__builtin_neon_vcvtuv4sf (__a);
6198 #if ((__ARM_FP & 0x2) != 0)
6199 __extension__ static __inline float16x4_t __attribute__ ((__always_inline__))
6200 vcvt_f16_f32 (float32x4_t __a)
6202 return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a);
6205 #endif
6206 #if ((__ARM_FP & 0x2) != 0)
6207 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6208 vcvt_f32_f16 (float16x4_t __a)
6210 return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a);
6213 #endif
6214 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6215 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
6217 return (int32x2_t)__builtin_neon_vcvts_nv2sf (__a, __b);
6220 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6221 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
6223 return (float32x2_t)__builtin_neon_vcvts_nv2si (__a, __b);
6226 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6227 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
6229 return (float32x2_t)__builtin_neon_vcvtu_nv2si ((int32x2_t) __a, __b);
6232 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6233 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
6235 return (uint32x2_t)__builtin_neon_vcvtu_nv2sf (__a, __b);
6238 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6239 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
6241 return (int32x4_t)__builtin_neon_vcvts_nv4sf (__a, __b);
6244 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6245 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
6247 return (float32x4_t)__builtin_neon_vcvts_nv4si (__a, __b);
6250 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6251 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
6253 return (float32x4_t)__builtin_neon_vcvtu_nv4si ((int32x4_t) __a, __b);
6256 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6257 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
6259 return (uint32x4_t)__builtin_neon_vcvtu_nv4sf (__a, __b);
6262 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6263 vmovn_s16 (int16x8_t __a)
6265 return (int8x8_t)__builtin_neon_vmovnv8hi (__a);
6268 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6269 vmovn_s32 (int32x4_t __a)
6271 return (int16x4_t)__builtin_neon_vmovnv4si (__a);
6274 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6275 vmovn_s64 (int64x2_t __a)
6277 return (int32x2_t)__builtin_neon_vmovnv2di (__a);
6280 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6281 vmovn_u16 (uint16x8_t __a)
6283 return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a);
6286 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6287 vmovn_u32 (uint32x4_t __a)
6289 return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a);
6292 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6293 vmovn_u64 (uint64x2_t __a)
6295 return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a);
6298 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6299 vqmovn_s16 (int16x8_t __a)
6301 return (int8x8_t)__builtin_neon_vqmovnsv8hi (__a);
6304 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6305 vqmovn_s32 (int32x4_t __a)
6307 return (int16x4_t)__builtin_neon_vqmovnsv4si (__a);
6310 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6311 vqmovn_s64 (int64x2_t __a)
6313 return (int32x2_t)__builtin_neon_vqmovnsv2di (__a);
6316 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6317 vqmovn_u16 (uint16x8_t __a)
6319 return (uint8x8_t)__builtin_neon_vqmovnuv8hi ((int16x8_t) __a);
6322 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6323 vqmovn_u32 (uint32x4_t __a)
6325 return (uint16x4_t)__builtin_neon_vqmovnuv4si ((int32x4_t) __a);
6328 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6329 vqmovn_u64 (uint64x2_t __a)
6331 return (uint32x2_t)__builtin_neon_vqmovnuv2di ((int64x2_t) __a);
6334 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6335 vqmovun_s16 (int16x8_t __a)
6337 return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a);
6340 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6341 vqmovun_s32 (int32x4_t __a)
6343 return (uint16x4_t)__builtin_neon_vqmovunv4si (__a);
6346 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6347 vqmovun_s64 (int64x2_t __a)
6349 return (uint32x2_t)__builtin_neon_vqmovunv2di (__a);
6352 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6353 vmovl_s8 (int8x8_t __a)
6355 return (int16x8_t)__builtin_neon_vmovlsv8qi (__a);
6358 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6359 vmovl_s16 (int16x4_t __a)
6361 return (int32x4_t)__builtin_neon_vmovlsv4hi (__a);
6364 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6365 vmovl_s32 (int32x2_t __a)
6367 return (int64x2_t)__builtin_neon_vmovlsv2si (__a);
6370 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6371 vmovl_u8 (uint8x8_t __a)
6373 return (uint16x8_t)__builtin_neon_vmovluv8qi ((int8x8_t) __a);
6376 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6377 vmovl_u16 (uint16x4_t __a)
6379 return (uint32x4_t)__builtin_neon_vmovluv4hi ((int16x4_t) __a);
6382 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6383 vmovl_u32 (uint32x2_t __a)
6385 return (uint64x2_t)__builtin_neon_vmovluv2si ((int32x2_t) __a);
6388 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6389 vtbl1_s8 (int8x8_t __a, int8x8_t __b)
6391 return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b);
6394 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6395 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b)
6397 return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
6400 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6401 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b)
6403 return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b);
6406 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6407 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b)
6409 union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6410 return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b);
6413 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6414 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b)
6416 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6417 return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
6420 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6421 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b)
6423 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a };
6424 return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b);
6427 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6428 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b)
6430 union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6431 return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b);
6434 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6435 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b)
6437 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6438 return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
6441 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6442 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b)
6444 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a };
6445 return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b);
6448 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6449 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b)
6451 union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6452 return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b);
6455 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6456 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b)
6458 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6459 return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
6462 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6463 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b)
6465 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a };
6466 return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b);
6469 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6470 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6472 return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c);
6475 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6476 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6478 return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
6481 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6482 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c)
6484 return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
6487 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6488 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c)
6490 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6491 return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c);
6494 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6495 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c)
6497 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6498 return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6501 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6502 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c)
6504 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6505 return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6508 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6509 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c)
6511 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6512 return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c);
6515 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6516 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c)
6518 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6519 return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6522 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6523 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c)
6525 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6526 return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6529 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
6530 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c)
6532 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6533 return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c);
6536 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6537 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c)
6539 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6540 return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6543 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
6544 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c)
6546 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6547 return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c);
6550 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6551 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6553 return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c);
6556 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6557 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6559 return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c);
6562 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6563 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c)
6565 return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c);
6568 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6569 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6571 return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
6574 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6575 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6577 return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
6580 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6581 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6583 return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c);
6586 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6587 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6589 return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c);
6592 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6593 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c)
6595 return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c);
6598 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6599 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c)
6601 return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c);
6604 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6605 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c)
6607 return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c);
6610 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6611 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6613 return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d);
6616 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6617 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6619 return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d);
6622 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6623 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
6625 return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d);
6628 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6629 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6631 return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
6634 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6635 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6637 return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
6640 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6641 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
6643 return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d);
6646 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6647 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
6649 return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d);
6652 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6653 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
6655 return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d);
6658 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6659 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
6661 return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
6664 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6665 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
6667 return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
6670 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6671 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6673 return (int32x4_t)__builtin_neon_vmlals_lanev4hi (__a, __b, __c, __d);
6676 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6677 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6679 return (int64x2_t)__builtin_neon_vmlals_lanev2si (__a, __b, __c, __d);
6682 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6683 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6685 return (uint32x4_t)__builtin_neon_vmlalu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
6688 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6689 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6691 return (uint64x2_t)__builtin_neon_vmlalu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
6694 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6695 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6697 return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d);
6700 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6701 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6703 return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d);
6706 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6707 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6709 return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d);
6712 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6713 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6715 return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d);
6718 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6719 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d)
6721 return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d);
6724 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6725 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6727 return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
6730 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6731 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6733 return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
6736 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6737 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
6739 return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d);
6742 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6743 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
6745 return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d);
6748 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6749 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
6751 return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d);
6754 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6755 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d)
6757 return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d);
6760 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6761 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d)
6763 return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d);
6766 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6767 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6769 return (int32x4_t)__builtin_neon_vmlsls_lanev4hi (__a, __b, __c, __d);
6772 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6773 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6775 return (int64x2_t)__builtin_neon_vmlsls_lanev2si (__a, __b, __c, __d);
6778 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6779 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d)
6781 return (uint32x4_t)__builtin_neon_vmlslu_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d);
6784 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6785 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d)
6787 return (uint64x2_t)__builtin_neon_vmlslu_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d);
6790 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6791 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
6793 return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d);
6796 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6797 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
6799 return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d);
6802 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6803 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6805 return (int32x4_t)__builtin_neon_vmulls_lanev4hi (__a, __b, __c);
6808 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6809 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6811 return (int64x2_t)__builtin_neon_vmulls_lanev2si (__a, __b, __c);
6814 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6815 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
6817 return (uint32x4_t)__builtin_neon_vmullu_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
6820 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6821 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
6823 return (uint64x2_t)__builtin_neon_vmullu_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c);
6826 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6827 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6829 return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c);
6832 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6833 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6835 return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c);
6838 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6839 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6841 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c);
6844 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6845 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6847 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c);
6850 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6851 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6853 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c);
6856 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6857 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6859 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c);
6862 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6863 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
6865 return (int16x8_t)__builtin_neon_vqrdmulh_lanev8hi (__a, __b, __c);
6868 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6869 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
6871 return (int32x4_t)__builtin_neon_vqrdmulh_lanev4si (__a, __b, __c);
6874 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6875 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
6877 return (int16x4_t)__builtin_neon_vqrdmulh_lanev4hi (__a, __b, __c);
6880 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6881 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
6883 return (int32x2_t)__builtin_neon_vqrdmulh_lanev2si (__a, __b, __c);
6886 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6887 vmul_n_s16 (int16x4_t __a, int16_t __b)
6889 return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b);
6892 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
6893 vmul_n_s32 (int32x2_t __a, int32_t __b)
6895 return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b);
6898 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6899 vmul_n_f32 (float32x2_t __a, float32_t __b)
6901 return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b);
6904 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6905 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
6907 return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
6910 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
6911 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
6913 return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
6916 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6917 vmulq_n_s16 (int16x8_t __a, int16_t __b)
6919 return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b);
6922 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6923 vmulq_n_s32 (int32x4_t __a, int32_t __b)
6925 return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b);
6928 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6929 vmulq_n_f32 (float32x4_t __a, float32_t __b)
6931 return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b);
6934 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6935 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
6937 return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b);
6940 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6941 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
6943 return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b);
6946 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6947 vmull_n_s16 (int16x4_t __a, int16_t __b)
6949 return (int32x4_t)__builtin_neon_vmulls_nv4hi (__a, (__builtin_neon_hi) __b);
6952 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6953 vmull_n_s32 (int32x2_t __a, int32_t __b)
6955 return (int64x2_t)__builtin_neon_vmulls_nv2si (__a, (__builtin_neon_si) __b);
6958 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
6959 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
6961 return (uint32x4_t)__builtin_neon_vmullu_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b);
6964 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
6965 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
6967 return (uint64x2_t)__builtin_neon_vmullu_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b);
6970 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6971 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
6973 return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b);
6976 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
6977 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
6979 return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b);
6982 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
6983 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
6985 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
6988 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
6989 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
6991 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b);
6994 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
6995 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
6997 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
7000 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7001 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
7003 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b);
7006 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7007 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
7009 return (int16x8_t)__builtin_neon_vqrdmulh_nv8hi (__a, (__builtin_neon_hi) __b);
7012 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7013 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
7015 return (int32x4_t)__builtin_neon_vqrdmulh_nv4si (__a, (__builtin_neon_si) __b);
7018 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7019 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
7021 return (int16x4_t)__builtin_neon_vqrdmulh_nv4hi (__a, (__builtin_neon_hi) __b);
7024 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7025 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
7027 return (int32x2_t)__builtin_neon_vqrdmulh_nv2si (__a, (__builtin_neon_si) __b);
7030 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7031 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
7033 return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c);
7036 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7037 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
7039 return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c);
7042 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7043 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
7045 return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c);
7048 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7049 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
7051 return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
7054 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7055 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
7057 return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
7060 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7061 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7063 return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c);
7066 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7067 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7069 return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c);
7072 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7073 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7075 return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c);
7078 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7079 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7081 return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
7084 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7085 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7087 return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
7090 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7091 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7093 return (int32x4_t)__builtin_neon_vmlals_nv4hi (__a, __b, (__builtin_neon_hi) __c);
7096 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7097 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7099 return (int64x2_t)__builtin_neon_vmlals_nv2si (__a, __b, (__builtin_neon_si) __c);
7102 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7103 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7105 return (uint32x4_t)__builtin_neon_vmlalu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
7108 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7109 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7111 return (uint64x2_t)__builtin_neon_vmlalu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
7114 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7115 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7117 return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c);
7120 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7121 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7123 return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c);
7126 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7127 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
7129 return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
7132 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7133 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
7135 return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c);
7138 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7139 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
7141 return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c);
7144 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7145 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
7147 return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
7150 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7151 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
7153 return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
7156 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7157 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7159 return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c);
7162 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7163 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7165 return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c);
7168 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7169 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7171 return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c);
7174 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7175 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7177 return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c);
7180 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7181 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7183 return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c);
7186 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7187 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7189 return (int32x4_t)__builtin_neon_vmlsls_nv4hi (__a, __b, (__builtin_neon_hi) __c);
7192 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7193 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7195 return (int64x2_t)__builtin_neon_vmlsls_nv2si (__a, __b, (__builtin_neon_si) __c);
7198 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7199 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7201 return (uint32x4_t)__builtin_neon_vmlslu_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c);
7204 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7205 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7207 return (uint64x2_t)__builtin_neon_vmlslu_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c);
7210 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7211 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7213 return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c);
7216 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7217 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7219 return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c);
7222 #ifdef __ARM_FEATURE_CRYPTO
7223 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
7224 vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
7226 return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c);
7229 #endif
7230 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7231 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c)
7233 return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c);
7236 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7237 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c)
7239 return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c);
7242 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7243 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c)
7245 return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c);
7248 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
7249 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c)
7251 return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c);
7254 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7255 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c)
7257 return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c);
7260 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7261 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
7263 return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
7266 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7267 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
7269 return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7272 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7273 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
7275 return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c);
7278 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
7279 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
7281 return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c);
7284 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7285 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c)
7287 return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c);
7290 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7291 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c)
7293 return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c);
7296 #ifdef __ARM_FEATURE_CRYPTO
7297 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
7298 vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
7300 return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
7303 #endif
7304 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7305 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c)
7307 return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c);
7310 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7311 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
7313 return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c);
7316 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7317 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
7319 return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c);
7322 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7323 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c)
7325 return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c);
7328 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7329 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
7331 return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c);
7334 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7335 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
7337 return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
7340 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7341 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
7343 return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
7346 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7347 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
7349 return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c);
7352 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7353 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
7355 return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c);
7358 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7359 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c)
7361 return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c);
7364 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7365 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c)
7367 return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c);
7370 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7371 vrev64_s8 (int8x8_t __a)
7373 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7376 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7377 vrev64_s16 (int16x4_t __a)
7379 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7382 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7383 vrev64_s32 (int32x2_t __a)
7385 return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7388 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7389 vrev64_f32 (float32x2_t __a)
7391 return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7394 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7395 vrev64_u8 (uint8x8_t __a)
7397 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7400 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7401 vrev64_u16 (uint16x4_t __a)
7403 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7406 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7407 vrev64_u32 (uint32x2_t __a)
7409 return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
7412 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7413 vrev64_p8 (poly8x8_t __a)
7415 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
7418 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7419 vrev64_p16 (poly16x4_t __a)
7421 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
7424 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7425 vrev64q_s8 (int8x16_t __a)
7427 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7430 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7431 vrev64q_s16 (int16x8_t __a)
7433 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7436 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7437 vrev64q_s32 (int32x4_t __a)
7439 return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7442 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7443 vrev64q_f32 (float32x4_t __a)
7445 return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7448 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7449 vrev64q_u8 (uint8x16_t __a)
7451 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7454 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7455 vrev64q_u16 (uint16x8_t __a)
7457 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7460 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7461 vrev64q_u32 (uint32x4_t __a)
7463 return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
7466 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7467 vrev64q_p8 (poly8x16_t __a)
7469 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
7472 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7473 vrev64q_p16 (poly16x8_t __a)
7475 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7478 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7479 vrev32_s8 (int8x8_t __a)
7481 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7484 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7485 vrev32_s16 (int16x4_t __a)
7487 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7490 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7491 vrev32_u8 (uint8x8_t __a)
7493 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7496 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7497 vrev32_u16 (uint16x4_t __a)
7499 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7502 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7503 vrev32_p8 (poly8x8_t __a)
7505 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
7508 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7509 vrev32_p16 (poly16x4_t __a)
7511 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
7514 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7515 vrev32q_s8 (int8x16_t __a)
7517 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7520 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7521 vrev32q_s16 (int16x8_t __a)
7523 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7526 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7527 vrev32q_u8 (uint8x16_t __a)
7529 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7532 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7533 vrev32q_u16 (uint16x8_t __a)
7535 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7538 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7539 vrev32q_p8 (poly8x16_t __a)
7541 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
7544 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7545 vrev32q_p16 (poly16x8_t __a)
7547 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7550 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7551 vrev16_s8 (int8x8_t __a)
7553 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7556 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7557 vrev16_u8 (uint8x8_t __a)
7559 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7562 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7563 vrev16_p8 (poly8x8_t __a)
7565 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
7568 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7569 vrev16q_s8 (int8x16_t __a)
7571 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7574 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7575 vrev16q_u8 (uint8x16_t __a)
7577 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7580 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7581 vrev16q_p8 (poly8x16_t __a)
7583 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
7586 #ifdef __ARM_FEATURE_CRYPTO
7587 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
7588 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
7590 return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
7593 #endif
7594 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
7595 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
7597 return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c);
7600 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
7601 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
7603 return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c);
7606 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
7607 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
7609 return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c);
7612 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
7613 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
7615 return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c);
7618 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
7619 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
7621 return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c);
7624 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
7625 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7627 return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7630 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
7631 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
7633 return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
7636 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
7637 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
7639 return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c);
7642 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
7643 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
7645 return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c);
7648 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
7649 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
7651 return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c);
7654 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
7655 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
7657 return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c);
7660 #ifdef __ARM_FEATURE_CRYPTO
7661 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
7662 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
7664 return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
7667 #endif
7668 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
7669 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
7671 return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c);
7674 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
7675 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
7677 return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c);
7680 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
7681 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
7683 return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c);
7686 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
7687 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
7689 return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c);
7692 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
7693 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
7695 return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c);
7698 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
7699 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
7701 return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
7704 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
7705 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
7707 return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
7710 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
7711 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
7713 return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c);
7716 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
7717 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
7719 return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c);
7722 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
7723 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
7725 return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c);
7728 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
7729 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
7731 return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c);
7734 /* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as
7735 follows. (nelt = the number of elements within a vector.)
7737 Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector
7738 extension's indexing scheme is reversed *within each vector* (relative to the
7739 neon intrinsics view), but without changing which of the two vectors.
7741 Secondly, the elements within each mask are reversed, as the mask is itself a
7742 vector, and will itself be loaded in reverse order (again, relative to the
7743 neon intrinsics view, i.e. that would result from a "vld1" instruction). */
7745 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
7746 vtrn_s8 (int8x8_t __a, int8x8_t __b)
7748 int8x8x2_t __rv;
7749 #ifdef __ARM_BIG_ENDIAN
7750 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7751 { 9, 1, 11, 3, 13, 5, 15, 7 });
7752 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7753 { 8, 0, 10, 2, 12, 4, 14, 6 });
7754 #else
7755 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7756 { 0, 8, 2, 10, 4, 12, 6, 14 });
7757 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7758 { 1, 9, 3, 11, 5, 13, 7, 15 });
7759 #endif
7760 return __rv;
7763 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
7764 vtrn_s16 (int16x4_t __a, int16x4_t __b)
7766 int16x4x2_t __rv;
7767 #ifdef __ARM_BIG_ENDIAN
7768 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
7769 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
7770 #else
7771 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7772 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7773 #endif
7774 return __rv;
7777 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
7778 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
7780 uint8x8x2_t __rv;
7781 #ifdef __ARM_BIG_ENDIAN
7782 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7783 { 9, 1, 11, 3, 13, 5, 15, 7 });
7784 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7785 { 8, 0, 10, 2, 12, 4, 14, 6 });
7786 #else
7787 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7788 { 0, 8, 2, 10, 4, 12, 6, 14 });
7789 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7790 { 1, 9, 3, 11, 5, 13, 7, 15 });
7791 #endif
7792 return __rv;
7795 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
7796 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
7798 uint16x4x2_t __rv;
7799 #ifdef __ARM_BIG_ENDIAN
7800 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
7801 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
7802 #else
7803 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7804 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7805 #endif
7806 return __rv;
7809 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
7810 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
7812 poly8x8x2_t __rv;
7813 #ifdef __ARM_BIG_ENDIAN
7814 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7815 { 9, 1, 11, 3, 13, 5, 15, 7 });
7816 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7817 { 8, 0, 10, 2, 12, 4, 14, 6 });
7818 #else
7819 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
7820 { 0, 8, 2, 10, 4, 12, 6, 14 });
7821 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
7822 { 1, 9, 3, 11, 5, 13, 7, 15 });
7823 #endif
7824 return __rv;
7827 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
7828 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
7830 poly16x4x2_t __rv;
7831 #ifdef __ARM_BIG_ENDIAN
7832 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 });
7833 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 });
7834 #else
7835 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 });
7836 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 });
7837 #endif
7838 return __rv;
7841 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
7842 vtrn_s32 (int32x2_t __a, int32x2_t __b)
7844 int32x2x2_t __rv;
7845 #ifdef __ARM_BIG_ENDIAN
7846 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
7847 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
7848 #else
7849 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7850 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7851 #endif
7852 return __rv;
7855 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
7856 vtrn_f32 (float32x2_t __a, float32x2_t __b)
7858 float32x2x2_t __rv;
7859 #ifdef __ARM_BIG_ENDIAN
7860 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
7861 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
7862 #else
7863 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7864 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7865 #endif
7866 return __rv;
7869 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
7870 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
7872 uint32x2x2_t __rv;
7873 #ifdef __ARM_BIG_ENDIAN
7874 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
7875 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
7876 #else
7877 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
7878 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
7879 #endif
7880 return __rv;
7883 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
7884 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
7886 int8x16x2_t __rv;
7887 #ifdef __ARM_BIG_ENDIAN
7888 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7889 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
7890 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7891 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
7892 #else
7893 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7894 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
7895 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7896 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
7897 #endif
7898 return __rv;
7901 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
7902 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
7904 int16x8x2_t __rv;
7905 #ifdef __ARM_BIG_ENDIAN
7906 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7907 { 9, 1, 11, 3, 13, 5, 15, 7 });
7908 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7909 { 8, 0, 10, 2, 12, 4, 14, 6 });
7910 #else
7911 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7912 { 0, 8, 2, 10, 4, 12, 6, 14 });
7913 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7914 { 1, 9, 3, 11, 5, 13, 7, 15 });
7915 #endif
7916 return __rv;
7919 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
7920 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
7922 int32x4x2_t __rv;
7923 #ifdef __ARM_BIG_ENDIAN
7924 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
7925 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
7926 #else
7927 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7928 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7929 #endif
7930 return __rv;
7933 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
7934 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
7936 float32x4x2_t __rv;
7937 #ifdef __ARM_BIG_ENDIAN
7938 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
7939 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
7940 #else
7941 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7942 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7943 #endif
7944 return __rv;
7947 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
7948 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
7950 uint8x16x2_t __rv;
7951 #ifdef __ARM_BIG_ENDIAN
7952 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7953 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
7954 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7955 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
7956 #else
7957 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
7958 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
7959 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
7960 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
7961 #endif
7962 return __rv;
7965 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
7966 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
7968 uint16x8x2_t __rv;
7969 #ifdef __ARM_BIG_ENDIAN
7970 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7971 { 9, 1, 11, 3, 13, 5, 15, 7 });
7972 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7973 { 8, 0, 10, 2, 12, 4, 14, 6 });
7974 #else
7975 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
7976 { 0, 8, 2, 10, 4, 12, 6, 14 });
7977 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
7978 { 1, 9, 3, 11, 5, 13, 7, 15 });
7979 #endif
7980 return __rv;
7983 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
7984 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
7986 uint32x4x2_t __rv;
7987 #ifdef __ARM_BIG_ENDIAN
7988 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 });
7989 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 });
7990 #else
7991 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 });
7992 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 });
7993 #endif
7994 return __rv;
7997 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
7998 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
8000 poly8x16x2_t __rv;
8001 #ifdef __ARM_BIG_ENDIAN
8002 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8003 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 });
8004 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8005 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 });
8006 #else
8007 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8008 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 });
8009 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8010 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 });
8011 #endif
8012 return __rv;
8015 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
8016 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
8018 poly16x8x2_t __rv;
8019 #ifdef __ARM_BIG_ENDIAN
8020 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8021 { 9, 1, 11, 3, 13, 5, 15, 7 });
8022 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8023 { 8, 0, 10, 2, 12, 4, 14, 6 });
8024 #else
8025 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8026 { 0, 8, 2, 10, 4, 12, 6, 14 });
8027 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8028 { 1, 9, 3, 11, 5, 13, 7, 15 });
8029 #endif
8030 return __rv;
8033 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
8034 vzip_s8 (int8x8_t __a, int8x8_t __b)
8036 int8x8x2_t __rv;
8037 #ifdef __ARM_BIG_ENDIAN
8038 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8039 { 12, 4, 13, 5, 14, 6, 15, 7 });
8040 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8041 { 8, 0, 9, 1, 10, 2, 11, 3 });
8042 #else
8043 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8044 { 0, 8, 1, 9, 2, 10, 3, 11 });
8045 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8046 { 4, 12, 5, 13, 6, 14, 7, 15 });
8047 #endif
8048 return __rv;
8051 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
8052 vzip_s16 (int16x4_t __a, int16x4_t __b)
8054 int16x4x2_t __rv;
8055 #ifdef __ARM_BIG_ENDIAN
8056 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
8057 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
8058 #else
8059 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
8060 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
8061 #endif
8062 return __rv;
8065 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
8066 vzip_u8 (uint8x8_t __a, uint8x8_t __b)
8068 uint8x8x2_t __rv;
8069 #ifdef __ARM_BIG_ENDIAN
8070 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8071 { 12, 4, 13, 5, 14, 6, 15, 7 });
8072 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8073 { 8, 0, 9, 1, 10, 2, 11, 3 });
8074 #else
8075 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8076 { 0, 8, 1, 9, 2, 10, 3, 11 });
8077 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8078 { 4, 12, 5, 13, 6, 14, 7, 15 });
8079 #endif
8080 return __rv;
8083 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
8084 vzip_u16 (uint16x4_t __a, uint16x4_t __b)
8086 uint16x4x2_t __rv;
8087 #ifdef __ARM_BIG_ENDIAN
8088 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
8089 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
8090 #else
8091 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
8092 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
8093 #endif
8094 return __rv;
8097 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
8098 vzip_p8 (poly8x8_t __a, poly8x8_t __b)
8100 poly8x8x2_t __rv;
8101 #ifdef __ARM_BIG_ENDIAN
8102 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8103 { 12, 4, 13, 5, 14, 6, 15, 7 });
8104 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8105 { 8, 0, 9, 1, 10, 2, 11, 3 });
8106 #else
8107 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8108 { 0, 8, 1, 9, 2, 10, 3, 11 });
8109 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8110 { 4, 12, 5, 13, 6, 14, 7, 15 });
8111 #endif
8112 return __rv;
8115 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
8116 vzip_p16 (poly16x4_t __a, poly16x4_t __b)
8118 poly16x4x2_t __rv;
8119 #ifdef __ARM_BIG_ENDIAN
8120 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 });
8121 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 });
8122 #else
8123 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 });
8124 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 });
8125 #endif
8126 return __rv;
8129 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
8130 vzip_s32 (int32x2_t __a, int32x2_t __b)
8132 int32x2x2_t __rv;
8133 #ifdef __ARM_BIG_ENDIAN
8134 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8135 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8136 #else
8137 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8138 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8139 #endif
8140 return __rv;
8143 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
8144 vzip_f32 (float32x2_t __a, float32x2_t __b)
8146 float32x2x2_t __rv;
8147 #ifdef __ARM_BIG_ENDIAN
8148 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8149 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8150 #else
8151 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8152 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8153 #endif
8154 return __rv;
8157 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
8158 vzip_u32 (uint32x2_t __a, uint32x2_t __b)
8160 uint32x2x2_t __rv;
8161 #ifdef __ARM_BIG_ENDIAN
8162 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8163 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8164 #else
8165 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8166 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8167 #endif
8168 return __rv;
8171 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
8172 vzipq_s8 (int8x16_t __a, int8x16_t __b)
8174 int8x16x2_t __rv;
8175 #ifdef __ARM_BIG_ENDIAN
8176 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8177 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 });
8178 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8179 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 });
8180 #else
8181 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8182 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
8183 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8184 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
8185 #endif
8186 return __rv;
8189 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
8190 vzipq_s16 (int16x8_t __a, int16x8_t __b)
8192 int16x8x2_t __rv;
8193 #ifdef __ARM_BIG_ENDIAN
8194 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8195 { 12, 4, 13, 5, 14, 6, 15, 7 });
8196 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8197 { 8, 0, 9, 1, 10, 2, 11, 3 });
8198 #else
8199 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8200 { 0, 8, 1, 9, 2, 10, 3, 11 });
8201 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8202 { 4, 12, 5, 13, 6, 14, 7, 15 });
8203 #endif
8204 return __rv;
8207 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
8208 vzipq_s32 (int32x4_t __a, int32x4_t __b)
8210 int32x4x2_t __rv;
8211 #ifdef __ARM_BIG_ENDIAN
8212 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 });
8213 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 });
8214 #else
8215 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
8216 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
8217 #endif
8218 return __rv;
8221 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
8222 vzipq_f32 (float32x4_t __a, float32x4_t __b)
8224 float32x4x2_t __rv;
8225 #ifdef __ARM_BIG_ENDIAN
8226 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 });
8227 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 });
8228 #else
8229 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
8230 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
8231 #endif
8232 return __rv;
8235 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
8236 vzipq_u8 (uint8x16_t __a, uint8x16_t __b)
8238 uint8x16x2_t __rv;
8239 #ifdef __ARM_BIG_ENDIAN
8240 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8241 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 });
8242 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8243 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 });
8244 #else
8245 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8246 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
8247 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8248 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
8249 #endif
8250 return __rv;
8253 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
8254 vzipq_u16 (uint16x8_t __a, uint16x8_t __b)
8256 uint16x8x2_t __rv;
8257 #ifdef __ARM_BIG_ENDIAN
8258 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8259 { 12, 4, 13, 5, 14, 6, 15, 7 });
8260 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8261 { 8, 0, 9, 1, 10, 2, 11, 3 });
8262 #else
8263 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8264 { 0, 8, 1, 9, 2, 10, 3, 11 });
8265 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8266 { 4, 12, 5, 13, 6, 14, 7, 15 });
8267 #endif
8268 return __rv;
8271 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
8272 vzipq_u32 (uint32x4_t __a, uint32x4_t __b)
8274 uint32x4x2_t __rv;
8275 #ifdef __ARM_BIG_ENDIAN
8276 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 });
8277 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 });
8278 #else
8279 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 });
8280 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 });
8281 #endif
8282 return __rv;
8285 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
8286 vzipq_p8 (poly8x16_t __a, poly8x16_t __b)
8288 poly8x16x2_t __rv;
8289 #ifdef __ARM_BIG_ENDIAN
8290 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8291 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 });
8292 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8293 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 });
8294 #else
8295 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8296 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 });
8297 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8298 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 });
8299 #endif
8300 return __rv;
8303 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
8304 vzipq_p16 (poly16x8_t __a, poly16x8_t __b)
8306 poly16x8x2_t __rv;
8307 #ifdef __ARM_BIG_ENDIAN
8308 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8309 { 12, 4, 13, 5, 14, 6, 15, 7 });
8310 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8311 { 8, 0, 9, 1, 10, 2, 11, 3 });
8312 #else
8313 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8314 { 0, 8, 1, 9, 2, 10, 3, 11 });
8315 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8316 { 4, 12, 5, 13, 6, 14, 7, 15 });
8317 #endif
8318 return __rv;
8321 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
8322 vuzp_s8 (int8x8_t __a, int8x8_t __b)
8324 int8x8x2_t __rv;
8325 #ifdef __ARM_BIG_ENDIAN
8326 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8327 { 9, 11, 13, 15, 1, 3, 5, 7 });
8328 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8329 { 8, 10, 12, 14, 0, 2, 4, 6 });
8330 #else
8331 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8332 { 0, 2, 4, 6, 8, 10, 12, 14 });
8333 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8334 { 1, 3, 5, 7, 9, 11, 13, 15 });
8335 #endif
8336 return __rv;
8339 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
8340 vuzp_s16 (int16x4_t __a, int16x4_t __b)
8342 int16x4x2_t __rv;
8343 #ifdef __ARM_BIG_ENDIAN
8344 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
8345 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
8346 #else
8347 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8348 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8349 #endif
8350 return __rv;
8353 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
8354 vuzp_s32 (int32x2_t __a, int32x2_t __b)
8356 int32x2x2_t __rv;
8357 #ifdef __ARM_BIG_ENDIAN
8358 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8359 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8360 #else
8361 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8362 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8363 #endif
8364 return __rv;
8367 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
8368 vuzp_f32 (float32x2_t __a, float32x2_t __b)
8370 float32x2x2_t __rv;
8371 #ifdef __ARM_BIG_ENDIAN
8372 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8373 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8374 #else
8375 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8376 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8377 #endif
8378 return __rv;
8381 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
8382 vuzp_u8 (uint8x8_t __a, uint8x8_t __b)
8384 uint8x8x2_t __rv;
8385 #ifdef __ARM_BIG_ENDIAN
8386 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8387 { 9, 11, 13, 15, 1, 3, 5, 7 });
8388 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8389 { 8, 10, 12, 14, 0, 2, 4, 6 });
8390 #else
8391 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8392 { 0, 2, 4, 6, 8, 10, 12, 14 });
8393 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8394 { 1, 3, 5, 7, 9, 11, 13, 15 });
8395 #endif
8396 return __rv;
8399 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
8400 vuzp_u16 (uint16x4_t __a, uint16x4_t __b)
8402 uint16x4x2_t __rv;
8403 #ifdef __ARM_BIG_ENDIAN
8404 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
8405 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
8406 #else
8407 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8408 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8409 #endif
8410 return __rv;
8413 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
8414 vuzp_u32 (uint32x2_t __a, uint32x2_t __b)
8416 uint32x2x2_t __rv;
8417 #ifdef __ARM_BIG_ENDIAN
8418 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 });
8419 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 });
8420 #else
8421 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 });
8422 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 });
8423 #endif
8424 return __rv;
8427 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
8428 vuzp_p8 (poly8x8_t __a, poly8x8_t __b)
8430 poly8x8x2_t __rv;
8431 #ifdef __ARM_BIG_ENDIAN
8432 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8433 { 9, 11, 13, 15, 1, 3, 5, 7 });
8434 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8435 { 8, 10, 12, 14, 0, 2, 4, 6 });
8436 #else
8437 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t)
8438 { 0, 2, 4, 6, 8, 10, 12, 14 });
8439 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t)
8440 { 1, 3, 5, 7, 9, 11, 13, 15 });
8441 #endif
8442 return __rv;
8445 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
8446 vuzp_p16 (poly16x4_t __a, poly16x4_t __b)
8448 poly16x4x2_t __rv;
8449 #ifdef __ARM_BIG_ENDIAN
8450 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 });
8451 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 });
8452 #else
8453 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 });
8454 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 });
8455 #endif
8456 return __rv;
8459 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
8460 vuzpq_s8 (int8x16_t __a, int8x16_t __b)
8462 int8x16x2_t __rv;
8463 #ifdef __ARM_BIG_ENDIAN
8464 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8465 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 });
8466 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8467 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 });
8468 #else
8469 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8470 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8471 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8472 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8473 #endif
8474 return __rv;
8477 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
8478 vuzpq_s16 (int16x8_t __a, int16x8_t __b)
8480 int16x8x2_t __rv;
8481 #ifdef __ARM_BIG_ENDIAN
8482 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8483 { 9, 11, 13, 15, 1, 3, 5, 7 });
8484 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8485 { 8, 10, 12, 14, 0, 2, 4, 6 });
8486 #else
8487 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8488 { 0, 2, 4, 6, 8, 10, 12, 14 });
8489 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8490 { 1, 3, 5, 7, 9, 11, 13, 15 });
8491 #endif
8492 return __rv;
8495 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
8496 vuzpq_s32 (int32x4_t __a, int32x4_t __b)
8498 int32x4x2_t __rv;
8499 #ifdef __ARM_BIG_ENDIAN
8500 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 });
8501 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 });
8502 #else
8503 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8504 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8505 #endif
8506 return __rv;
8509 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
8510 vuzpq_f32 (float32x4_t __a, float32x4_t __b)
8512 float32x4x2_t __rv;
8513 #ifdef __ARM_BIG_ENDIAN
8514 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 });
8515 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 });
8516 #else
8517 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8518 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8519 #endif
8520 return __rv;
8523 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
8524 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b)
8526 uint8x16x2_t __rv;
8527 #ifdef __ARM_BIG_ENDIAN
8528 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8529 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 });
8530 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8531 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 });
8532 #else
8533 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8534 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8535 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8536 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8537 #endif
8538 return __rv;
8541 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
8542 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b)
8544 uint16x8x2_t __rv;
8545 #ifdef __ARM_BIG_ENDIAN
8546 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8547 { 9, 11, 13, 15, 1, 3, 5, 7 });
8548 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8549 { 8, 10, 12, 14, 0, 2, 4, 6 });
8550 #else
8551 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8552 { 0, 2, 4, 6, 8, 10, 12, 14 });
8553 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8554 { 1, 3, 5, 7, 9, 11, 13, 15 });
8555 #endif
8556 return __rv;
8559 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
8560 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b)
8562 uint32x4x2_t __rv;
8563 #ifdef __ARM_BIG_ENDIAN
8564 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 });
8565 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 });
8566 #else
8567 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 });
8568 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 });
8569 #endif
8570 return __rv;
8573 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
8574 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b)
8576 poly8x16x2_t __rv;
8577 #ifdef __ARM_BIG_ENDIAN
8578 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8579 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 });
8580 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8581 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 });
8582 #else
8583 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t)
8584 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 });
8585 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t)
8586 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 });
8587 #endif
8588 return __rv;
8591 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
8592 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b)
8594 poly16x8x2_t __rv;
8595 #ifdef __ARM_BIG_ENDIAN
8596 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8597 { 9, 11, 13, 15, 1, 3, 5, 7 });
8598 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8599 { 8, 10, 12, 14, 0, 2, 4, 6 });
8600 #else
8601 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t)
8602 { 0, 2, 4, 6, 8, 10, 12, 14 });
8603 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t)
8604 { 1, 3, 5, 7, 9, 11, 13, 15 });
8605 #endif
8606 return __rv;
8609 #ifdef __ARM_FEATURE_CRYPTO
8610 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
8611 vld1_p64 (const poly64_t * __a)
8613 return (poly64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8616 #endif
8617 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
8618 vld1_s8 (const int8_t * __a)
8620 return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8623 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
8624 vld1_s16 (const int16_t * __a)
8626 return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8629 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
8630 vld1_s32 (const int32_t * __a)
8632 return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
8635 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
8636 vld1_s64 (const int64_t * __a)
8638 return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8641 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
8642 vld1_f32 (const float32_t * __a)
8644 return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
8647 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
8648 vld1_u8 (const uint8_t * __a)
8650 return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8653 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
8654 vld1_u16 (const uint16_t * __a)
8656 return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8659 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
8660 vld1_u32 (const uint32_t * __a)
8662 return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a);
8665 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
8666 vld1_u64 (const uint64_t * __a)
8668 return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a);
8671 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
8672 vld1_p8 (const poly8_t * __a)
8674 return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a);
8677 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
8678 vld1_p16 (const poly16_t * __a)
8680 return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a);
8683 #ifdef __ARM_FEATURE_CRYPTO
8684 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
8685 vld1q_p64 (const poly64_t * __a)
8687 return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8690 #endif
8691 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
8692 vld1q_s8 (const int8_t * __a)
8694 return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8697 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
8698 vld1q_s16 (const int16_t * __a)
8700 return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8703 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
8704 vld1q_s32 (const int32_t * __a)
8706 return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
8709 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
8710 vld1q_s64 (const int64_t * __a)
8712 return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8715 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
8716 vld1q_f32 (const float32_t * __a)
8718 return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
8721 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
8722 vld1q_u8 (const uint8_t * __a)
8724 return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8727 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
8728 vld1q_u16 (const uint16_t * __a)
8730 return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8733 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
8734 vld1q_u32 (const uint32_t * __a)
8736 return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a);
8739 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
8740 vld1q_u64 (const uint64_t * __a)
8742 return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a);
8745 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
8746 vld1q_p8 (const poly8_t * __a)
8748 return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a);
8751 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
8752 vld1q_p16 (const poly16_t * __a)
8754 return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a);
8757 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
8758 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c)
8760 return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c);
8763 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
8764 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c)
8766 return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c);
8769 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
8770 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
8772 return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c);
8775 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
8776 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
8778 return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
8781 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
8782 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c)
8784 return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8787 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
8788 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c)
8790 return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8793 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
8794 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c)
8796 return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c);
8799 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
8800 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c)
8802 return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c);
8805 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
8806 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c)
8808 return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c);
8811 #ifdef __ARM_FEATURE_CRYPTO
8812 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
8813 vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c)
8815 return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
8818 #endif
8819 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
8820 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c)
8822 return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c);
8825 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
8826 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c)
8828 return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c);
8831 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
8832 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c)
8834 return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c);
8837 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
8838 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c)
8840 return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c);
8843 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
8844 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
8846 return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c);
8849 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
8850 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
8852 return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
8855 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
8856 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c)
8858 return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8861 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
8862 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c)
8864 return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8867 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
8868 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c)
8870 return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c);
8873 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
8874 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c)
8876 return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c);
8879 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
8880 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c)
8882 return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c);
8885 #ifdef __ARM_FEATURE_CRYPTO
8886 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
8887 vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c)
8889 return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
8892 #endif
8893 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
8894 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c)
8896 return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c);
8899 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
8900 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c)
8902 return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c);
8905 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
8906 vld1_dup_s8 (const int8_t * __a)
8908 return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8911 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
8912 vld1_dup_s16 (const int16_t * __a)
8914 return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8917 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
8918 vld1_dup_s32 (const int32_t * __a)
8920 return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
8923 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
8924 vld1_dup_f32 (const float32_t * __a)
8926 return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
8929 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
8930 vld1_dup_u8 (const uint8_t * __a)
8932 return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8935 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
8936 vld1_dup_u16 (const uint16_t * __a)
8938 return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8941 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
8942 vld1_dup_u32 (const uint32_t * __a)
8944 return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a);
8947 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
8948 vld1_dup_p8 (const poly8_t * __a)
8950 return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a);
8953 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
8954 vld1_dup_p16 (const poly16_t * __a)
8956 return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a);
8959 #ifdef __ARM_FEATURE_CRYPTO
8960 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
8961 vld1_dup_p64 (const poly64_t * __a)
8963 return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8966 #endif
8967 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
8968 vld1_dup_s64 (const int64_t * __a)
8970 return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8973 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
8974 vld1_dup_u64 (const uint64_t * __a)
8976 return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a);
8979 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
8980 vld1q_dup_s8 (const int8_t * __a)
8982 return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
8985 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
8986 vld1q_dup_s16 (const int16_t * __a)
8988 return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
8991 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
8992 vld1q_dup_s32 (const int32_t * __a)
8994 return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
8997 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
8998 vld1q_dup_f32 (const float32_t * __a)
9000 return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
9003 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
9004 vld1q_dup_u8 (const uint8_t * __a)
9006 return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
9009 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
9010 vld1q_dup_u16 (const uint16_t * __a)
9012 return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
9015 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
9016 vld1q_dup_u32 (const uint32_t * __a)
9018 return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a);
9021 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
9022 vld1q_dup_p8 (const poly8_t * __a)
9024 return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a);
9027 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
9028 vld1q_dup_p16 (const poly16_t * __a)
9030 return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a);
9033 #ifdef __ARM_FEATURE_CRYPTO
9034 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
9035 vld1q_dup_p64 (const poly64_t * __a)
9037 return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
9040 #endif
9041 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
9042 vld1q_dup_s64 (const int64_t * __a)
9044 return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
9047 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
9048 vld1q_dup_u64 (const uint64_t * __a)
9050 return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a);
9053 #ifdef __ARM_FEATURE_CRYPTO
9054 __extension__ static __inline void __attribute__ ((__always_inline__))
9055 vst1_p64 (poly64_t * __a, poly64x1_t __b)
9057 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
9060 #endif
9061 __extension__ static __inline void __attribute__ ((__always_inline__))
9062 vst1_s8 (int8_t * __a, int8x8_t __b)
9064 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b);
9067 __extension__ static __inline void __attribute__ ((__always_inline__))
9068 vst1_s16 (int16_t * __a, int16x4_t __b)
9070 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b);
9073 __extension__ static __inline void __attribute__ ((__always_inline__))
9074 vst1_s32 (int32_t * __a, int32x2_t __b)
9076 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b);
9079 __extension__ static __inline void __attribute__ ((__always_inline__))
9080 vst1_s64 (int64_t * __a, int64x1_t __b)
9082 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b);
9085 __extension__ static __inline void __attribute__ ((__always_inline__))
9086 vst1_f32 (float32_t * __a, float32x2_t __b)
9088 __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
9091 __extension__ static __inline void __attribute__ ((__always_inline__))
9092 vst1_u8 (uint8_t * __a, uint8x8_t __b)
9094 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
9097 __extension__ static __inline void __attribute__ ((__always_inline__))
9098 vst1_u16 (uint16_t * __a, uint16x4_t __b)
9100 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
9103 __extension__ static __inline void __attribute__ ((__always_inline__))
9104 vst1_u32 (uint32_t * __a, uint32x2_t __b)
9106 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b);
9109 __extension__ static __inline void __attribute__ ((__always_inline__))
9110 vst1_u64 (uint64_t * __a, uint64x1_t __b)
9112 __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b);
9115 __extension__ static __inline void __attribute__ ((__always_inline__))
9116 vst1_p8 (poly8_t * __a, poly8x8_t __b)
9118 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b);
9121 __extension__ static __inline void __attribute__ ((__always_inline__))
9122 vst1_p16 (poly16_t * __a, poly16x4_t __b)
9124 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b);
9127 #ifdef __ARM_FEATURE_CRYPTO
9128 __extension__ static __inline void __attribute__ ((__always_inline__))
9129 vst1q_p64 (poly64_t * __a, poly64x2_t __b)
9131 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
9134 #endif
9135 __extension__ static __inline void __attribute__ ((__always_inline__))
9136 vst1q_s8 (int8_t * __a, int8x16_t __b)
9138 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b);
9141 __extension__ static __inline void __attribute__ ((__always_inline__))
9142 vst1q_s16 (int16_t * __a, int16x8_t __b)
9144 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b);
9147 __extension__ static __inline void __attribute__ ((__always_inline__))
9148 vst1q_s32 (int32_t * __a, int32x4_t __b)
9150 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b);
9153 __extension__ static __inline void __attribute__ ((__always_inline__))
9154 vst1q_s64 (int64_t * __a, int64x2_t __b)
9156 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b);
9159 __extension__ static __inline void __attribute__ ((__always_inline__))
9160 vst1q_f32 (float32_t * __a, float32x4_t __b)
9162 __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
9165 __extension__ static __inline void __attribute__ ((__always_inline__))
9166 vst1q_u8 (uint8_t * __a, uint8x16_t __b)
9168 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
9171 __extension__ static __inline void __attribute__ ((__always_inline__))
9172 vst1q_u16 (uint16_t * __a, uint16x8_t __b)
9174 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
9177 __extension__ static __inline void __attribute__ ((__always_inline__))
9178 vst1q_u32 (uint32_t * __a, uint32x4_t __b)
9180 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b);
9183 __extension__ static __inline void __attribute__ ((__always_inline__))
9184 vst1q_u64 (uint64_t * __a, uint64x2_t __b)
9186 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b);
9189 __extension__ static __inline void __attribute__ ((__always_inline__))
9190 vst1q_p8 (poly8_t * __a, poly8x16_t __b)
9192 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b);
9195 __extension__ static __inline void __attribute__ ((__always_inline__))
9196 vst1q_p16 (poly16_t * __a, poly16x8_t __b)
9198 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b);
9201 __extension__ static __inline void __attribute__ ((__always_inline__))
9202 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c)
9204 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c);
9207 __extension__ static __inline void __attribute__ ((__always_inline__))
9208 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c)
9210 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c);
9213 __extension__ static __inline void __attribute__ ((__always_inline__))
9214 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
9216 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c);
9219 __extension__ static __inline void __attribute__ ((__always_inline__))
9220 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
9222 __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
9225 __extension__ static __inline void __attribute__ ((__always_inline__))
9226 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c)
9228 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
9231 __extension__ static __inline void __attribute__ ((__always_inline__))
9232 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c)
9234 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
9237 __extension__ static __inline void __attribute__ ((__always_inline__))
9238 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c)
9240 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c);
9243 __extension__ static __inline void __attribute__ ((__always_inline__))
9244 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c)
9246 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c);
9249 __extension__ static __inline void __attribute__ ((__always_inline__))
9250 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c)
9252 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c);
9255 #ifdef __ARM_FEATURE_CRYPTO
9256 __extension__ static __inline void __attribute__ ((__always_inline__))
9257 vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c)
9259 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
9262 #endif
9263 __extension__ static __inline void __attribute__ ((__always_inline__))
9264 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c)
9266 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c);
9269 __extension__ static __inline void __attribute__ ((__always_inline__))
9270 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c)
9272 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c);
9275 __extension__ static __inline void __attribute__ ((__always_inline__))
9276 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c)
9278 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c);
9281 __extension__ static __inline void __attribute__ ((__always_inline__))
9282 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c)
9284 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c);
9287 __extension__ static __inline void __attribute__ ((__always_inline__))
9288 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
9290 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c);
9293 __extension__ static __inline void __attribute__ ((__always_inline__))
9294 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
9296 __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
9299 __extension__ static __inline void __attribute__ ((__always_inline__))
9300 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c)
9302 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
9305 __extension__ static __inline void __attribute__ ((__always_inline__))
9306 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c)
9308 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
9311 __extension__ static __inline void __attribute__ ((__always_inline__))
9312 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c)
9314 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c);
9317 __extension__ static __inline void __attribute__ ((__always_inline__))
9318 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c)
9320 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c);
9323 __extension__ static __inline void __attribute__ ((__always_inline__))
9324 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c)
9326 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c);
9329 #ifdef __ARM_FEATURE_CRYPTO
9330 __extension__ static __inline void __attribute__ ((__always_inline__))
9331 vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c)
9333 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
9336 #endif
9337 __extension__ static __inline void __attribute__ ((__always_inline__))
9338 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c)
9340 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c);
9343 __extension__ static __inline void __attribute__ ((__always_inline__))
9344 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c)
9346 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c);
9349 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
9350 vld2_s8 (const int8_t * __a)
9352 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9353 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
9354 return __rv.__i;
9357 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
9358 vld2_s16 (const int16_t * __a)
9360 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9361 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
9362 return __rv.__i;
9365 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
9366 vld2_s32 (const int32_t * __a)
9368 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9369 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
9370 return __rv.__i;
9373 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
9374 vld2_f32 (const float32_t * __a)
9376 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9377 __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
9378 return __rv.__i;
9381 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
9382 vld2_u8 (const uint8_t * __a)
9384 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9385 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
9386 return __rv.__i;
9389 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
9390 vld2_u16 (const uint16_t * __a)
9392 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9393 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
9394 return __rv.__i;
9397 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
9398 vld2_u32 (const uint32_t * __a)
9400 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9401 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a);
9402 return __rv.__i;
9405 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
9406 vld2_p8 (const poly8_t * __a)
9408 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9409 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a);
9410 return __rv.__i;
9413 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
9414 vld2_p16 (const poly16_t * __a)
9416 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9417 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a);
9418 return __rv.__i;
9421 #ifdef __ARM_FEATURE_CRYPTO
9422 __extension__ static __inline poly64x1x2_t __attribute__ ((__always_inline__))
9423 vld2_p64 (const poly64_t * __a)
9425 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9426 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9427 return __rv.__i;
9430 #endif
9431 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
9432 vld2_s64 (const int64_t * __a)
9434 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9435 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9436 return __rv.__i;
9439 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__))
9440 vld2_u64 (const uint64_t * __a)
9442 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9443 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a);
9444 return __rv.__i;
9447 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__))
9448 vld2q_s8 (const int8_t * __a)
9450 union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9451 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9452 return __rv.__i;
9455 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
9456 vld2q_s16 (const int16_t * __a)
9458 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9459 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9460 return __rv.__i;
9463 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
9464 vld2q_s32 (const int32_t * __a)
9466 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9467 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
9468 return __rv.__i;
9471 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
9472 vld2q_f32 (const float32_t * __a)
9474 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9475 __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
9476 return __rv.__i;
9479 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__))
9480 vld2q_u8 (const uint8_t * __a)
9482 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9483 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9484 return __rv.__i;
9487 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
9488 vld2q_u16 (const uint16_t * __a)
9490 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9491 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9492 return __rv.__i;
9495 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
9496 vld2q_u32 (const uint32_t * __a)
9498 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9499 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a);
9500 return __rv.__i;
9503 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__))
9504 vld2q_p8 (const poly8_t * __a)
9506 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv;
9507 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a);
9508 return __rv.__i;
9511 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
9512 vld2q_p16 (const poly16_t * __a)
9514 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9515 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a);
9516 return __rv.__i;
9519 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
9520 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c)
9522 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9523 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9524 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9525 return __rv.__i;
9528 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
9529 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c)
9531 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9532 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9533 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9534 return __rv.__i;
9537 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
9538 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c)
9540 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9541 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9542 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9543 return __rv.__i;
9546 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
9547 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
9549 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9550 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9551 __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9552 return __rv.__i;
9555 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
9556 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c)
9558 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9559 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9560 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9561 return __rv.__i;
9564 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
9565 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c)
9567 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9568 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9569 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9570 return __rv.__i;
9573 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
9574 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c)
9576 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9577 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9578 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9579 return __rv.__i;
9582 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
9583 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c)
9585 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9586 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9587 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
9588 return __rv.__i;
9591 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
9592 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c)
9594 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9595 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9596 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9597 return __rv.__i;
9600 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__))
9601 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c)
9603 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9604 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9605 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9606 return __rv.__i;
9609 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__))
9610 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c)
9612 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9613 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9614 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9615 return __rv.__i;
9618 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
9619 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
9621 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9622 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9623 __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
9624 return __rv.__i;
9627 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__))
9628 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c)
9630 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9631 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9632 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9633 return __rv.__i;
9636 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__))
9637 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c)
9639 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9640 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv;
9641 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
9642 return __rv.__i;
9645 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__))
9646 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c)
9648 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9649 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv;
9650 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
9651 return __rv.__i;
9654 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__))
9655 vld2_dup_s8 (const int8_t * __a)
9657 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9658 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9659 return __rv.__i;
9662 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__))
9663 vld2_dup_s16 (const int16_t * __a)
9665 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9666 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9667 return __rv.__i;
9670 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__))
9671 vld2_dup_s32 (const int32_t * __a)
9673 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9674 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
9675 return __rv.__i;
9678 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
9679 vld2_dup_f32 (const float32_t * __a)
9681 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9682 __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
9683 return __rv.__i;
9686 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__))
9687 vld2_dup_u8 (const uint8_t * __a)
9689 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9690 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9691 return __rv.__i;
9694 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__))
9695 vld2_dup_u16 (const uint16_t * __a)
9697 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9698 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9699 return __rv.__i;
9702 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__))
9703 vld2_dup_u32 (const uint32_t * __a)
9705 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv;
9706 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a);
9707 return __rv.__i;
9710 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__))
9711 vld2_dup_p8 (const poly8_t * __a)
9713 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv;
9714 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a);
9715 return __rv.__i;
9718 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__))
9719 vld2_dup_p16 (const poly16_t * __a)
9721 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv;
9722 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a);
9723 return __rv.__i;
9726 #ifdef __ARM_FEATURE_CRYPTO
9727 __extension__ static __inline poly64x1x2_t __attribute__ ((__always_inline__))
9728 vld2_dup_p64 (const poly64_t * __a)
9730 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9731 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9732 return __rv.__i;
9735 #endif
9736 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
9737 vld2_dup_s64 (const int64_t * __a)
9739 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9740 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9741 return __rv.__i;
9744 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__))
9745 vld2_dup_u64 (const uint64_t * __a)
9747 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv;
9748 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a);
9749 return __rv.__i;
9752 __extension__ static __inline void __attribute__ ((__always_inline__))
9753 vst2_s8 (int8_t * __a, int8x8x2_t __b)
9755 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9756 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9759 __extension__ static __inline void __attribute__ ((__always_inline__))
9760 vst2_s16 (int16_t * __a, int16x4x2_t __b)
9762 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9763 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9766 __extension__ static __inline void __attribute__ ((__always_inline__))
9767 vst2_s32 (int32_t * __a, int32x2x2_t __b)
9769 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9770 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
9773 __extension__ static __inline void __attribute__ ((__always_inline__))
9774 vst2_f32 (float32_t * __a, float32x2x2_t __b)
9776 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9777 __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
9780 __extension__ static __inline void __attribute__ ((__always_inline__))
9781 vst2_u8 (uint8_t * __a, uint8x8x2_t __b)
9783 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9784 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9787 __extension__ static __inline void __attribute__ ((__always_inline__))
9788 vst2_u16 (uint16_t * __a, uint16x4x2_t __b)
9790 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9791 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9794 __extension__ static __inline void __attribute__ ((__always_inline__))
9795 vst2_u32 (uint32_t * __a, uint32x2x2_t __b)
9797 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9798 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o);
9801 __extension__ static __inline void __attribute__ ((__always_inline__))
9802 vst2_p8 (poly8_t * __a, poly8x8x2_t __b)
9804 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9805 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o);
9808 __extension__ static __inline void __attribute__ ((__always_inline__))
9809 vst2_p16 (poly16_t * __a, poly16x4x2_t __b)
9811 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9812 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o);
9815 #ifdef __ARM_FEATURE_CRYPTO
9816 __extension__ static __inline void __attribute__ ((__always_inline__))
9817 vst2_p64 (poly64_t * __a, poly64x1x2_t __b)
9819 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9820 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9823 #endif
9824 __extension__ static __inline void __attribute__ ((__always_inline__))
9825 vst2_s64 (int64_t * __a, int64x1x2_t __b)
9827 union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9828 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9831 __extension__ static __inline void __attribute__ ((__always_inline__))
9832 vst2_u64 (uint64_t * __a, uint64x1x2_t __b)
9834 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9835 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o);
9838 __extension__ static __inline void __attribute__ ((__always_inline__))
9839 vst2q_s8 (int8_t * __a, int8x16x2_t __b)
9841 union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9842 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9845 __extension__ static __inline void __attribute__ ((__always_inline__))
9846 vst2q_s16 (int16_t * __a, int16x8x2_t __b)
9848 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9849 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9852 __extension__ static __inline void __attribute__ ((__always_inline__))
9853 vst2q_s32 (int32_t * __a, int32x4x2_t __b)
9855 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9856 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
9859 __extension__ static __inline void __attribute__ ((__always_inline__))
9860 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
9862 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9863 __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
9866 __extension__ static __inline void __attribute__ ((__always_inline__))
9867 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b)
9869 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9870 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9873 __extension__ static __inline void __attribute__ ((__always_inline__))
9874 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b)
9876 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9877 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9880 __extension__ static __inline void __attribute__ ((__always_inline__))
9881 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b)
9883 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9884 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o);
9887 __extension__ static __inline void __attribute__ ((__always_inline__))
9888 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b)
9890 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9891 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o);
9894 __extension__ static __inline void __attribute__ ((__always_inline__))
9895 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b)
9897 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9898 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o);
9901 __extension__ static __inline void __attribute__ ((__always_inline__))
9902 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c)
9904 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9905 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9908 __extension__ static __inline void __attribute__ ((__always_inline__))
9909 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c)
9911 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9912 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9915 __extension__ static __inline void __attribute__ ((__always_inline__))
9916 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c)
9918 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9919 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9922 __extension__ static __inline void __attribute__ ((__always_inline__))
9923 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
9925 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9926 __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9929 __extension__ static __inline void __attribute__ ((__always_inline__))
9930 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c)
9932 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9933 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9936 __extension__ static __inline void __attribute__ ((__always_inline__))
9937 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c)
9939 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9940 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9943 __extension__ static __inline void __attribute__ ((__always_inline__))
9944 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c)
9946 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9947 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
9950 __extension__ static __inline void __attribute__ ((__always_inline__))
9951 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c)
9953 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9954 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
9957 __extension__ static __inline void __attribute__ ((__always_inline__))
9958 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c)
9960 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
9961 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9964 __extension__ static __inline void __attribute__ ((__always_inline__))
9965 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c)
9967 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9968 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9971 __extension__ static __inline void __attribute__ ((__always_inline__))
9972 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c)
9974 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9975 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9978 __extension__ static __inline void __attribute__ ((__always_inline__))
9979 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
9981 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9982 __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
9985 __extension__ static __inline void __attribute__ ((__always_inline__))
9986 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c)
9988 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9989 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
9992 __extension__ static __inline void __attribute__ ((__always_inline__))
9993 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c)
9995 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
9996 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
9999 __extension__ static __inline void __attribute__ ((__always_inline__))
10000 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c)
10002 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
10003 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10006 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
10007 vld3_s8 (const int8_t * __a)
10009 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10010 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
10011 return __rv.__i;
10014 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
10015 vld3_s16 (const int16_t * __a)
10017 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10018 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
10019 return __rv.__i;
10022 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
10023 vld3_s32 (const int32_t * __a)
10025 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10026 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
10027 return __rv.__i;
10030 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
10031 vld3_f32 (const float32_t * __a)
10033 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10034 __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
10035 return __rv.__i;
10038 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
10039 vld3_u8 (const uint8_t * __a)
10041 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10042 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
10043 return __rv.__i;
10046 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
10047 vld3_u16 (const uint16_t * __a)
10049 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10050 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
10051 return __rv.__i;
10054 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
10055 vld3_u32 (const uint32_t * __a)
10057 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10058 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a);
10059 return __rv.__i;
10062 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
10063 vld3_p8 (const poly8_t * __a)
10065 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10066 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a);
10067 return __rv.__i;
10070 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
10071 vld3_p16 (const poly16_t * __a)
10073 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10074 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a);
10075 return __rv.__i;
10078 #ifdef __ARM_FEATURE_CRYPTO
10079 __extension__ static __inline poly64x1x3_t __attribute__ ((__always_inline__))
10080 vld3_p64 (const poly64_t * __a)
10082 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10083 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
10084 return __rv.__i;
10087 #endif
10088 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__))
10089 vld3_s64 (const int64_t * __a)
10091 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10092 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
10093 return __rv.__i;
10096 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__))
10097 vld3_u64 (const uint64_t * __a)
10099 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10100 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a);
10101 return __rv.__i;
10104 __extension__ static __inline int8x16x3_t __attribute__ ((__always_inline__))
10105 vld3q_s8 (const int8_t * __a)
10107 union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
10108 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
10109 return __rv.__i;
10112 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__))
10113 vld3q_s16 (const int16_t * __a)
10115 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10116 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
10117 return __rv.__i;
10120 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__))
10121 vld3q_s32 (const int32_t * __a)
10123 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10124 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
10125 return __rv.__i;
10128 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
10129 vld3q_f32 (const float32_t * __a)
10131 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10132 __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
10133 return __rv.__i;
10136 __extension__ static __inline uint8x16x3_t __attribute__ ((__always_inline__))
10137 vld3q_u8 (const uint8_t * __a)
10139 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv;
10140 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
10141 return __rv.__i;
10144 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__))
10145 vld3q_u16 (const uint16_t * __a)
10147 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10148 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
10149 return __rv.__i;
10152 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__))
10153 vld3q_u32 (const uint32_t * __a)
10155 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10156 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a);
10157 return __rv.__i;
10160 __extension__ static __inline poly8x16x3_t __attribute__ ((__always_inline__))
10161 vld3q_p8 (const poly8_t * __a)
10163 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv;
10164 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a);
10165 return __rv.__i;
10168 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__))
10169 vld3q_p16 (const poly16_t * __a)
10171 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10172 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a);
10173 return __rv.__i;
10176 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
10177 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c)
10179 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10180 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10181 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10182 return __rv.__i;
10185 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
10186 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c)
10188 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10189 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10190 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10191 return __rv.__i;
10194 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
10195 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c)
10197 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10198 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10199 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10200 return __rv.__i;
10203 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
10204 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
10206 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10207 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10208 __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10209 return __rv.__i;
10212 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
10213 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c)
10215 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10216 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10217 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10218 return __rv.__i;
10221 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
10222 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c)
10224 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10225 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10226 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10227 return __rv.__i;
10230 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
10231 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c)
10233 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10234 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10235 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10236 return __rv.__i;
10239 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
10240 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c)
10242 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10243 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10244 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10245 return __rv.__i;
10248 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
10249 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c)
10251 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10252 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10253 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10254 return __rv.__i;
10257 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__))
10258 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c)
10260 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10261 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10262 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10263 return __rv.__i;
10266 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__))
10267 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c)
10269 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10270 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10271 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10272 return __rv.__i;
10275 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
10276 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
10278 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10279 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10280 __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10281 return __rv.__i;
10284 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__))
10285 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c)
10287 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10288 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10289 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10290 return __rv.__i;
10293 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__))
10294 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c)
10296 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10297 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv;
10298 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10299 return __rv.__i;
10302 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__))
10303 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c)
10305 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10306 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv;
10307 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10308 return __rv.__i;
10311 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__))
10312 vld3_dup_s8 (const int8_t * __a)
10314 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10315 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
10316 return __rv.__i;
10319 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__))
10320 vld3_dup_s16 (const int16_t * __a)
10322 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10323 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
10324 return __rv.__i;
10327 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__))
10328 vld3_dup_s32 (const int32_t * __a)
10330 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10331 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
10332 return __rv.__i;
10335 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
10336 vld3_dup_f32 (const float32_t * __a)
10338 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10339 __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
10340 return __rv.__i;
10343 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__))
10344 vld3_dup_u8 (const uint8_t * __a)
10346 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10347 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
10348 return __rv.__i;
10351 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__))
10352 vld3_dup_u16 (const uint16_t * __a)
10354 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10355 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
10356 return __rv.__i;
10359 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__))
10360 vld3_dup_u32 (const uint32_t * __a)
10362 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv;
10363 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a);
10364 return __rv.__i;
10367 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__))
10368 vld3_dup_p8 (const poly8_t * __a)
10370 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv;
10371 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a);
10372 return __rv.__i;
10375 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__))
10376 vld3_dup_p16 (const poly16_t * __a)
10378 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv;
10379 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a);
10380 return __rv.__i;
10383 #ifdef __ARM_FEATURE_CRYPTO
10384 __extension__ static __inline poly64x1x3_t __attribute__ ((__always_inline__))
10385 vld3_dup_p64 (const poly64_t * __a)
10387 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10388 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
10389 return __rv.__i;
10392 #endif
10393 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__))
10394 vld3_dup_s64 (const int64_t * __a)
10396 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10397 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
10398 return __rv.__i;
10401 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__))
10402 vld3_dup_u64 (const uint64_t * __a)
10404 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv;
10405 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a);
10406 return __rv.__i;
10409 __extension__ static __inline void __attribute__ ((__always_inline__))
10410 vst3_s8 (int8_t * __a, int8x8x3_t __b)
10412 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10413 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10416 __extension__ static __inline void __attribute__ ((__always_inline__))
10417 vst3_s16 (int16_t * __a, int16x4x3_t __b)
10419 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10420 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10423 __extension__ static __inline void __attribute__ ((__always_inline__))
10424 vst3_s32 (int32_t * __a, int32x2x3_t __b)
10426 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10427 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
10430 __extension__ static __inline void __attribute__ ((__always_inline__))
10431 vst3_f32 (float32_t * __a, float32x2x3_t __b)
10433 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10434 __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
10437 __extension__ static __inline void __attribute__ ((__always_inline__))
10438 vst3_u8 (uint8_t * __a, uint8x8x3_t __b)
10440 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10441 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10444 __extension__ static __inline void __attribute__ ((__always_inline__))
10445 vst3_u16 (uint16_t * __a, uint16x4x3_t __b)
10447 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10448 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10451 __extension__ static __inline void __attribute__ ((__always_inline__))
10452 vst3_u32 (uint32_t * __a, uint32x2x3_t __b)
10454 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10455 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o);
10458 __extension__ static __inline void __attribute__ ((__always_inline__))
10459 vst3_p8 (poly8_t * __a, poly8x8x3_t __b)
10461 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10462 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o);
10465 __extension__ static __inline void __attribute__ ((__always_inline__))
10466 vst3_p16 (poly16_t * __a, poly16x4x3_t __b)
10468 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10469 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o);
10472 #ifdef __ARM_FEATURE_CRYPTO
10473 __extension__ static __inline void __attribute__ ((__always_inline__))
10474 vst3_p64 (poly64_t * __a, poly64x1x3_t __b)
10476 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10477 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10480 #endif
10481 __extension__ static __inline void __attribute__ ((__always_inline__))
10482 vst3_s64 (int64_t * __a, int64x1x3_t __b)
10484 union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10485 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10488 __extension__ static __inline void __attribute__ ((__always_inline__))
10489 vst3_u64 (uint64_t * __a, uint64x1x3_t __b)
10491 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10492 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o);
10495 __extension__ static __inline void __attribute__ ((__always_inline__))
10496 vst3q_s8 (int8_t * __a, int8x16x3_t __b)
10498 union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10499 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10502 __extension__ static __inline void __attribute__ ((__always_inline__))
10503 vst3q_s16 (int16_t * __a, int16x8x3_t __b)
10505 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10506 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10509 __extension__ static __inline void __attribute__ ((__always_inline__))
10510 vst3q_s32 (int32_t * __a, int32x4x3_t __b)
10512 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10513 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
10516 __extension__ static __inline void __attribute__ ((__always_inline__))
10517 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
10519 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10520 __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
10523 __extension__ static __inline void __attribute__ ((__always_inline__))
10524 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b)
10526 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10527 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10530 __extension__ static __inline void __attribute__ ((__always_inline__))
10531 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b)
10533 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10534 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10537 __extension__ static __inline void __attribute__ ((__always_inline__))
10538 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b)
10540 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10541 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o);
10544 __extension__ static __inline void __attribute__ ((__always_inline__))
10545 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b)
10547 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10548 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o);
10551 __extension__ static __inline void __attribute__ ((__always_inline__))
10552 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b)
10554 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10555 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o);
10558 __extension__ static __inline void __attribute__ ((__always_inline__))
10559 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c)
10561 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10562 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10565 __extension__ static __inline void __attribute__ ((__always_inline__))
10566 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c)
10568 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10569 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10572 __extension__ static __inline void __attribute__ ((__always_inline__))
10573 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c)
10575 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10576 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10579 __extension__ static __inline void __attribute__ ((__always_inline__))
10580 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
10582 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10583 __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10586 __extension__ static __inline void __attribute__ ((__always_inline__))
10587 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c)
10589 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10590 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10593 __extension__ static __inline void __attribute__ ((__always_inline__))
10594 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c)
10596 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10597 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10600 __extension__ static __inline void __attribute__ ((__always_inline__))
10601 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c)
10603 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10604 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
10607 __extension__ static __inline void __attribute__ ((__always_inline__))
10608 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c)
10610 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10611 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
10614 __extension__ static __inline void __attribute__ ((__always_inline__))
10615 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c)
10617 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
10618 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10621 __extension__ static __inline void __attribute__ ((__always_inline__))
10622 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c)
10624 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10625 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10628 __extension__ static __inline void __attribute__ ((__always_inline__))
10629 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c)
10631 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10632 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10635 __extension__ static __inline void __attribute__ ((__always_inline__))
10636 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
10638 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10639 __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
10642 __extension__ static __inline void __attribute__ ((__always_inline__))
10643 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c)
10645 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10646 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10649 __extension__ static __inline void __attribute__ ((__always_inline__))
10650 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c)
10652 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10653 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
10656 __extension__ static __inline void __attribute__ ((__always_inline__))
10657 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c)
10659 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
10660 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
10663 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
10664 vld4_s8 (const int8_t * __a)
10666 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10667 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10668 return __rv.__i;
10671 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
10672 vld4_s16 (const int16_t * __a)
10674 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10675 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10676 return __rv.__i;
10679 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
10680 vld4_s32 (const int32_t * __a)
10682 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10683 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
10684 return __rv.__i;
10687 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
10688 vld4_f32 (const float32_t * __a)
10690 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10691 __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
10692 return __rv.__i;
10695 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
10696 vld4_u8 (const uint8_t * __a)
10698 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10699 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10700 return __rv.__i;
10703 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
10704 vld4_u16 (const uint16_t * __a)
10706 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10707 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10708 return __rv.__i;
10711 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
10712 vld4_u32 (const uint32_t * __a)
10714 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10715 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a);
10716 return __rv.__i;
10719 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
10720 vld4_p8 (const poly8_t * __a)
10722 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10723 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a);
10724 return __rv.__i;
10727 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
10728 vld4_p16 (const poly16_t * __a)
10730 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10731 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a);
10732 return __rv.__i;
10735 #ifdef __ARM_FEATURE_CRYPTO
10736 __extension__ static __inline poly64x1x4_t __attribute__ ((__always_inline__))
10737 vld4_p64 (const poly64_t * __a)
10739 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10740 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10741 return __rv.__i;
10744 #endif
10745 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__))
10746 vld4_s64 (const int64_t * __a)
10748 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10749 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10750 return __rv.__i;
10753 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__))
10754 vld4_u64 (const uint64_t * __a)
10756 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
10757 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a);
10758 return __rv.__i;
10761 __extension__ static __inline int8x16x4_t __attribute__ ((__always_inline__))
10762 vld4q_s8 (const int8_t * __a)
10764 union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10765 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10766 return __rv.__i;
10769 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__))
10770 vld4q_s16 (const int16_t * __a)
10772 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10773 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10774 return __rv.__i;
10777 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__))
10778 vld4q_s32 (const int32_t * __a)
10780 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10781 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
10782 return __rv.__i;
10785 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
10786 vld4q_f32 (const float32_t * __a)
10788 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10789 __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
10790 return __rv.__i;
10793 __extension__ static __inline uint8x16x4_t __attribute__ ((__always_inline__))
10794 vld4q_u8 (const uint8_t * __a)
10796 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10797 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10798 return __rv.__i;
10801 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__))
10802 vld4q_u16 (const uint16_t * __a)
10804 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10805 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10806 return __rv.__i;
10809 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__))
10810 vld4q_u32 (const uint32_t * __a)
10812 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10813 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a);
10814 return __rv.__i;
10817 __extension__ static __inline poly8x16x4_t __attribute__ ((__always_inline__))
10818 vld4q_p8 (const poly8_t * __a)
10820 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv;
10821 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a);
10822 return __rv.__i;
10825 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__))
10826 vld4q_p16 (const poly16_t * __a)
10828 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10829 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a);
10830 return __rv.__i;
10833 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
10834 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c)
10836 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10837 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10838 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10839 return __rv.__i;
10842 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
10843 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c)
10845 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10846 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10847 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10848 return __rv.__i;
10851 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
10852 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c)
10854 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10855 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10856 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10857 return __rv.__i;
10860 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
10861 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
10863 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10864 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10865 __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10866 return __rv.__i;
10869 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
10870 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c)
10872 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10873 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10874 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10875 return __rv.__i;
10878 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
10879 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c)
10881 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10882 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10883 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10884 return __rv.__i;
10887 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
10888 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c)
10890 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10891 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10892 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10893 return __rv.__i;
10896 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
10897 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c)
10899 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10900 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10901 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c);
10902 return __rv.__i;
10905 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
10906 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c)
10908 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
10909 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10910 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10911 return __rv.__i;
10914 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__))
10915 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c)
10917 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10918 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10919 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10920 return __rv.__i;
10923 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__))
10924 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c)
10926 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10927 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10928 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10929 return __rv.__i;
10932 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
10933 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
10935 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10936 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10937 __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
10938 return __rv.__i;
10941 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__))
10942 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c)
10944 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10945 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10946 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10947 return __rv.__i;
10950 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__))
10951 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c)
10953 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10954 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv;
10955 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c);
10956 return __rv.__i;
10959 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__))
10960 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c)
10962 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
10963 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv;
10964 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c);
10965 return __rv.__i;
10968 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__))
10969 vld4_dup_s8 (const int8_t * __a)
10971 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv;
10972 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
10973 return __rv.__i;
10976 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__))
10977 vld4_dup_s16 (const int16_t * __a)
10979 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv;
10980 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
10981 return __rv.__i;
10984 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__))
10985 vld4_dup_s32 (const int32_t * __a)
10987 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10988 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
10989 return __rv.__i;
10992 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
10993 vld4_dup_f32 (const float32_t * __a)
10995 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
10996 __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
10997 return __rv.__i;
11000 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__))
11001 vld4_dup_u8 (const uint8_t * __a)
11003 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv;
11004 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
11005 return __rv.__i;
11008 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__))
11009 vld4_dup_u16 (const uint16_t * __a)
11011 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv;
11012 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
11013 return __rv.__i;
11016 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__))
11017 vld4_dup_u32 (const uint32_t * __a)
11019 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv;
11020 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a);
11021 return __rv.__i;
11024 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__))
11025 vld4_dup_p8 (const poly8_t * __a)
11027 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv;
11028 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a);
11029 return __rv.__i;
11032 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__))
11033 vld4_dup_p16 (const poly16_t * __a)
11035 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv;
11036 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a);
11037 return __rv.__i;
11040 #ifdef __ARM_FEATURE_CRYPTO
11041 __extension__ static __inline poly64x1x4_t __attribute__ ((__always_inline__))
11042 vld4_dup_p64 (const poly64_t * __a)
11044 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv;
11045 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
11046 return __rv.__i;
11049 #endif
11050 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__))
11051 vld4_dup_s64 (const int64_t * __a)
11053 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv;
11054 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
11055 return __rv.__i;
11058 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__))
11059 vld4_dup_u64 (const uint64_t * __a)
11061 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv;
11062 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a);
11063 return __rv.__i;
11066 __extension__ static __inline void __attribute__ ((__always_inline__))
11067 vst4_s8 (int8_t * __a, int8x8x4_t __b)
11069 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11070 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11073 __extension__ static __inline void __attribute__ ((__always_inline__))
11074 vst4_s16 (int16_t * __a, int16x4x4_t __b)
11076 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11077 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11080 __extension__ static __inline void __attribute__ ((__always_inline__))
11081 vst4_s32 (int32_t * __a, int32x2x4_t __b)
11083 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11084 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
11087 __extension__ static __inline void __attribute__ ((__always_inline__))
11088 vst4_f32 (float32_t * __a, float32x2x4_t __b)
11090 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11091 __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
11094 __extension__ static __inline void __attribute__ ((__always_inline__))
11095 vst4_u8 (uint8_t * __a, uint8x8x4_t __b)
11097 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11098 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11101 __extension__ static __inline void __attribute__ ((__always_inline__))
11102 vst4_u16 (uint16_t * __a, uint16x4x4_t __b)
11104 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11105 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11108 __extension__ static __inline void __attribute__ ((__always_inline__))
11109 vst4_u32 (uint32_t * __a, uint32x2x4_t __b)
11111 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11112 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o);
11115 __extension__ static __inline void __attribute__ ((__always_inline__))
11116 vst4_p8 (poly8_t * __a, poly8x8x4_t __b)
11118 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11119 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o);
11122 __extension__ static __inline void __attribute__ ((__always_inline__))
11123 vst4_p16 (poly16_t * __a, poly16x4x4_t __b)
11125 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11126 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o);
11129 #ifdef __ARM_FEATURE_CRYPTO
11130 __extension__ static __inline void __attribute__ ((__always_inline__))
11131 vst4_p64 (poly64_t * __a, poly64x1x4_t __b)
11133 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11134 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
11137 #endif
11138 __extension__ static __inline void __attribute__ ((__always_inline__))
11139 vst4_s64 (int64_t * __a, int64x1x4_t __b)
11141 union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11142 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
11145 __extension__ static __inline void __attribute__ ((__always_inline__))
11146 vst4_u64 (uint64_t * __a, uint64x1x4_t __b)
11148 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11149 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o);
11152 __extension__ static __inline void __attribute__ ((__always_inline__))
11153 vst4q_s8 (int8_t * __a, int8x16x4_t __b)
11155 union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11156 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11159 __extension__ static __inline void __attribute__ ((__always_inline__))
11160 vst4q_s16 (int16_t * __a, int16x8x4_t __b)
11162 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11163 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11166 __extension__ static __inline void __attribute__ ((__always_inline__))
11167 vst4q_s32 (int32_t * __a, int32x4x4_t __b)
11169 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11170 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
11173 __extension__ static __inline void __attribute__ ((__always_inline__))
11174 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
11176 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11177 __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
11180 __extension__ static __inline void __attribute__ ((__always_inline__))
11181 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b)
11183 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11184 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11187 __extension__ static __inline void __attribute__ ((__always_inline__))
11188 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b)
11190 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11191 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11194 __extension__ static __inline void __attribute__ ((__always_inline__))
11195 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b)
11197 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11198 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o);
11201 __extension__ static __inline void __attribute__ ((__always_inline__))
11202 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b)
11204 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11205 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o);
11208 __extension__ static __inline void __attribute__ ((__always_inline__))
11209 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b)
11211 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11212 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o);
11215 __extension__ static __inline void __attribute__ ((__always_inline__))
11216 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c)
11218 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11219 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11222 __extension__ static __inline void __attribute__ ((__always_inline__))
11223 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c)
11225 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11226 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11229 __extension__ static __inline void __attribute__ ((__always_inline__))
11230 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c)
11232 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11233 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11236 __extension__ static __inline void __attribute__ ((__always_inline__))
11237 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
11239 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11240 __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
11243 __extension__ static __inline void __attribute__ ((__always_inline__))
11244 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c)
11246 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11247 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11250 __extension__ static __inline void __attribute__ ((__always_inline__))
11251 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c)
11253 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11254 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11257 __extension__ static __inline void __attribute__ ((__always_inline__))
11258 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c)
11260 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11261 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c);
11264 __extension__ static __inline void __attribute__ ((__always_inline__))
11265 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c)
11267 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11268 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c);
11271 __extension__ static __inline void __attribute__ ((__always_inline__))
11272 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c)
11274 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
11275 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11278 __extension__ static __inline void __attribute__ ((__always_inline__))
11279 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c)
11281 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11282 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11285 __extension__ static __inline void __attribute__ ((__always_inline__))
11286 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c)
11288 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11289 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
11292 __extension__ static __inline void __attribute__ ((__always_inline__))
11293 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
11295 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11296 __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
11299 __extension__ static __inline void __attribute__ ((__always_inline__))
11300 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c)
11302 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11303 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11306 __extension__ static __inline void __attribute__ ((__always_inline__))
11307 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c)
11309 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11310 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c);
11313 __extension__ static __inline void __attribute__ ((__always_inline__))
11314 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c)
11316 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
11317 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c);
11320 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11321 vand_s8 (int8x8_t __a, int8x8_t __b)
11323 return __a & __b;
11326 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11327 vand_s16 (int16x4_t __a, int16x4_t __b)
11329 return __a & __b;
11332 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11333 vand_s32 (int32x2_t __a, int32x2_t __b)
11335 return __a & __b;
11338 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11339 vand_u8 (uint8x8_t __a, uint8x8_t __b)
11341 return __a & __b;
11344 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11345 vand_u16 (uint16x4_t __a, uint16x4_t __b)
11347 return __a & __b;
11350 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11351 vand_u32 (uint32x2_t __a, uint32x2_t __b)
11353 return __a & __b;
11356 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11357 vand_s64 (int64x1_t __a, int64x1_t __b)
11359 return __a & __b;
11362 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11363 vand_u64 (uint64x1_t __a, uint64x1_t __b)
11365 return __a & __b;
11368 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11369 vandq_s8 (int8x16_t __a, int8x16_t __b)
11371 return __a & __b;
11374 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11375 vandq_s16 (int16x8_t __a, int16x8_t __b)
11377 return __a & __b;
11380 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11381 vandq_s32 (int32x4_t __a, int32x4_t __b)
11383 return __a & __b;
11386 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11387 vandq_s64 (int64x2_t __a, int64x2_t __b)
11389 return __a & __b;
11392 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11393 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
11395 return __a & __b;
11398 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11399 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
11401 return __a & __b;
11404 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11405 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
11407 return __a & __b;
11410 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11411 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
11413 return __a & __b;
11416 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11417 vorr_s8 (int8x8_t __a, int8x8_t __b)
11419 return __a | __b;
11422 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11423 vorr_s16 (int16x4_t __a, int16x4_t __b)
11425 return __a | __b;
11428 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11429 vorr_s32 (int32x2_t __a, int32x2_t __b)
11431 return __a | __b;
11434 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11435 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
11437 return __a | __b;
11440 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11441 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
11443 return __a | __b;
11446 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11447 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
11449 return __a | __b;
11452 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11453 vorr_s64 (int64x1_t __a, int64x1_t __b)
11455 return __a | __b;
11458 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11459 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
11461 return __a | __b;
11464 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11465 vorrq_s8 (int8x16_t __a, int8x16_t __b)
11467 return __a | __b;
11470 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11471 vorrq_s16 (int16x8_t __a, int16x8_t __b)
11473 return __a | __b;
11476 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11477 vorrq_s32 (int32x4_t __a, int32x4_t __b)
11479 return __a | __b;
11482 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11483 vorrq_s64 (int64x2_t __a, int64x2_t __b)
11485 return __a | __b;
11488 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11489 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
11491 return __a | __b;
11494 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11495 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
11497 return __a | __b;
11500 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11501 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
11503 return __a | __b;
11506 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11507 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
11509 return __a | __b;
11512 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11513 veor_s8 (int8x8_t __a, int8x8_t __b)
11515 return __a ^ __b;
11518 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11519 veor_s16 (int16x4_t __a, int16x4_t __b)
11521 return __a ^ __b;
11524 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11525 veor_s32 (int32x2_t __a, int32x2_t __b)
11527 return __a ^ __b;
11530 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11531 veor_u8 (uint8x8_t __a, uint8x8_t __b)
11533 return __a ^ __b;
11536 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11537 veor_u16 (uint16x4_t __a, uint16x4_t __b)
11539 return __a ^ __b;
11542 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11543 veor_u32 (uint32x2_t __a, uint32x2_t __b)
11545 return __a ^ __b;
11548 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11549 veor_s64 (int64x1_t __a, int64x1_t __b)
11551 return __a ^ __b;
11554 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11555 veor_u64 (uint64x1_t __a, uint64x1_t __b)
11557 return __a ^ __b;
11560 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11561 veorq_s8 (int8x16_t __a, int8x16_t __b)
11563 return __a ^ __b;
11566 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11567 veorq_s16 (int16x8_t __a, int16x8_t __b)
11569 return __a ^ __b;
11572 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11573 veorq_s32 (int32x4_t __a, int32x4_t __b)
11575 return __a ^ __b;
11578 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11579 veorq_s64 (int64x2_t __a, int64x2_t __b)
11581 return __a ^ __b;
11584 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11585 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
11587 return __a ^ __b;
11590 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11591 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
11593 return __a ^ __b;
11596 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11597 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
11599 return __a ^ __b;
11602 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11603 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
11605 return __a ^ __b;
11608 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11609 vbic_s8 (int8x8_t __a, int8x8_t __b)
11611 return __a & ~__b;
11614 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11615 vbic_s16 (int16x4_t __a, int16x4_t __b)
11617 return __a & ~__b;
11620 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11621 vbic_s32 (int32x2_t __a, int32x2_t __b)
11623 return __a & ~__b;
11626 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11627 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
11629 return __a & ~__b;
11632 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11633 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
11635 return __a & ~__b;
11638 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11639 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
11641 return __a & ~__b;
11644 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11645 vbic_s64 (int64x1_t __a, int64x1_t __b)
11647 return __a & ~__b;
11650 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11651 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
11653 return __a & ~__b;
11656 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11657 vbicq_s8 (int8x16_t __a, int8x16_t __b)
11659 return __a & ~__b;
11662 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11663 vbicq_s16 (int16x8_t __a, int16x8_t __b)
11665 return __a & ~__b;
11668 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11669 vbicq_s32 (int32x4_t __a, int32x4_t __b)
11671 return __a & ~__b;
11674 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11675 vbicq_s64 (int64x2_t __a, int64x2_t __b)
11677 return __a & ~__b;
11680 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11681 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
11683 return __a & ~__b;
11686 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11687 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
11689 return __a & ~__b;
11692 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11693 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
11695 return __a & ~__b;
11698 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11699 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
11701 return __a & ~__b;
11704 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
11705 vorn_s8 (int8x8_t __a, int8x8_t __b)
11707 return __a | ~__b;
11710 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
11711 vorn_s16 (int16x4_t __a, int16x4_t __b)
11713 return __a | ~__b;
11716 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
11717 vorn_s32 (int32x2_t __a, int32x2_t __b)
11719 return __a | ~__b;
11722 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
11723 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
11725 return __a | ~__b;
11728 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
11729 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
11731 return __a | ~__b;
11734 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
11735 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
11737 return __a | ~__b;
11740 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
11741 vorn_s64 (int64x1_t __a, int64x1_t __b)
11743 return __a | ~__b;
11746 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
11747 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
11749 return __a | ~__b;
11752 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
11753 vornq_s8 (int8x16_t __a, int8x16_t __b)
11755 return __a | ~__b;
11758 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
11759 vornq_s16 (int16x8_t __a, int16x8_t __b)
11761 return __a | ~__b;
11764 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
11765 vornq_s32 (int32x4_t __a, int32x4_t __b)
11767 return __a | ~__b;
11770 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
11771 vornq_s64 (int64x2_t __a, int64x2_t __b)
11773 return __a | ~__b;
11776 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
11777 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
11779 return __a | ~__b;
11782 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
11783 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
11785 return __a | ~__b;
11788 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
11789 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
11791 return __a | ~__b;
11794 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
11795 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
11797 return __a | ~__b;
11800 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11801 vreinterpret_p8_p16 (poly16x4_t __a)
11803 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11806 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11807 vreinterpret_p8_f32 (float32x2_t __a)
11809 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
11812 #ifdef __ARM_FEATURE_CRYPTO
11813 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11814 vreinterpret_p8_p64 (poly64x1_t __a)
11816 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11819 #endif
11820 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11821 vreinterpret_p8_s64 (int64x1_t __a)
11823 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
11826 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11827 vreinterpret_p8_u64 (uint64x1_t __a)
11829 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
11832 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11833 vreinterpret_p8_s8 (int8x8_t __a)
11835 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a);
11838 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11839 vreinterpret_p8_s16 (int16x4_t __a)
11841 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
11844 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11845 vreinterpret_p8_s32 (int32x2_t __a)
11847 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
11850 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11851 vreinterpret_p8_u8 (uint8x8_t __a)
11853 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
11856 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11857 vreinterpret_p8_u16 (uint16x4_t __a)
11859 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
11862 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
11863 vreinterpret_p8_u32 (uint32x2_t __a)
11865 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
11868 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11869 vreinterpret_p16_p8 (poly8x8_t __a)
11871 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11874 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11875 vreinterpret_p16_f32 (float32x2_t __a)
11877 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
11880 #ifdef __ARM_FEATURE_CRYPTO
11881 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11882 vreinterpret_p16_p64 (poly64x1_t __a)
11884 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11887 #endif
11888 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11889 vreinterpret_p16_s64 (int64x1_t __a)
11891 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
11894 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11895 vreinterpret_p16_u64 (uint64x1_t __a)
11897 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
11900 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11901 vreinterpret_p16_s8 (int8x8_t __a)
11903 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
11906 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11907 vreinterpret_p16_s16 (int16x4_t __a)
11909 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a);
11912 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11913 vreinterpret_p16_s32 (int32x2_t __a)
11915 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
11918 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11919 vreinterpret_p16_u8 (uint8x8_t __a)
11921 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
11924 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11925 vreinterpret_p16_u16 (uint16x4_t __a)
11927 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
11930 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
11931 vreinterpret_p16_u32 (uint32x2_t __a)
11933 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
11936 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11937 vreinterpret_f32_p8 (poly8x8_t __a)
11939 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a);
11942 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11943 vreinterpret_f32_p16 (poly16x4_t __a)
11945 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a);
11948 #ifdef __ARM_FEATURE_CRYPTO
11949 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11950 vreinterpret_f32_p64 (poly64x1_t __a)
11952 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a);
11955 #endif
11956 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11957 vreinterpret_f32_s64 (int64x1_t __a)
11959 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a);
11962 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11963 vreinterpret_f32_u64 (uint64x1_t __a)
11965 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi ((int64x1_t) __a);
11968 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11969 vreinterpret_f32_s8 (int8x8_t __a)
11971 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi (__a);
11974 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11975 vreinterpret_f32_s16 (int16x4_t __a)
11977 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi (__a);
11980 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11981 vreinterpret_f32_s32 (int32x2_t __a)
11983 return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si (__a);
11986 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11987 vreinterpret_f32_u8 (uint8x8_t __a)
11989 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a);
11992 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11993 vreinterpret_f32_u16 (uint16x4_t __a)
11995 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a);
11998 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
11999 vreinterpret_f32_u32 (uint32x2_t __a)
12001 return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si ((int32x2_t) __a);
12004 #ifdef __ARM_FEATURE_CRYPTO
12005 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12006 vreinterpret_p64_p8 (poly8x8_t __a)
12008 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12011 #endif
12012 #ifdef __ARM_FEATURE_CRYPTO
12013 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12014 vreinterpret_p64_p16 (poly16x4_t __a)
12016 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12019 #endif
12020 #ifdef __ARM_FEATURE_CRYPTO
12021 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12022 vreinterpret_p64_f32 (float32x2_t __a)
12024 return (poly64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
12027 #endif
12028 #ifdef __ARM_FEATURE_CRYPTO
12029 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12030 vreinterpret_p64_s64 (int64x1_t __a)
12032 return (poly64x1_t)__builtin_neon_vreinterpretdidi (__a);
12035 #endif
12036 #ifdef __ARM_FEATURE_CRYPTO
12037 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12038 vreinterpret_p64_u64 (uint64x1_t __a)
12040 return (poly64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a);
12043 #endif
12044 #ifdef __ARM_FEATURE_CRYPTO
12045 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12046 vreinterpret_p64_s8 (int8x8_t __a)
12048 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
12051 #endif
12052 #ifdef __ARM_FEATURE_CRYPTO
12053 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12054 vreinterpret_p64_s16 (int16x4_t __a)
12056 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
12059 #endif
12060 #ifdef __ARM_FEATURE_CRYPTO
12061 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12062 vreinterpret_p64_s32 (int32x2_t __a)
12064 return (poly64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
12067 #endif
12068 #ifdef __ARM_FEATURE_CRYPTO
12069 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12070 vreinterpret_p64_u8 (uint8x8_t __a)
12072 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12075 #endif
12076 #ifdef __ARM_FEATURE_CRYPTO
12077 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12078 vreinterpret_p64_u16 (uint16x4_t __a)
12080 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12083 #endif
12084 #ifdef __ARM_FEATURE_CRYPTO
12085 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__))
12086 vreinterpret_p64_u32 (uint32x2_t __a)
12088 return (poly64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
12091 #endif
12092 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12093 vreinterpret_s64_p8 (poly8x8_t __a)
12095 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12098 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12099 vreinterpret_s64_p16 (poly16x4_t __a)
12101 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12104 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12105 vreinterpret_s64_f32 (float32x2_t __a)
12107 return (int64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
12110 #ifdef __ARM_FEATURE_CRYPTO
12111 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12112 vreinterpret_s64_p64 (poly64x1_t __a)
12114 return (int64x1_t)__builtin_neon_vreinterpretdidi (__a);
12117 #endif
12118 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12119 vreinterpret_s64_u64 (uint64x1_t __a)
12121 return (int64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a);
12124 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12125 vreinterpret_s64_s8 (int8x8_t __a)
12127 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
12130 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12131 vreinterpret_s64_s16 (int16x4_t __a)
12133 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
12136 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12137 vreinterpret_s64_s32 (int32x2_t __a)
12139 return (int64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
12142 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12143 vreinterpret_s64_u8 (uint8x8_t __a)
12145 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12148 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12149 vreinterpret_s64_u16 (uint16x4_t __a)
12151 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12154 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
12155 vreinterpret_s64_u32 (uint32x2_t __a)
12157 return (int64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
12160 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12161 vreinterpret_u64_p8 (poly8x8_t __a)
12163 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12166 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12167 vreinterpret_u64_p16 (poly16x4_t __a)
12169 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12172 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12173 vreinterpret_u64_f32 (float32x2_t __a)
12175 return (uint64x1_t)__builtin_neon_vreinterpretdiv2sf (__a);
12178 #ifdef __ARM_FEATURE_CRYPTO
12179 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12180 vreinterpret_u64_p64 (poly64x1_t __a)
12182 return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a);
12185 #endif
12186 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12187 vreinterpret_u64_s64 (int64x1_t __a)
12189 return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a);
12192 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12193 vreinterpret_u64_s8 (int8x8_t __a)
12195 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi (__a);
12198 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12199 vreinterpret_u64_s16 (int16x4_t __a)
12201 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi (__a);
12204 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12205 vreinterpret_u64_s32 (int32x2_t __a)
12207 return (uint64x1_t)__builtin_neon_vreinterpretdiv2si (__a);
12210 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12211 vreinterpret_u64_u8 (uint8x8_t __a)
12213 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a);
12216 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12217 vreinterpret_u64_u16 (uint16x4_t __a)
12219 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a);
12222 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
12223 vreinterpret_u64_u32 (uint32x2_t __a)
12225 return (uint64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a);
12228 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12229 vreinterpret_s8_p8 (poly8x8_t __a)
12231 return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
12234 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12235 vreinterpret_s8_p16 (poly16x4_t __a)
12237 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12240 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12241 vreinterpret_s8_f32 (float32x2_t __a)
12243 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
12246 #ifdef __ARM_FEATURE_CRYPTO
12247 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12248 vreinterpret_s8_p64 (poly64x1_t __a)
12250 return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12253 #endif
12254 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12255 vreinterpret_s8_s64 (int64x1_t __a)
12257 return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12260 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12261 vreinterpret_s8_u64 (uint64x1_t __a)
12263 return (int8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
12266 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12267 vreinterpret_s8_s16 (int16x4_t __a)
12269 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
12272 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12273 vreinterpret_s8_s32 (int32x2_t __a)
12275 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
12278 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12279 vreinterpret_s8_u8 (uint8x8_t __a)
12281 return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
12284 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12285 vreinterpret_s8_u16 (uint16x4_t __a)
12287 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12290 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
12291 vreinterpret_s8_u32 (uint32x2_t __a)
12293 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
12296 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12297 vreinterpret_s16_p8 (poly8x8_t __a)
12299 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12302 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12303 vreinterpret_s16_p16 (poly16x4_t __a)
12305 return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
12308 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12309 vreinterpret_s16_f32 (float32x2_t __a)
12311 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
12314 #ifdef __ARM_FEATURE_CRYPTO
12315 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12316 vreinterpret_s16_p64 (poly64x1_t __a)
12318 return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12321 #endif
12322 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12323 vreinterpret_s16_s64 (int64x1_t __a)
12325 return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12328 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12329 vreinterpret_s16_u64 (uint64x1_t __a)
12331 return (int16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
12334 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12335 vreinterpret_s16_s8 (int8x8_t __a)
12337 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
12340 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12341 vreinterpret_s16_s32 (int32x2_t __a)
12343 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
12346 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12347 vreinterpret_s16_u8 (uint8x8_t __a)
12349 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12352 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12353 vreinterpret_s16_u16 (uint16x4_t __a)
12355 return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
12358 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
12359 vreinterpret_s16_u32 (uint32x2_t __a)
12361 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
12364 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12365 vreinterpret_s32_p8 (poly8x8_t __a)
12367 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12370 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12371 vreinterpret_s32_p16 (poly16x4_t __a)
12373 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12376 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12377 vreinterpret_s32_f32 (float32x2_t __a)
12379 return (int32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a);
12382 #ifdef __ARM_FEATURE_CRYPTO
12383 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12384 vreinterpret_s32_p64 (poly64x1_t __a)
12386 return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12389 #endif
12390 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12391 vreinterpret_s32_s64 (int64x1_t __a)
12393 return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12396 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12397 vreinterpret_s32_u64 (uint64x1_t __a)
12399 return (int32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a);
12402 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12403 vreinterpret_s32_s8 (int8x8_t __a)
12405 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a);
12408 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12409 vreinterpret_s32_s16 (int16x4_t __a)
12411 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a);
12414 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12415 vreinterpret_s32_u8 (uint8x8_t __a)
12417 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12420 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12421 vreinterpret_s32_u16 (uint16x4_t __a)
12423 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12426 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
12427 vreinterpret_s32_u32 (uint32x2_t __a)
12429 return (int32x2_t)__builtin_neon_vreinterpretv2siv2si ((int32x2_t) __a);
12432 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12433 vreinterpret_u8_p8 (poly8x8_t __a)
12435 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a);
12438 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12439 vreinterpret_u8_p16 (poly16x4_t __a)
12441 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12444 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12445 vreinterpret_u8_f32 (float32x2_t __a)
12447 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a);
12450 #ifdef __ARM_FEATURE_CRYPTO
12451 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12452 vreinterpret_u8_p64 (poly64x1_t __a)
12454 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12457 #endif
12458 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12459 vreinterpret_u8_s64 (int64x1_t __a)
12461 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a);
12464 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12465 vreinterpret_u8_u64 (uint64x1_t __a)
12467 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a);
12470 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12471 vreinterpret_u8_s8 (int8x8_t __a)
12473 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a);
12476 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12477 vreinterpret_u8_s16 (int16x4_t __a)
12479 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a);
12482 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12483 vreinterpret_u8_s32 (int32x2_t __a)
12485 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a);
12488 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12489 vreinterpret_u8_u16 (uint16x4_t __a)
12491 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a);
12494 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
12495 vreinterpret_u8_u32 (uint32x2_t __a)
12497 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a);
12500 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12501 vreinterpret_u16_p8 (poly8x8_t __a)
12503 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12506 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12507 vreinterpret_u16_p16 (poly16x4_t __a)
12509 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a);
12512 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12513 vreinterpret_u16_f32 (float32x2_t __a)
12515 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a);
12518 #ifdef __ARM_FEATURE_CRYPTO
12519 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12520 vreinterpret_u16_p64 (poly64x1_t __a)
12522 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12525 #endif
12526 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12527 vreinterpret_u16_s64 (int64x1_t __a)
12529 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a);
12532 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12533 vreinterpret_u16_u64 (uint64x1_t __a)
12535 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a);
12538 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12539 vreinterpret_u16_s8 (int8x8_t __a)
12541 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a);
12544 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12545 vreinterpret_u16_s16 (int16x4_t __a)
12547 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a);
12550 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12551 vreinterpret_u16_s32 (int32x2_t __a)
12553 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a);
12556 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12557 vreinterpret_u16_u8 (uint8x8_t __a)
12559 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a);
12562 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
12563 vreinterpret_u16_u32 (uint32x2_t __a)
12565 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a);
12568 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12569 vreinterpret_u32_p8 (poly8x8_t __a)
12571 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12574 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12575 vreinterpret_u32_p16 (poly16x4_t __a)
12577 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12580 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12581 vreinterpret_u32_f32 (float32x2_t __a)
12583 return (uint32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a);
12586 #ifdef __ARM_FEATURE_CRYPTO
12587 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12588 vreinterpret_u32_p64 (poly64x1_t __a)
12590 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12593 #endif
12594 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12595 vreinterpret_u32_s64 (int64x1_t __a)
12597 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a);
12600 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12601 vreinterpret_u32_u64 (uint64x1_t __a)
12603 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a);
12606 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12607 vreinterpret_u32_s8 (int8x8_t __a)
12609 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a);
12612 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12613 vreinterpret_u32_s16 (int16x4_t __a)
12615 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a);
12618 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12619 vreinterpret_u32_s32 (int32x2_t __a)
12621 return (uint32x2_t)__builtin_neon_vreinterpretv2siv2si (__a);
12624 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12625 vreinterpret_u32_u8 (uint8x8_t __a)
12627 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a);
12630 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
12631 vreinterpret_u32_u16 (uint16x4_t __a)
12633 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a);
12636 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12637 vreinterpretq_p8_p16 (poly16x8_t __a)
12639 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
12642 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12643 vreinterpretq_p8_f32 (float32x4_t __a)
12645 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
12648 #ifdef __ARM_FEATURE_CRYPTO
12649 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12650 vreinterpretq_p8_p64 (poly64x2_t __a)
12652 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
12655 #endif
12656 #ifdef __ARM_FEATURE_CRYPTO
12657 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12658 vreinterpretq_p8_p128 (poly128_t __a)
12660 return (poly8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
12663 #endif
12664 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12665 vreinterpretq_p8_s64 (int64x2_t __a)
12667 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
12670 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12671 vreinterpretq_p8_u64 (uint64x2_t __a)
12673 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
12676 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12677 vreinterpretq_p8_s8 (int8x16_t __a)
12679 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a);
12682 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12683 vreinterpretq_p8_s16 (int16x8_t __a)
12685 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
12688 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12689 vreinterpretq_p8_s32 (int32x4_t __a)
12691 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
12694 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12695 vreinterpretq_p8_u8 (uint8x16_t __a)
12697 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
12700 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12701 vreinterpretq_p8_u16 (uint16x8_t __a)
12703 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
12706 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
12707 vreinterpretq_p8_u32 (uint32x4_t __a)
12709 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
12712 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12713 vreinterpretq_p16_p8 (poly8x16_t __a)
12715 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12718 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12719 vreinterpretq_p16_f32 (float32x4_t __a)
12721 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
12724 #ifdef __ARM_FEATURE_CRYPTO
12725 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12726 vreinterpretq_p16_p64 (poly64x2_t __a)
12728 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12731 #endif
12732 #ifdef __ARM_FEATURE_CRYPTO
12733 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12734 vreinterpretq_p16_p128 (poly128_t __a)
12736 return (poly16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
12739 #endif
12740 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12741 vreinterpretq_p16_s64 (int64x2_t __a)
12743 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
12746 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12747 vreinterpretq_p16_u64 (uint64x2_t __a)
12749 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
12752 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12753 vreinterpretq_p16_s8 (int8x16_t __a)
12755 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
12758 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12759 vreinterpretq_p16_s16 (int16x8_t __a)
12761 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a);
12764 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12765 vreinterpretq_p16_s32 (int32x4_t __a)
12767 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
12770 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12771 vreinterpretq_p16_u8 (uint8x16_t __a)
12773 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
12776 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12777 vreinterpretq_p16_u16 (uint16x8_t __a)
12779 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
12782 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
12783 vreinterpretq_p16_u32 (uint32x4_t __a)
12785 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
12788 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12789 vreinterpretq_f32_p8 (poly8x16_t __a)
12791 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a);
12794 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12795 vreinterpretq_f32_p16 (poly16x8_t __a)
12797 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a);
12800 #ifdef __ARM_FEATURE_CRYPTO
12801 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12802 vreinterpretq_f32_p64 (poly64x2_t __a)
12804 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a);
12807 #endif
12808 #ifdef __ARM_FEATURE_CRYPTO
12809 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12810 vreinterpretq_f32_p128 (poly128_t __a)
12812 return (float32x4_t)__builtin_neon_vreinterpretv4sfti ((__builtin_neon_ti) __a);
12815 #endif
12816 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12817 vreinterpretq_f32_s64 (int64x2_t __a)
12819 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di (__a);
12822 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12823 vreinterpretq_f32_u64 (uint64x2_t __a)
12825 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a);
12828 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12829 vreinterpretq_f32_s8 (int8x16_t __a)
12831 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi (__a);
12834 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12835 vreinterpretq_f32_s16 (int16x8_t __a)
12837 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi (__a);
12840 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12841 vreinterpretq_f32_s32 (int32x4_t __a)
12843 return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si (__a);
12846 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12847 vreinterpretq_f32_u8 (uint8x16_t __a)
12849 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a);
12852 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12853 vreinterpretq_f32_u16 (uint16x8_t __a)
12855 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a);
12858 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
12859 vreinterpretq_f32_u32 (uint32x4_t __a)
12861 return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si ((int32x4_t) __a);
12864 #ifdef __ARM_FEATURE_CRYPTO
12865 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12866 vreinterpretq_p64_p8 (poly8x16_t __a)
12868 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12871 #endif
12872 #ifdef __ARM_FEATURE_CRYPTO
12873 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12874 vreinterpretq_p64_p16 (poly16x8_t __a)
12876 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12879 #endif
12880 #ifdef __ARM_FEATURE_CRYPTO
12881 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12882 vreinterpretq_p64_f32 (float32x4_t __a)
12884 return (poly64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
12887 #endif
12888 #ifdef __ARM_FEATURE_CRYPTO
12889 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12890 vreinterpretq_p64_p128 (poly128_t __a)
12892 return (poly64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
12895 #endif
12896 #ifdef __ARM_FEATURE_CRYPTO
12897 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12898 vreinterpretq_p64_s64 (int64x2_t __a)
12900 return (poly64x2_t)__builtin_neon_vreinterpretv2div2di (__a);
12903 #endif
12904 #ifdef __ARM_FEATURE_CRYPTO
12905 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12906 vreinterpretq_p64_u64 (uint64x2_t __a)
12908 return (poly64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
12911 #endif
12912 #ifdef __ARM_FEATURE_CRYPTO
12913 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12914 vreinterpretq_p64_s8 (int8x16_t __a)
12916 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
12919 #endif
12920 #ifdef __ARM_FEATURE_CRYPTO
12921 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12922 vreinterpretq_p64_s16 (int16x8_t __a)
12924 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
12927 #endif
12928 #ifdef __ARM_FEATURE_CRYPTO
12929 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12930 vreinterpretq_p64_s32 (int32x4_t __a)
12932 return (poly64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
12935 #endif
12936 #ifdef __ARM_FEATURE_CRYPTO
12937 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12938 vreinterpretq_p64_u8 (uint8x16_t __a)
12940 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
12943 #endif
12944 #ifdef __ARM_FEATURE_CRYPTO
12945 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12946 vreinterpretq_p64_u16 (uint16x8_t __a)
12948 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
12951 #endif
12952 #ifdef __ARM_FEATURE_CRYPTO
12953 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__))
12954 vreinterpretq_p64_u32 (uint32x4_t __a)
12956 return (poly64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
12959 #endif
12960 #ifdef __ARM_FEATURE_CRYPTO
12961 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12962 vreinterpretq_p128_p8 (poly8x16_t __a)
12964 return (poly128_t)__builtin_neon_vreinterprettiv16qi ((int8x16_t) __a);
12967 #endif
12968 #ifdef __ARM_FEATURE_CRYPTO
12969 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12970 vreinterpretq_p128_p16 (poly16x8_t __a)
12972 return (poly128_t)__builtin_neon_vreinterprettiv8hi ((int16x8_t) __a);
12975 #endif
12976 #ifdef __ARM_FEATURE_CRYPTO
12977 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12978 vreinterpretq_p128_f32 (float32x4_t __a)
12980 return (poly128_t)__builtin_neon_vreinterprettiv4sf (__a);
12983 #endif
12984 #ifdef __ARM_FEATURE_CRYPTO
12985 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12986 vreinterpretq_p128_p64 (poly64x2_t __a)
12988 return (poly128_t)__builtin_neon_vreinterprettiv2di ((int64x2_t) __a);
12991 #endif
12992 #ifdef __ARM_FEATURE_CRYPTO
12993 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
12994 vreinterpretq_p128_s64 (int64x2_t __a)
12996 return (poly128_t)__builtin_neon_vreinterprettiv2di (__a);
12999 #endif
13000 #ifdef __ARM_FEATURE_CRYPTO
13001 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13002 vreinterpretq_p128_u64 (uint64x2_t __a)
13004 return (poly128_t)__builtin_neon_vreinterprettiv2di ((int64x2_t) __a);
13007 #endif
13008 #ifdef __ARM_FEATURE_CRYPTO
13009 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13010 vreinterpretq_p128_s8 (int8x16_t __a)
13012 return (poly128_t)__builtin_neon_vreinterprettiv16qi (__a);
13015 #endif
13016 #ifdef __ARM_FEATURE_CRYPTO
13017 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13018 vreinterpretq_p128_s16 (int16x8_t __a)
13020 return (poly128_t)__builtin_neon_vreinterprettiv8hi (__a);
13023 #endif
13024 #ifdef __ARM_FEATURE_CRYPTO
13025 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13026 vreinterpretq_p128_s32 (int32x4_t __a)
13028 return (poly128_t)__builtin_neon_vreinterprettiv4si (__a);
13031 #endif
13032 #ifdef __ARM_FEATURE_CRYPTO
13033 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13034 vreinterpretq_p128_u8 (uint8x16_t __a)
13036 return (poly128_t)__builtin_neon_vreinterprettiv16qi ((int8x16_t) __a);
13039 #endif
13040 #ifdef __ARM_FEATURE_CRYPTO
13041 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13042 vreinterpretq_p128_u16 (uint16x8_t __a)
13044 return (poly128_t)__builtin_neon_vreinterprettiv8hi ((int16x8_t) __a);
13047 #endif
13048 #ifdef __ARM_FEATURE_CRYPTO
13049 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13050 vreinterpretq_p128_u32 (uint32x4_t __a)
13052 return (poly128_t)__builtin_neon_vreinterprettiv4si ((int32x4_t) __a);
13055 #endif
13056 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13057 vreinterpretq_s64_p8 (poly8x16_t __a)
13059 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
13062 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13063 vreinterpretq_s64_p16 (poly16x8_t __a)
13065 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
13068 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13069 vreinterpretq_s64_f32 (float32x4_t __a)
13071 return (int64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
13074 #ifdef __ARM_FEATURE_CRYPTO
13075 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13076 vreinterpretq_s64_p64 (poly64x2_t __a)
13078 return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
13081 #endif
13082 #ifdef __ARM_FEATURE_CRYPTO
13083 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13084 vreinterpretq_s64_p128 (poly128_t __a)
13086 return (int64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
13089 #endif
13090 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13091 vreinterpretq_s64_u64 (uint64x2_t __a)
13093 return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
13096 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13097 vreinterpretq_s64_s8 (int8x16_t __a)
13099 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
13102 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13103 vreinterpretq_s64_s16 (int16x8_t __a)
13105 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
13108 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13109 vreinterpretq_s64_s32 (int32x4_t __a)
13111 return (int64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
13114 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13115 vreinterpretq_s64_u8 (uint8x16_t __a)
13117 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
13120 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13121 vreinterpretq_s64_u16 (uint16x8_t __a)
13123 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
13126 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
13127 vreinterpretq_s64_u32 (uint32x4_t __a)
13129 return (int64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
13132 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13133 vreinterpretq_u64_p8 (poly8x16_t __a)
13135 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
13138 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13139 vreinterpretq_u64_p16 (poly16x8_t __a)
13141 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
13144 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13145 vreinterpretq_u64_f32 (float32x4_t __a)
13147 return (uint64x2_t)__builtin_neon_vreinterpretv2div4sf (__a);
13150 #ifdef __ARM_FEATURE_CRYPTO
13151 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13152 vreinterpretq_u64_p64 (poly64x2_t __a)
13154 return (uint64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a);
13157 #endif
13158 #ifdef __ARM_FEATURE_CRYPTO
13159 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13160 vreinterpretq_u64_p128 (poly128_t __a)
13162 return (uint64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a);
13165 #endif
13166 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13167 vreinterpretq_u64_s64 (int64x2_t __a)
13169 return (uint64x2_t)__builtin_neon_vreinterpretv2div2di (__a);
13172 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13173 vreinterpretq_u64_s8 (int8x16_t __a)
13175 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi (__a);
13178 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13179 vreinterpretq_u64_s16 (int16x8_t __a)
13181 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi (__a);
13184 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13185 vreinterpretq_u64_s32 (int32x4_t __a)
13187 return (uint64x2_t)__builtin_neon_vreinterpretv2div4si (__a);
13190 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13191 vreinterpretq_u64_u8 (uint8x16_t __a)
13193 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a);
13196 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13197 vreinterpretq_u64_u16 (uint16x8_t __a)
13199 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a);
13202 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
13203 vreinterpretq_u64_u32 (uint32x4_t __a)
13205 return (uint64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a);
13208 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13209 vreinterpretq_s8_p8 (poly8x16_t __a)
13211 return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
13214 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13215 vreinterpretq_s8_p16 (poly16x8_t __a)
13217 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13220 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13221 vreinterpretq_s8_f32 (float32x4_t __a)
13223 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
13226 #ifdef __ARM_FEATURE_CRYPTO
13227 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13228 vreinterpretq_s8_p64 (poly64x2_t __a)
13230 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13233 #endif
13234 #ifdef __ARM_FEATURE_CRYPTO
13235 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13236 vreinterpretq_s8_p128 (poly128_t __a)
13238 return (int8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
13241 #endif
13242 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13243 vreinterpretq_s8_s64 (int64x2_t __a)
13245 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
13248 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13249 vreinterpretq_s8_u64 (uint64x2_t __a)
13251 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13254 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13255 vreinterpretq_s8_s16 (int16x8_t __a)
13257 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
13260 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13261 vreinterpretq_s8_s32 (int32x4_t __a)
13263 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
13266 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13267 vreinterpretq_s8_u8 (uint8x16_t __a)
13269 return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
13272 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13273 vreinterpretq_s8_u16 (uint16x8_t __a)
13275 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13278 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
13279 vreinterpretq_s8_u32 (uint32x4_t __a)
13281 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
13284 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13285 vreinterpretq_s16_p8 (poly8x16_t __a)
13287 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13290 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13291 vreinterpretq_s16_p16 (poly16x8_t __a)
13293 return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
13296 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13297 vreinterpretq_s16_f32 (float32x4_t __a)
13299 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
13302 #ifdef __ARM_FEATURE_CRYPTO
13303 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13304 vreinterpretq_s16_p64 (poly64x2_t __a)
13306 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13309 #endif
13310 #ifdef __ARM_FEATURE_CRYPTO
13311 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13312 vreinterpretq_s16_p128 (poly128_t __a)
13314 return (int16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
13317 #endif
13318 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13319 vreinterpretq_s16_s64 (int64x2_t __a)
13321 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
13324 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13325 vreinterpretq_s16_u64 (uint64x2_t __a)
13327 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13330 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13331 vreinterpretq_s16_s8 (int8x16_t __a)
13333 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
13336 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13337 vreinterpretq_s16_s32 (int32x4_t __a)
13339 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
13342 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13343 vreinterpretq_s16_u8 (uint8x16_t __a)
13345 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13348 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13349 vreinterpretq_s16_u16 (uint16x8_t __a)
13351 return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
13354 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
13355 vreinterpretq_s16_u32 (uint32x4_t __a)
13357 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
13360 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13361 vreinterpretq_s32_p8 (poly8x16_t __a)
13363 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13366 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13367 vreinterpretq_s32_p16 (poly16x8_t __a)
13369 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13372 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13373 vreinterpretq_s32_f32 (float32x4_t __a)
13375 return (int32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a);
13378 #ifdef __ARM_FEATURE_CRYPTO
13379 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13380 vreinterpretq_s32_p64 (poly64x2_t __a)
13382 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13385 #endif
13386 #ifdef __ARM_FEATURE_CRYPTO
13387 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13388 vreinterpretq_s32_p128 (poly128_t __a)
13390 return (int32x4_t)__builtin_neon_vreinterpretv4siti ((__builtin_neon_ti) __a);
13393 #endif
13394 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13395 vreinterpretq_s32_s64 (int64x2_t __a)
13397 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di (__a);
13400 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13401 vreinterpretq_s32_u64 (uint64x2_t __a)
13403 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13406 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13407 vreinterpretq_s32_s8 (int8x16_t __a)
13409 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a);
13412 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13413 vreinterpretq_s32_s16 (int16x8_t __a)
13415 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a);
13418 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13419 vreinterpretq_s32_u8 (uint8x16_t __a)
13421 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13424 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13425 vreinterpretq_s32_u16 (uint16x8_t __a)
13427 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13430 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
13431 vreinterpretq_s32_u32 (uint32x4_t __a)
13433 return (int32x4_t)__builtin_neon_vreinterpretv4siv4si ((int32x4_t) __a);
13436 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13437 vreinterpretq_u8_p8 (poly8x16_t __a)
13439 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a);
13442 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13443 vreinterpretq_u8_p16 (poly16x8_t __a)
13445 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13448 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13449 vreinterpretq_u8_f32 (float32x4_t __a)
13451 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a);
13454 #ifdef __ARM_FEATURE_CRYPTO
13455 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13456 vreinterpretq_u8_p64 (poly64x2_t __a)
13458 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13461 #endif
13462 #ifdef __ARM_FEATURE_CRYPTO
13463 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13464 vreinterpretq_u8_p128 (poly128_t __a)
13466 return (uint8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a);
13469 #endif
13470 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13471 vreinterpretq_u8_s64 (int64x2_t __a)
13473 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a);
13476 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13477 vreinterpretq_u8_u64 (uint64x2_t __a)
13479 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a);
13482 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13483 vreinterpretq_u8_s8 (int8x16_t __a)
13485 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a);
13488 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13489 vreinterpretq_u8_s16 (int16x8_t __a)
13491 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a);
13494 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13495 vreinterpretq_u8_s32 (int32x4_t __a)
13497 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a);
13500 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13501 vreinterpretq_u8_u16 (uint16x8_t __a)
13503 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a);
13506 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13507 vreinterpretq_u8_u32 (uint32x4_t __a)
13509 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a);
13512 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13513 vreinterpretq_u16_p8 (poly8x16_t __a)
13515 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13518 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13519 vreinterpretq_u16_p16 (poly16x8_t __a)
13521 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a);
13524 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13525 vreinterpretq_u16_f32 (float32x4_t __a)
13527 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a);
13530 #ifdef __ARM_FEATURE_CRYPTO
13531 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13532 vreinterpretq_u16_p64 (poly64x2_t __a)
13534 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13537 #endif
13538 #ifdef __ARM_FEATURE_CRYPTO
13539 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13540 vreinterpretq_u16_p128 (poly128_t __a)
13542 return (uint16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a);
13545 #endif
13546 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13547 vreinterpretq_u16_s64 (int64x2_t __a)
13549 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a);
13552 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13553 vreinterpretq_u16_u64 (uint64x2_t __a)
13555 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a);
13558 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13559 vreinterpretq_u16_s8 (int8x16_t __a)
13561 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a);
13564 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13565 vreinterpretq_u16_s16 (int16x8_t __a)
13567 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a);
13570 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13571 vreinterpretq_u16_s32 (int32x4_t __a)
13573 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a);
13576 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13577 vreinterpretq_u16_u8 (uint8x16_t __a)
13579 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a);
13582 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
13583 vreinterpretq_u16_u32 (uint32x4_t __a)
13585 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a);
13588 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13589 vreinterpretq_u32_p8 (poly8x16_t __a)
13591 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13594 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13595 vreinterpretq_u32_p16 (poly16x8_t __a)
13597 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13600 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13601 vreinterpretq_u32_f32 (float32x4_t __a)
13603 return (uint32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a);
13606 #ifdef __ARM_FEATURE_CRYPTO
13607 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13608 vreinterpretq_u32_p64 (poly64x2_t __a)
13610 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13613 #endif
13614 #ifdef __ARM_FEATURE_CRYPTO
13615 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13616 vreinterpretq_u32_p128 (poly128_t __a)
13618 return (uint32x4_t)__builtin_neon_vreinterpretv4siti ((__builtin_neon_ti) __a);
13621 #endif
13622 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13623 vreinterpretq_u32_s64 (int64x2_t __a)
13625 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di (__a);
13628 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13629 vreinterpretq_u32_u64 (uint64x2_t __a)
13631 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a);
13634 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13635 vreinterpretq_u32_s8 (int8x16_t __a)
13637 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a);
13640 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13641 vreinterpretq_u32_s16 (int16x8_t __a)
13643 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a);
13646 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13647 vreinterpretq_u32_s32 (int32x4_t __a)
13649 return (uint32x4_t)__builtin_neon_vreinterpretv4siv4si (__a);
13652 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13653 vreinterpretq_u32_u8 (uint8x16_t __a)
13655 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a);
13658 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13659 vreinterpretq_u32_u16 (uint16x8_t __a)
13661 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a);
13665 #ifdef __ARM_FEATURE_CRYPTO
13667 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13668 vldrq_p128 (poly128_t const * __ptr)
13670 #ifdef __ARM_BIG_ENDIAN
13671 poly64_t* __ptmp = (poly64_t*) __ptr;
13672 poly64_t __d0 = vld1_p64 (__ptmp);
13673 poly64_t __d1 = vld1_p64 (__ptmp + 1);
13674 return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0));
13675 #else
13676 return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr));
13677 #endif
13680 __extension__ static __inline void __attribute__ ((__always_inline__))
13681 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
13683 #ifdef __ARM_BIG_ENDIAN
13684 poly64x2_t __tmp = vreinterpretq_p64_p128 (__val);
13685 poly64_t __d0 = vget_high_p64 (__tmp);
13686 poly64_t __d1 = vget_low_p64 (__tmp);
13687 vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1));
13688 #else
13689 vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val));
13690 #endif
13693 /* The vceq_p64 intrinsic does not map to a single instruction.
13694 Instead we emulate it by performing a 32-bit variant of the vceq
13695 and applying a pairwise min reduction to the result.
13696 vceq_u32 will produce two 32-bit halves, each of which will contain either
13697 all ones or all zeros depending on whether the corresponding 32-bit
13698 halves of the poly64_t were equal. The whole poly64_t values are equal
13699 if and only if both halves are equal, i.e. vceq_u32 returns all ones.
13700 If the result is all zeroes for any half then the whole result is zeroes.
13701 This is what the pairwise min reduction achieves. */
13703 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
13704 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
13706 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
13707 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
13708 uint32x2_t __c = vceq_u32 (__t_a, __t_b);
13709 uint32x2_t __m = vpmin_u32 (__c, __c);
13710 return vreinterpret_u64_u32 (__m);
13713 /* The vtst_p64 intrinsic does not map to a single instruction.
13714 We emulate it in way similar to vceq_p64 above but here we do
13715 a reduction with max since if any two corresponding bits
13716 in the two poly64_t's match, then the whole result must be all ones. */
13718 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
13719 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
13721 uint32x2_t __t_a = vreinterpret_u32_p64 (__a);
13722 uint32x2_t __t_b = vreinterpret_u32_p64 (__b);
13723 uint32x2_t __c = vtst_u32 (__t_a, __t_b);
13724 uint32x2_t __m = vpmax_u32 (__c, __c);
13725 return vreinterpret_u64_u32 (__m);
13728 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13729 vaeseq_u8 (uint8x16_t __data, uint8x16_t __key)
13731 return __builtin_arm_crypto_aese (__data, __key);
13734 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13735 vaesdq_u8 (uint8x16_t __data, uint8x16_t __key)
13737 return __builtin_arm_crypto_aesd (__data, __key);
13740 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13741 vaesmcq_u8 (uint8x16_t __data)
13743 return __builtin_arm_crypto_aesmc (__data);
13746 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
13747 vaesimcq_u8 (uint8x16_t __data)
13749 return __builtin_arm_crypto_aesimc (__data);
13752 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
13753 vsha1h_u32 (uint32_t __hash_e)
13755 uint32x4_t __t = vdupq_n_u32 (0);
13756 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13757 __t = __builtin_arm_crypto_sha1h (__t);
13758 return vgetq_lane_u32 (__t, 0);
13761 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13762 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13764 uint32x4_t __t = vdupq_n_u32 (0);
13765 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13766 return __builtin_arm_crypto_sha1c (__hash_abcd, __t, __wk);
13769 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13770 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13772 uint32x4_t __t = vdupq_n_u32 (0);
13773 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13774 return __builtin_arm_crypto_sha1p (__hash_abcd, __t, __wk);
13777 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13778 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
13780 uint32x4_t __t = vdupq_n_u32 (0);
13781 __t = vsetq_lane_u32 (__hash_e, __t, 0);
13782 return __builtin_arm_crypto_sha1m (__hash_abcd, __t, __wk);
13785 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13786 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
13788 return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11);
13791 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13792 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
13794 return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15);
13797 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13798 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
13800 return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk);
13803 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13804 vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
13806 return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk);
13809 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13810 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
13812 return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7);
13815 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
13816 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
13818 return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15);
13821 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13822 vmull_p64 (poly64_t __a, poly64_t __b)
13824 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b);
13827 __extension__ static __inline poly128_t __attribute__ ((__always_inline__))
13828 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
13830 poly64_t __t1 = vget_high_p64 (__a);
13831 poly64_t __t2 = vget_high_p64 (__b);
13833 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2);
13836 #endif
13837 #ifdef __cplusplus
13839 #endif
13840 #endif
13841 #endif