1 /* ARM NEON intrinsics include file.
3 Copyright (C) 2011-2016 Free Software Foundation, Inc.
4 Contributed by ARM Ltd.
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 _AARCH64_NEON_H_
28 #define _AARCH64_NEON_H_
30 #pragma GCC push_options
31 #pragma GCC target ("+nothing+simd")
35 #define __AARCH64_UINT64_C(__C) ((uint64_t) __C)
36 #define __AARCH64_INT64_C(__C) ((int64_t) __C)
38 typedef __Int8x8_t int8x8_t
;
39 typedef __Int16x4_t int16x4_t
;
40 typedef __Int32x2_t int32x2_t
;
41 typedef __Int64x1_t int64x1_t
;
42 typedef __Float16x4_t float16x4_t
;
43 typedef __Float32x2_t float32x2_t
;
44 typedef __Poly8x8_t poly8x8_t
;
45 typedef __Poly16x4_t poly16x4_t
;
46 typedef __Uint8x8_t uint8x8_t
;
47 typedef __Uint16x4_t uint16x4_t
;
48 typedef __Uint32x2_t uint32x2_t
;
49 typedef __Float64x1_t float64x1_t
;
50 typedef __Uint64x1_t uint64x1_t
;
51 typedef __Int8x16_t int8x16_t
;
52 typedef __Int16x8_t int16x8_t
;
53 typedef __Int32x4_t int32x4_t
;
54 typedef __Int64x2_t int64x2_t
;
55 typedef __Float16x8_t float16x8_t
;
56 typedef __Float32x4_t float32x4_t
;
57 typedef __Float64x2_t float64x2_t
;
58 typedef __Poly8x16_t poly8x16_t
;
59 typedef __Poly16x8_t poly16x8_t
;
60 typedef __Poly64x2_t poly64x2_t
;
61 typedef __Uint8x16_t uint8x16_t
;
62 typedef __Uint16x8_t uint16x8_t
;
63 typedef __Uint32x4_t uint32x4_t
;
64 typedef __Uint64x2_t uint64x2_t
;
66 typedef __Poly8_t poly8_t
;
67 typedef __Poly16_t poly16_t
;
68 typedef __Poly64_t poly64_t
;
69 typedef __Poly128_t poly128_t
;
71 typedef __fp16 float16_t
;
72 typedef float float32_t
;
73 typedef double float64_t
;
75 typedef struct int8x8x2_t
80 typedef struct int8x16x2_t
85 typedef struct int16x4x2_t
90 typedef struct int16x8x2_t
95 typedef struct int32x2x2_t
100 typedef struct int32x4x2_t
105 typedef struct int64x1x2_t
110 typedef struct int64x2x2_t
115 typedef struct uint8x8x2_t
120 typedef struct uint8x16x2_t
125 typedef struct uint16x4x2_t
130 typedef struct uint16x8x2_t
135 typedef struct uint32x2x2_t
140 typedef struct uint32x4x2_t
145 typedef struct uint64x1x2_t
150 typedef struct uint64x2x2_t
155 typedef struct float16x4x2_t
160 typedef struct float16x8x2_t
165 typedef struct float32x2x2_t
170 typedef struct float32x4x2_t
175 typedef struct float64x2x2_t
180 typedef struct float64x1x2_t
185 typedef struct poly8x8x2_t
190 typedef struct poly8x16x2_t
195 typedef struct poly16x4x2_t
200 typedef struct poly16x8x2_t
205 typedef struct int8x8x3_t
210 typedef struct int8x16x3_t
215 typedef struct int16x4x3_t
220 typedef struct int16x8x3_t
225 typedef struct int32x2x3_t
230 typedef struct int32x4x3_t
235 typedef struct int64x1x3_t
240 typedef struct int64x2x3_t
245 typedef struct uint8x8x3_t
250 typedef struct uint8x16x3_t
255 typedef struct uint16x4x3_t
260 typedef struct uint16x8x3_t
265 typedef struct uint32x2x3_t
270 typedef struct uint32x4x3_t
275 typedef struct uint64x1x3_t
280 typedef struct uint64x2x3_t
285 typedef struct float16x4x3_t
290 typedef struct float16x8x3_t
295 typedef struct float32x2x3_t
300 typedef struct float32x4x3_t
305 typedef struct float64x2x3_t
310 typedef struct float64x1x3_t
315 typedef struct poly8x8x3_t
320 typedef struct poly8x16x3_t
325 typedef struct poly16x4x3_t
330 typedef struct poly16x8x3_t
335 typedef struct int8x8x4_t
340 typedef struct int8x16x4_t
345 typedef struct int16x4x4_t
350 typedef struct int16x8x4_t
355 typedef struct int32x2x4_t
360 typedef struct int32x4x4_t
365 typedef struct int64x1x4_t
370 typedef struct int64x2x4_t
375 typedef struct uint8x8x4_t
380 typedef struct uint8x16x4_t
385 typedef struct uint16x4x4_t
390 typedef struct uint16x8x4_t
395 typedef struct uint32x2x4_t
400 typedef struct uint32x4x4_t
405 typedef struct uint64x1x4_t
410 typedef struct uint64x2x4_t
415 typedef struct float16x4x4_t
420 typedef struct float16x8x4_t
425 typedef struct float32x2x4_t
430 typedef struct float32x4x4_t
435 typedef struct float64x2x4_t
440 typedef struct float64x1x4_t
445 typedef struct poly8x8x4_t
450 typedef struct poly8x16x4_t
455 typedef struct poly16x4x4_t
460 typedef struct poly16x8x4_t
465 /* __aarch64_vdup_lane internal macros. */
466 #define __aarch64_vdup_lane_any(__size, __q, __a, __b) \
467 vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b))
469 #define __aarch64_vdup_lane_f16(__a, __b) \
470 __aarch64_vdup_lane_any (f16, , __a, __b)
471 #define __aarch64_vdup_lane_f32(__a, __b) \
472 __aarch64_vdup_lane_any (f32, , __a, __b)
473 #define __aarch64_vdup_lane_f64(__a, __b) \
474 __aarch64_vdup_lane_any (f64, , __a, __b)
475 #define __aarch64_vdup_lane_p8(__a, __b) \
476 __aarch64_vdup_lane_any (p8, , __a, __b)
477 #define __aarch64_vdup_lane_p16(__a, __b) \
478 __aarch64_vdup_lane_any (p16, , __a, __b)
479 #define __aarch64_vdup_lane_s8(__a, __b) \
480 __aarch64_vdup_lane_any (s8, , __a, __b)
481 #define __aarch64_vdup_lane_s16(__a, __b) \
482 __aarch64_vdup_lane_any (s16, , __a, __b)
483 #define __aarch64_vdup_lane_s32(__a, __b) \
484 __aarch64_vdup_lane_any (s32, , __a, __b)
485 #define __aarch64_vdup_lane_s64(__a, __b) \
486 __aarch64_vdup_lane_any (s64, , __a, __b)
487 #define __aarch64_vdup_lane_u8(__a, __b) \
488 __aarch64_vdup_lane_any (u8, , __a, __b)
489 #define __aarch64_vdup_lane_u16(__a, __b) \
490 __aarch64_vdup_lane_any (u16, , __a, __b)
491 #define __aarch64_vdup_lane_u32(__a, __b) \
492 __aarch64_vdup_lane_any (u32, , __a, __b)
493 #define __aarch64_vdup_lane_u64(__a, __b) \
494 __aarch64_vdup_lane_any (u64, , __a, __b)
496 /* __aarch64_vdup_laneq internal macros. */
497 #define __aarch64_vdup_laneq_f16(__a, __b) \
498 __aarch64_vdup_lane_any (f16, , __a, __b)
499 #define __aarch64_vdup_laneq_f32(__a, __b) \
500 __aarch64_vdup_lane_any (f32, , __a, __b)
501 #define __aarch64_vdup_laneq_f64(__a, __b) \
502 __aarch64_vdup_lane_any (f64, , __a, __b)
503 #define __aarch64_vdup_laneq_p8(__a, __b) \
504 __aarch64_vdup_lane_any (p8, , __a, __b)
505 #define __aarch64_vdup_laneq_p16(__a, __b) \
506 __aarch64_vdup_lane_any (p16, , __a, __b)
507 #define __aarch64_vdup_laneq_s8(__a, __b) \
508 __aarch64_vdup_lane_any (s8, , __a, __b)
509 #define __aarch64_vdup_laneq_s16(__a, __b) \
510 __aarch64_vdup_lane_any (s16, , __a, __b)
511 #define __aarch64_vdup_laneq_s32(__a, __b) \
512 __aarch64_vdup_lane_any (s32, , __a, __b)
513 #define __aarch64_vdup_laneq_s64(__a, __b) \
514 __aarch64_vdup_lane_any (s64, , __a, __b)
515 #define __aarch64_vdup_laneq_u8(__a, __b) \
516 __aarch64_vdup_lane_any (u8, , __a, __b)
517 #define __aarch64_vdup_laneq_u16(__a, __b) \
518 __aarch64_vdup_lane_any (u16, , __a, __b)
519 #define __aarch64_vdup_laneq_u32(__a, __b) \
520 __aarch64_vdup_lane_any (u32, , __a, __b)
521 #define __aarch64_vdup_laneq_u64(__a, __b) \
522 __aarch64_vdup_lane_any (u64, , __a, __b)
524 /* __aarch64_vdupq_lane internal macros. */
525 #define __aarch64_vdupq_lane_f16(__a, __b) \
526 __aarch64_vdup_lane_any (f16, q, __a, __b)
527 #define __aarch64_vdupq_lane_f32(__a, __b) \
528 __aarch64_vdup_lane_any (f32, q, __a, __b)
529 #define __aarch64_vdupq_lane_f64(__a, __b) \
530 __aarch64_vdup_lane_any (f64, q, __a, __b)
531 #define __aarch64_vdupq_lane_p8(__a, __b) \
532 __aarch64_vdup_lane_any (p8, q, __a, __b)
533 #define __aarch64_vdupq_lane_p16(__a, __b) \
534 __aarch64_vdup_lane_any (p16, q, __a, __b)
535 #define __aarch64_vdupq_lane_s8(__a, __b) \
536 __aarch64_vdup_lane_any (s8, q, __a, __b)
537 #define __aarch64_vdupq_lane_s16(__a, __b) \
538 __aarch64_vdup_lane_any (s16, q, __a, __b)
539 #define __aarch64_vdupq_lane_s32(__a, __b) \
540 __aarch64_vdup_lane_any (s32, q, __a, __b)
541 #define __aarch64_vdupq_lane_s64(__a, __b) \
542 __aarch64_vdup_lane_any (s64, q, __a, __b)
543 #define __aarch64_vdupq_lane_u8(__a, __b) \
544 __aarch64_vdup_lane_any (u8, q, __a, __b)
545 #define __aarch64_vdupq_lane_u16(__a, __b) \
546 __aarch64_vdup_lane_any (u16, q, __a, __b)
547 #define __aarch64_vdupq_lane_u32(__a, __b) \
548 __aarch64_vdup_lane_any (u32, q, __a, __b)
549 #define __aarch64_vdupq_lane_u64(__a, __b) \
550 __aarch64_vdup_lane_any (u64, q, __a, __b)
552 /* __aarch64_vdupq_laneq internal macros. */
553 #define __aarch64_vdupq_laneq_f16(__a, __b) \
554 __aarch64_vdup_lane_any (f16, q, __a, __b)
555 #define __aarch64_vdupq_laneq_f32(__a, __b) \
556 __aarch64_vdup_lane_any (f32, q, __a, __b)
557 #define __aarch64_vdupq_laneq_f64(__a, __b) \
558 __aarch64_vdup_lane_any (f64, q, __a, __b)
559 #define __aarch64_vdupq_laneq_p8(__a, __b) \
560 __aarch64_vdup_lane_any (p8, q, __a, __b)
561 #define __aarch64_vdupq_laneq_p16(__a, __b) \
562 __aarch64_vdup_lane_any (p16, q, __a, __b)
563 #define __aarch64_vdupq_laneq_s8(__a, __b) \
564 __aarch64_vdup_lane_any (s8, q, __a, __b)
565 #define __aarch64_vdupq_laneq_s16(__a, __b) \
566 __aarch64_vdup_lane_any (s16, q, __a, __b)
567 #define __aarch64_vdupq_laneq_s32(__a, __b) \
568 __aarch64_vdup_lane_any (s32, q, __a, __b)
569 #define __aarch64_vdupq_laneq_s64(__a, __b) \
570 __aarch64_vdup_lane_any (s64, q, __a, __b)
571 #define __aarch64_vdupq_laneq_u8(__a, __b) \
572 __aarch64_vdup_lane_any (u8, q, __a, __b)
573 #define __aarch64_vdupq_laneq_u16(__a, __b) \
574 __aarch64_vdup_lane_any (u16, q, __a, __b)
575 #define __aarch64_vdupq_laneq_u32(__a, __b) \
576 __aarch64_vdup_lane_any (u32, q, __a, __b)
577 #define __aarch64_vdupq_laneq_u64(__a, __b) \
578 __aarch64_vdup_lane_any (u64, q, __a, __b)
580 /* Internal macro for lane indices. */
582 #define __AARCH64_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
583 #define __AARCH64_LANE_CHECK(__vec, __idx) \
584 __builtin_aarch64_im_lane_boundsi (sizeof(__vec), sizeof(__vec[0]), __idx)
586 /* For big-endian, GCC's vector indices are the opposite way around
587 to the architectural lane indices used by Neon intrinsics. */
589 #define __aarch64_lane(__vec, __idx) (__AARCH64_NUM_LANES (__vec) - 1 - __idx)
591 #define __aarch64_lane(__vec, __idx) __idx
594 /* vget_lane internal macro. */
595 #define __aarch64_vget_lane_any(__vec, __index) \
598 __AARCH64_LANE_CHECK (__vec, __index); \
599 __vec[__aarch64_lane (__vec, __index)]; \
602 /* vset_lane and vld1_lane internal macro. */
603 #define __aarch64_vset_lane_any(__elem, __vec, __index) \
606 __AARCH64_LANE_CHECK (__vec, __index); \
607 __vec[__aarch64_lane (__vec, __index)] = __elem; \
612 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
613 vadd_s8 (int8x8_t __a
, int8x8_t __b
)
618 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
619 vadd_s16 (int16x4_t __a
, int16x4_t __b
)
624 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
625 vadd_s32 (int32x2_t __a
, int32x2_t __b
)
630 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
631 vadd_f32 (float32x2_t __a
, float32x2_t __b
)
636 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
637 vadd_f64 (float64x1_t __a
, float64x1_t __b
)
642 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
643 vadd_u8 (uint8x8_t __a
, uint8x8_t __b
)
648 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
649 vadd_u16 (uint16x4_t __a
, uint16x4_t __b
)
654 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
655 vadd_u32 (uint32x2_t __a
, uint32x2_t __b
)
660 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
661 vadd_s64 (int64x1_t __a
, int64x1_t __b
)
666 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
667 vadd_u64 (uint64x1_t __a
, uint64x1_t __b
)
672 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
673 vaddq_s8 (int8x16_t __a
, int8x16_t __b
)
678 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
679 vaddq_s16 (int16x8_t __a
, int16x8_t __b
)
684 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
685 vaddq_s32 (int32x4_t __a
, int32x4_t __b
)
690 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
691 vaddq_s64 (int64x2_t __a
, int64x2_t __b
)
696 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
697 vaddq_f32 (float32x4_t __a
, float32x4_t __b
)
702 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
703 vaddq_f64 (float64x2_t __a
, float64x2_t __b
)
708 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
709 vaddq_u8 (uint8x16_t __a
, uint8x16_t __b
)
714 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
715 vaddq_u16 (uint16x8_t __a
, uint16x8_t __b
)
720 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
721 vaddq_u32 (uint32x4_t __a
, uint32x4_t __b
)
726 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
727 vaddq_u64 (uint64x2_t __a
, uint64x2_t __b
)
732 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
733 vaddl_s8 (int8x8_t __a
, int8x8_t __b
)
735 return (int16x8_t
) __builtin_aarch64_saddlv8qi (__a
, __b
);
738 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
739 vaddl_s16 (int16x4_t __a
, int16x4_t __b
)
741 return (int32x4_t
) __builtin_aarch64_saddlv4hi (__a
, __b
);
744 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
745 vaddl_s32 (int32x2_t __a
, int32x2_t __b
)
747 return (int64x2_t
) __builtin_aarch64_saddlv2si (__a
, __b
);
750 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
751 vaddl_u8 (uint8x8_t __a
, uint8x8_t __b
)
753 return (uint16x8_t
) __builtin_aarch64_uaddlv8qi ((int8x8_t
) __a
,
757 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
758 vaddl_u16 (uint16x4_t __a
, uint16x4_t __b
)
760 return (uint32x4_t
) __builtin_aarch64_uaddlv4hi ((int16x4_t
) __a
,
764 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
765 vaddl_u32 (uint32x2_t __a
, uint32x2_t __b
)
767 return (uint64x2_t
) __builtin_aarch64_uaddlv2si ((int32x2_t
) __a
,
771 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
772 vaddl_high_s8 (int8x16_t __a
, int8x16_t __b
)
774 return (int16x8_t
) __builtin_aarch64_saddl2v16qi (__a
, __b
);
777 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
778 vaddl_high_s16 (int16x8_t __a
, int16x8_t __b
)
780 return (int32x4_t
) __builtin_aarch64_saddl2v8hi (__a
, __b
);
783 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
784 vaddl_high_s32 (int32x4_t __a
, int32x4_t __b
)
786 return (int64x2_t
) __builtin_aarch64_saddl2v4si (__a
, __b
);
789 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
790 vaddl_high_u8 (uint8x16_t __a
, uint8x16_t __b
)
792 return (uint16x8_t
) __builtin_aarch64_uaddl2v16qi ((int8x16_t
) __a
,
796 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
797 vaddl_high_u16 (uint16x8_t __a
, uint16x8_t __b
)
799 return (uint32x4_t
) __builtin_aarch64_uaddl2v8hi ((int16x8_t
) __a
,
803 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
804 vaddl_high_u32 (uint32x4_t __a
, uint32x4_t __b
)
806 return (uint64x2_t
) __builtin_aarch64_uaddl2v4si ((int32x4_t
) __a
,
810 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
811 vaddw_s8 (int16x8_t __a
, int8x8_t __b
)
813 return (int16x8_t
) __builtin_aarch64_saddwv8qi (__a
, __b
);
816 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
817 vaddw_s16 (int32x4_t __a
, int16x4_t __b
)
819 return (int32x4_t
) __builtin_aarch64_saddwv4hi (__a
, __b
);
822 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
823 vaddw_s32 (int64x2_t __a
, int32x2_t __b
)
825 return (int64x2_t
) __builtin_aarch64_saddwv2si (__a
, __b
);
828 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
829 vaddw_u8 (uint16x8_t __a
, uint8x8_t __b
)
831 return (uint16x8_t
) __builtin_aarch64_uaddwv8qi ((int16x8_t
) __a
,
835 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
836 vaddw_u16 (uint32x4_t __a
, uint16x4_t __b
)
838 return (uint32x4_t
) __builtin_aarch64_uaddwv4hi ((int32x4_t
) __a
,
842 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
843 vaddw_u32 (uint64x2_t __a
, uint32x2_t __b
)
845 return (uint64x2_t
) __builtin_aarch64_uaddwv2si ((int64x2_t
) __a
,
849 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
850 vaddw_high_s8 (int16x8_t __a
, int8x16_t __b
)
852 return (int16x8_t
) __builtin_aarch64_saddw2v16qi (__a
, __b
);
855 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
856 vaddw_high_s16 (int32x4_t __a
, int16x8_t __b
)
858 return (int32x4_t
) __builtin_aarch64_saddw2v8hi (__a
, __b
);
861 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
862 vaddw_high_s32 (int64x2_t __a
, int32x4_t __b
)
864 return (int64x2_t
) __builtin_aarch64_saddw2v4si (__a
, __b
);
867 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
868 vaddw_high_u8 (uint16x8_t __a
, uint8x16_t __b
)
870 return (uint16x8_t
) __builtin_aarch64_uaddw2v16qi ((int16x8_t
) __a
,
874 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
875 vaddw_high_u16 (uint32x4_t __a
, uint16x8_t __b
)
877 return (uint32x4_t
) __builtin_aarch64_uaddw2v8hi ((int32x4_t
) __a
,
881 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
882 vaddw_high_u32 (uint64x2_t __a
, uint32x4_t __b
)
884 return (uint64x2_t
) __builtin_aarch64_uaddw2v4si ((int64x2_t
) __a
,
888 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
889 vhadd_s8 (int8x8_t __a
, int8x8_t __b
)
891 return (int8x8_t
) __builtin_aarch64_shaddv8qi (__a
, __b
);
894 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
895 vhadd_s16 (int16x4_t __a
, int16x4_t __b
)
897 return (int16x4_t
) __builtin_aarch64_shaddv4hi (__a
, __b
);
900 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
901 vhadd_s32 (int32x2_t __a
, int32x2_t __b
)
903 return (int32x2_t
) __builtin_aarch64_shaddv2si (__a
, __b
);
906 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
907 vhadd_u8 (uint8x8_t __a
, uint8x8_t __b
)
909 return (uint8x8_t
) __builtin_aarch64_uhaddv8qi ((int8x8_t
) __a
,
913 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
914 vhadd_u16 (uint16x4_t __a
, uint16x4_t __b
)
916 return (uint16x4_t
) __builtin_aarch64_uhaddv4hi ((int16x4_t
) __a
,
920 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
921 vhadd_u32 (uint32x2_t __a
, uint32x2_t __b
)
923 return (uint32x2_t
) __builtin_aarch64_uhaddv2si ((int32x2_t
) __a
,
927 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
928 vhaddq_s8 (int8x16_t __a
, int8x16_t __b
)
930 return (int8x16_t
) __builtin_aarch64_shaddv16qi (__a
, __b
);
933 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
934 vhaddq_s16 (int16x8_t __a
, int16x8_t __b
)
936 return (int16x8_t
) __builtin_aarch64_shaddv8hi (__a
, __b
);
939 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
940 vhaddq_s32 (int32x4_t __a
, int32x4_t __b
)
942 return (int32x4_t
) __builtin_aarch64_shaddv4si (__a
, __b
);
945 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
946 vhaddq_u8 (uint8x16_t __a
, uint8x16_t __b
)
948 return (uint8x16_t
) __builtin_aarch64_uhaddv16qi ((int8x16_t
) __a
,
952 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
953 vhaddq_u16 (uint16x8_t __a
, uint16x8_t __b
)
955 return (uint16x8_t
) __builtin_aarch64_uhaddv8hi ((int16x8_t
) __a
,
959 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
960 vhaddq_u32 (uint32x4_t __a
, uint32x4_t __b
)
962 return (uint32x4_t
) __builtin_aarch64_uhaddv4si ((int32x4_t
) __a
,
966 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
967 vrhadd_s8 (int8x8_t __a
, int8x8_t __b
)
969 return (int8x8_t
) __builtin_aarch64_srhaddv8qi (__a
, __b
);
972 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
973 vrhadd_s16 (int16x4_t __a
, int16x4_t __b
)
975 return (int16x4_t
) __builtin_aarch64_srhaddv4hi (__a
, __b
);
978 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
979 vrhadd_s32 (int32x2_t __a
, int32x2_t __b
)
981 return (int32x2_t
) __builtin_aarch64_srhaddv2si (__a
, __b
);
984 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
985 vrhadd_u8 (uint8x8_t __a
, uint8x8_t __b
)
987 return (uint8x8_t
) __builtin_aarch64_urhaddv8qi ((int8x8_t
) __a
,
991 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
992 vrhadd_u16 (uint16x4_t __a
, uint16x4_t __b
)
994 return (uint16x4_t
) __builtin_aarch64_urhaddv4hi ((int16x4_t
) __a
,
998 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
999 vrhadd_u32 (uint32x2_t __a
, uint32x2_t __b
)
1001 return (uint32x2_t
) __builtin_aarch64_urhaddv2si ((int32x2_t
) __a
,
1005 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1006 vrhaddq_s8 (int8x16_t __a
, int8x16_t __b
)
1008 return (int8x16_t
) __builtin_aarch64_srhaddv16qi (__a
, __b
);
1011 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1012 vrhaddq_s16 (int16x8_t __a
, int16x8_t __b
)
1014 return (int16x8_t
) __builtin_aarch64_srhaddv8hi (__a
, __b
);
1017 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1018 vrhaddq_s32 (int32x4_t __a
, int32x4_t __b
)
1020 return (int32x4_t
) __builtin_aarch64_srhaddv4si (__a
, __b
);
1023 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1024 vrhaddq_u8 (uint8x16_t __a
, uint8x16_t __b
)
1026 return (uint8x16_t
) __builtin_aarch64_urhaddv16qi ((int8x16_t
) __a
,
1030 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1031 vrhaddq_u16 (uint16x8_t __a
, uint16x8_t __b
)
1033 return (uint16x8_t
) __builtin_aarch64_urhaddv8hi ((int16x8_t
) __a
,
1037 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1038 vrhaddq_u32 (uint32x4_t __a
, uint32x4_t __b
)
1040 return (uint32x4_t
) __builtin_aarch64_urhaddv4si ((int32x4_t
) __a
,
1044 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1045 vaddhn_s16 (int16x8_t __a
, int16x8_t __b
)
1047 return (int8x8_t
) __builtin_aarch64_addhnv8hi (__a
, __b
);
1050 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1051 vaddhn_s32 (int32x4_t __a
, int32x4_t __b
)
1053 return (int16x4_t
) __builtin_aarch64_addhnv4si (__a
, __b
);
1056 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1057 vaddhn_s64 (int64x2_t __a
, int64x2_t __b
)
1059 return (int32x2_t
) __builtin_aarch64_addhnv2di (__a
, __b
);
1062 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1063 vaddhn_u16 (uint16x8_t __a
, uint16x8_t __b
)
1065 return (uint8x8_t
) __builtin_aarch64_addhnv8hi ((int16x8_t
) __a
,
1069 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1070 vaddhn_u32 (uint32x4_t __a
, uint32x4_t __b
)
1072 return (uint16x4_t
) __builtin_aarch64_addhnv4si ((int32x4_t
) __a
,
1076 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1077 vaddhn_u64 (uint64x2_t __a
, uint64x2_t __b
)
1079 return (uint32x2_t
) __builtin_aarch64_addhnv2di ((int64x2_t
) __a
,
1083 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1084 vraddhn_s16 (int16x8_t __a
, int16x8_t __b
)
1086 return (int8x8_t
) __builtin_aarch64_raddhnv8hi (__a
, __b
);
1089 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1090 vraddhn_s32 (int32x4_t __a
, int32x4_t __b
)
1092 return (int16x4_t
) __builtin_aarch64_raddhnv4si (__a
, __b
);
1095 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1096 vraddhn_s64 (int64x2_t __a
, int64x2_t __b
)
1098 return (int32x2_t
) __builtin_aarch64_raddhnv2di (__a
, __b
);
1101 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1102 vraddhn_u16 (uint16x8_t __a
, uint16x8_t __b
)
1104 return (uint8x8_t
) __builtin_aarch64_raddhnv8hi ((int16x8_t
) __a
,
1108 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1109 vraddhn_u32 (uint32x4_t __a
, uint32x4_t __b
)
1111 return (uint16x4_t
) __builtin_aarch64_raddhnv4si ((int32x4_t
) __a
,
1115 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1116 vraddhn_u64 (uint64x2_t __a
, uint64x2_t __b
)
1118 return (uint32x2_t
) __builtin_aarch64_raddhnv2di ((int64x2_t
) __a
,
1122 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1123 vaddhn_high_s16 (int8x8_t __a
, int16x8_t __b
, int16x8_t __c
)
1125 return (int8x16_t
) __builtin_aarch64_addhn2v8hi (__a
, __b
, __c
);
1128 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1129 vaddhn_high_s32 (int16x4_t __a
, int32x4_t __b
, int32x4_t __c
)
1131 return (int16x8_t
) __builtin_aarch64_addhn2v4si (__a
, __b
, __c
);
1134 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1135 vaddhn_high_s64 (int32x2_t __a
, int64x2_t __b
, int64x2_t __c
)
1137 return (int32x4_t
) __builtin_aarch64_addhn2v2di (__a
, __b
, __c
);
1140 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1141 vaddhn_high_u16 (uint8x8_t __a
, uint16x8_t __b
, uint16x8_t __c
)
1143 return (uint8x16_t
) __builtin_aarch64_addhn2v8hi ((int8x8_t
) __a
,
1148 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1149 vaddhn_high_u32 (uint16x4_t __a
, uint32x4_t __b
, uint32x4_t __c
)
1151 return (uint16x8_t
) __builtin_aarch64_addhn2v4si ((int16x4_t
) __a
,
1156 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1157 vaddhn_high_u64 (uint32x2_t __a
, uint64x2_t __b
, uint64x2_t __c
)
1159 return (uint32x4_t
) __builtin_aarch64_addhn2v2di ((int32x2_t
) __a
,
1164 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1165 vraddhn_high_s16 (int8x8_t __a
, int16x8_t __b
, int16x8_t __c
)
1167 return (int8x16_t
) __builtin_aarch64_raddhn2v8hi (__a
, __b
, __c
);
1170 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1171 vraddhn_high_s32 (int16x4_t __a
, int32x4_t __b
, int32x4_t __c
)
1173 return (int16x8_t
) __builtin_aarch64_raddhn2v4si (__a
, __b
, __c
);
1176 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1177 vraddhn_high_s64 (int32x2_t __a
, int64x2_t __b
, int64x2_t __c
)
1179 return (int32x4_t
) __builtin_aarch64_raddhn2v2di (__a
, __b
, __c
);
1182 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1183 vraddhn_high_u16 (uint8x8_t __a
, uint16x8_t __b
, uint16x8_t __c
)
1185 return (uint8x16_t
) __builtin_aarch64_raddhn2v8hi ((int8x8_t
) __a
,
1190 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1191 vraddhn_high_u32 (uint16x4_t __a
, uint32x4_t __b
, uint32x4_t __c
)
1193 return (uint16x8_t
) __builtin_aarch64_raddhn2v4si ((int16x4_t
) __a
,
1198 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1199 vraddhn_high_u64 (uint32x2_t __a
, uint64x2_t __b
, uint64x2_t __c
)
1201 return (uint32x4_t
) __builtin_aarch64_raddhn2v2di ((int32x2_t
) __a
,
1206 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
1207 vdiv_f32 (float32x2_t __a
, float32x2_t __b
)
1212 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
1213 vdiv_f64 (float64x1_t __a
, float64x1_t __b
)
1218 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
1219 vdivq_f32 (float32x4_t __a
, float32x4_t __b
)
1224 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
1225 vdivq_f64 (float64x2_t __a
, float64x2_t __b
)
1230 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1231 vmul_s8 (int8x8_t __a
, int8x8_t __b
)
1236 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1237 vmul_s16 (int16x4_t __a
, int16x4_t __b
)
1242 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1243 vmul_s32 (int32x2_t __a
, int32x2_t __b
)
1248 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
1249 vmul_f32 (float32x2_t __a
, float32x2_t __b
)
1254 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
1255 vmul_f64 (float64x1_t __a
, float64x1_t __b
)
1260 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1261 vmul_u8 (uint8x8_t __a
, uint8x8_t __b
)
1266 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1267 vmul_u16 (uint16x4_t __a
, uint16x4_t __b
)
1272 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1273 vmul_u32 (uint32x2_t __a
, uint32x2_t __b
)
1278 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
1279 vmul_p8 (poly8x8_t __a
, poly8x8_t __b
)
1281 return (poly8x8_t
) __builtin_aarch64_pmulv8qi ((int8x8_t
) __a
,
1285 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1286 vmulq_s8 (int8x16_t __a
, int8x16_t __b
)
1291 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1292 vmulq_s16 (int16x8_t __a
, int16x8_t __b
)
1297 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1298 vmulq_s32 (int32x4_t __a
, int32x4_t __b
)
1303 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
1304 vmulq_f32 (float32x4_t __a
, float32x4_t __b
)
1309 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
1310 vmulq_f64 (float64x2_t __a
, float64x2_t __b
)
1315 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1316 vmulq_u8 (uint8x16_t __a
, uint8x16_t __b
)
1321 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1322 vmulq_u16 (uint16x8_t __a
, uint16x8_t __b
)
1327 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1328 vmulq_u32 (uint32x4_t __a
, uint32x4_t __b
)
1333 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
1334 vmulq_p8 (poly8x16_t __a
, poly8x16_t __b
)
1336 return (poly8x16_t
) __builtin_aarch64_pmulv16qi ((int8x16_t
) __a
,
1340 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1341 vand_s8 (int8x8_t __a
, int8x8_t __b
)
1346 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1347 vand_s16 (int16x4_t __a
, int16x4_t __b
)
1352 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1353 vand_s32 (int32x2_t __a
, int32x2_t __b
)
1358 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1359 vand_u8 (uint8x8_t __a
, uint8x8_t __b
)
1364 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1365 vand_u16 (uint16x4_t __a
, uint16x4_t __b
)
1370 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1371 vand_u32 (uint32x2_t __a
, uint32x2_t __b
)
1376 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
1377 vand_s64 (int64x1_t __a
, int64x1_t __b
)
1382 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
1383 vand_u64 (uint64x1_t __a
, uint64x1_t __b
)
1388 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1389 vandq_s8 (int8x16_t __a
, int8x16_t __b
)
1394 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1395 vandq_s16 (int16x8_t __a
, int16x8_t __b
)
1400 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1401 vandq_s32 (int32x4_t __a
, int32x4_t __b
)
1406 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
1407 vandq_s64 (int64x2_t __a
, int64x2_t __b
)
1412 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1413 vandq_u8 (uint8x16_t __a
, uint8x16_t __b
)
1418 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1419 vandq_u16 (uint16x8_t __a
, uint16x8_t __b
)
1424 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1425 vandq_u32 (uint32x4_t __a
, uint32x4_t __b
)
1430 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
1431 vandq_u64 (uint64x2_t __a
, uint64x2_t __b
)
1436 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1437 vorr_s8 (int8x8_t __a
, int8x8_t __b
)
1442 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1443 vorr_s16 (int16x4_t __a
, int16x4_t __b
)
1448 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1449 vorr_s32 (int32x2_t __a
, int32x2_t __b
)
1454 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1455 vorr_u8 (uint8x8_t __a
, uint8x8_t __b
)
1460 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1461 vorr_u16 (uint16x4_t __a
, uint16x4_t __b
)
1466 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1467 vorr_u32 (uint32x2_t __a
, uint32x2_t __b
)
1472 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
1473 vorr_s64 (int64x1_t __a
, int64x1_t __b
)
1478 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
1479 vorr_u64 (uint64x1_t __a
, uint64x1_t __b
)
1484 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1485 vorrq_s8 (int8x16_t __a
, int8x16_t __b
)
1490 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1491 vorrq_s16 (int16x8_t __a
, int16x8_t __b
)
1496 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1497 vorrq_s32 (int32x4_t __a
, int32x4_t __b
)
1502 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
1503 vorrq_s64 (int64x2_t __a
, int64x2_t __b
)
1508 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1509 vorrq_u8 (uint8x16_t __a
, uint8x16_t __b
)
1514 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1515 vorrq_u16 (uint16x8_t __a
, uint16x8_t __b
)
1520 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1521 vorrq_u32 (uint32x4_t __a
, uint32x4_t __b
)
1526 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
1527 vorrq_u64 (uint64x2_t __a
, uint64x2_t __b
)
1532 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1533 veor_s8 (int8x8_t __a
, int8x8_t __b
)
1538 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1539 veor_s16 (int16x4_t __a
, int16x4_t __b
)
1544 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1545 veor_s32 (int32x2_t __a
, int32x2_t __b
)
1550 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1551 veor_u8 (uint8x8_t __a
, uint8x8_t __b
)
1556 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1557 veor_u16 (uint16x4_t __a
, uint16x4_t __b
)
1562 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1563 veor_u32 (uint32x2_t __a
, uint32x2_t __b
)
1568 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
1569 veor_s64 (int64x1_t __a
, int64x1_t __b
)
1574 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
1575 veor_u64 (uint64x1_t __a
, uint64x1_t __b
)
1580 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1581 veorq_s8 (int8x16_t __a
, int8x16_t __b
)
1586 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1587 veorq_s16 (int16x8_t __a
, int16x8_t __b
)
1592 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1593 veorq_s32 (int32x4_t __a
, int32x4_t __b
)
1598 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
1599 veorq_s64 (int64x2_t __a
, int64x2_t __b
)
1604 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1605 veorq_u8 (uint8x16_t __a
, uint8x16_t __b
)
1610 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1611 veorq_u16 (uint16x8_t __a
, uint16x8_t __b
)
1616 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1617 veorq_u32 (uint32x4_t __a
, uint32x4_t __b
)
1622 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
1623 veorq_u64 (uint64x2_t __a
, uint64x2_t __b
)
1628 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1629 vbic_s8 (int8x8_t __a
, int8x8_t __b
)
1634 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1635 vbic_s16 (int16x4_t __a
, int16x4_t __b
)
1640 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1641 vbic_s32 (int32x2_t __a
, int32x2_t __b
)
1646 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1647 vbic_u8 (uint8x8_t __a
, uint8x8_t __b
)
1652 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1653 vbic_u16 (uint16x4_t __a
, uint16x4_t __b
)
1658 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1659 vbic_u32 (uint32x2_t __a
, uint32x2_t __b
)
1664 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
1665 vbic_s64 (int64x1_t __a
, int64x1_t __b
)
1670 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
1671 vbic_u64 (uint64x1_t __a
, uint64x1_t __b
)
1676 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1677 vbicq_s8 (int8x16_t __a
, int8x16_t __b
)
1682 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1683 vbicq_s16 (int16x8_t __a
, int16x8_t __b
)
1688 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1689 vbicq_s32 (int32x4_t __a
, int32x4_t __b
)
1694 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
1695 vbicq_s64 (int64x2_t __a
, int64x2_t __b
)
1700 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1701 vbicq_u8 (uint8x16_t __a
, uint8x16_t __b
)
1706 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1707 vbicq_u16 (uint16x8_t __a
, uint16x8_t __b
)
1712 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1713 vbicq_u32 (uint32x4_t __a
, uint32x4_t __b
)
1718 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
1719 vbicq_u64 (uint64x2_t __a
, uint64x2_t __b
)
1724 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1725 vorn_s8 (int8x8_t __a
, int8x8_t __b
)
1730 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1731 vorn_s16 (int16x4_t __a
, int16x4_t __b
)
1736 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1737 vorn_s32 (int32x2_t __a
, int32x2_t __b
)
1742 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1743 vorn_u8 (uint8x8_t __a
, uint8x8_t __b
)
1748 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1749 vorn_u16 (uint16x4_t __a
, uint16x4_t __b
)
1754 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1755 vorn_u32 (uint32x2_t __a
, uint32x2_t __b
)
1760 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
1761 vorn_s64 (int64x1_t __a
, int64x1_t __b
)
1766 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
1767 vorn_u64 (uint64x1_t __a
, uint64x1_t __b
)
1772 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1773 vornq_s8 (int8x16_t __a
, int8x16_t __b
)
1778 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1779 vornq_s16 (int16x8_t __a
, int16x8_t __b
)
1784 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1785 vornq_s32 (int32x4_t __a
, int32x4_t __b
)
1790 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
1791 vornq_s64 (int64x2_t __a
, int64x2_t __b
)
1796 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1797 vornq_u8 (uint8x16_t __a
, uint8x16_t __b
)
1802 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1803 vornq_u16 (uint16x8_t __a
, uint16x8_t __b
)
1808 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1809 vornq_u32 (uint32x4_t __a
, uint32x4_t __b
)
1814 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
1815 vornq_u64 (uint64x2_t __a
, uint64x2_t __b
)
1820 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
1821 vsub_s8 (int8x8_t __a
, int8x8_t __b
)
1826 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
1827 vsub_s16 (int16x4_t __a
, int16x4_t __b
)
1832 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
1833 vsub_s32 (int32x2_t __a
, int32x2_t __b
)
1838 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
1839 vsub_f32 (float32x2_t __a
, float32x2_t __b
)
1844 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
1845 vsub_f64 (float64x1_t __a
, float64x1_t __b
)
1850 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
1851 vsub_u8 (uint8x8_t __a
, uint8x8_t __b
)
1856 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
1857 vsub_u16 (uint16x4_t __a
, uint16x4_t __b
)
1862 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
1863 vsub_u32 (uint32x2_t __a
, uint32x2_t __b
)
1868 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
1869 vsub_s64 (int64x1_t __a
, int64x1_t __b
)
1874 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
1875 vsub_u64 (uint64x1_t __a
, uint64x1_t __b
)
1880 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
1881 vsubq_s8 (int8x16_t __a
, int8x16_t __b
)
1886 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1887 vsubq_s16 (int16x8_t __a
, int16x8_t __b
)
1892 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1893 vsubq_s32 (int32x4_t __a
, int32x4_t __b
)
1898 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
1899 vsubq_s64 (int64x2_t __a
, int64x2_t __b
)
1904 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
1905 vsubq_f32 (float32x4_t __a
, float32x4_t __b
)
1910 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
1911 vsubq_f64 (float64x2_t __a
, float64x2_t __b
)
1916 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
1917 vsubq_u8 (uint8x16_t __a
, uint8x16_t __b
)
1922 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1923 vsubq_u16 (uint16x8_t __a
, uint16x8_t __b
)
1928 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1929 vsubq_u32 (uint32x4_t __a
, uint32x4_t __b
)
1934 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
1935 vsubq_u64 (uint64x2_t __a
, uint64x2_t __b
)
1940 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1941 vsubl_s8 (int8x8_t __a
, int8x8_t __b
)
1943 return (int16x8_t
) __builtin_aarch64_ssublv8qi (__a
, __b
);
1946 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1947 vsubl_s16 (int16x4_t __a
, int16x4_t __b
)
1949 return (int32x4_t
) __builtin_aarch64_ssublv4hi (__a
, __b
);
1952 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
1953 vsubl_s32 (int32x2_t __a
, int32x2_t __b
)
1955 return (int64x2_t
) __builtin_aarch64_ssublv2si (__a
, __b
);
1958 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1959 vsubl_u8 (uint8x8_t __a
, uint8x8_t __b
)
1961 return (uint16x8_t
) __builtin_aarch64_usublv8qi ((int8x8_t
) __a
,
1965 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
1966 vsubl_u16 (uint16x4_t __a
, uint16x4_t __b
)
1968 return (uint32x4_t
) __builtin_aarch64_usublv4hi ((int16x4_t
) __a
,
1972 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
1973 vsubl_u32 (uint32x2_t __a
, uint32x2_t __b
)
1975 return (uint64x2_t
) __builtin_aarch64_usublv2si ((int32x2_t
) __a
,
1979 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
1980 vsubl_high_s8 (int8x16_t __a
, int8x16_t __b
)
1982 return (int16x8_t
) __builtin_aarch64_ssubl2v16qi (__a
, __b
);
1985 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
1986 vsubl_high_s16 (int16x8_t __a
, int16x8_t __b
)
1988 return (int32x4_t
) __builtin_aarch64_ssubl2v8hi (__a
, __b
);
1991 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
1992 vsubl_high_s32 (int32x4_t __a
, int32x4_t __b
)
1994 return (int64x2_t
) __builtin_aarch64_ssubl2v4si (__a
, __b
);
1997 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
1998 vsubl_high_u8 (uint8x16_t __a
, uint8x16_t __b
)
2000 return (uint16x8_t
) __builtin_aarch64_usubl2v16qi ((int8x16_t
) __a
,
2004 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
2005 vsubl_high_u16 (uint16x8_t __a
, uint16x8_t __b
)
2007 return (uint32x4_t
) __builtin_aarch64_usubl2v8hi ((int16x8_t
) __a
,
2011 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
2012 vsubl_high_u32 (uint32x4_t __a
, uint32x4_t __b
)
2014 return (uint64x2_t
) __builtin_aarch64_usubl2v4si ((int32x4_t
) __a
,
2018 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2019 vsubw_s8 (int16x8_t __a
, int8x8_t __b
)
2021 return (int16x8_t
) __builtin_aarch64_ssubwv8qi (__a
, __b
);
2024 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2025 vsubw_s16 (int32x4_t __a
, int16x4_t __b
)
2027 return (int32x4_t
) __builtin_aarch64_ssubwv4hi (__a
, __b
);
2030 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
2031 vsubw_s32 (int64x2_t __a
, int32x2_t __b
)
2033 return (int64x2_t
) __builtin_aarch64_ssubwv2si (__a
, __b
);
2036 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
2037 vsubw_u8 (uint16x8_t __a
, uint8x8_t __b
)
2039 return (uint16x8_t
) __builtin_aarch64_usubwv8qi ((int16x8_t
) __a
,
2043 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
2044 vsubw_u16 (uint32x4_t __a
, uint16x4_t __b
)
2046 return (uint32x4_t
) __builtin_aarch64_usubwv4hi ((int32x4_t
) __a
,
2050 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
2051 vsubw_u32 (uint64x2_t __a
, uint32x2_t __b
)
2053 return (uint64x2_t
) __builtin_aarch64_usubwv2si ((int64x2_t
) __a
,
2057 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2058 vsubw_high_s8 (int16x8_t __a
, int8x16_t __b
)
2060 return (int16x8_t
) __builtin_aarch64_ssubw2v16qi (__a
, __b
);
2063 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2064 vsubw_high_s16 (int32x4_t __a
, int16x8_t __b
)
2066 return (int32x4_t
) __builtin_aarch64_ssubw2v8hi (__a
, __b
);
2069 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
2070 vsubw_high_s32 (int64x2_t __a
, int32x4_t __b
)
2072 return (int64x2_t
) __builtin_aarch64_ssubw2v4si (__a
, __b
);
2075 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
2076 vsubw_high_u8 (uint16x8_t __a
, uint8x16_t __b
)
2078 return (uint16x8_t
) __builtin_aarch64_usubw2v16qi ((int16x8_t
) __a
,
2082 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
2083 vsubw_high_u16 (uint32x4_t __a
, uint16x8_t __b
)
2085 return (uint32x4_t
) __builtin_aarch64_usubw2v8hi ((int32x4_t
) __a
,
2089 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
2090 vsubw_high_u32 (uint64x2_t __a
, uint32x4_t __b
)
2092 return (uint64x2_t
) __builtin_aarch64_usubw2v4si ((int64x2_t
) __a
,
2096 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
2097 vqadd_s8 (int8x8_t __a
, int8x8_t __b
)
2099 return (int8x8_t
) __builtin_aarch64_sqaddv8qi (__a
, __b
);
2102 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2103 vqadd_s16 (int16x4_t __a
, int16x4_t __b
)
2105 return (int16x4_t
) __builtin_aarch64_sqaddv4hi (__a
, __b
);
2108 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2109 vqadd_s32 (int32x2_t __a
, int32x2_t __b
)
2111 return (int32x2_t
) __builtin_aarch64_sqaddv2si (__a
, __b
);
2114 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
2115 vqadd_s64 (int64x1_t __a
, int64x1_t __b
)
2117 return (int64x1_t
) {__builtin_aarch64_sqadddi (__a
[0], __b
[0])};
2120 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
2121 vqadd_u8 (uint8x8_t __a
, uint8x8_t __b
)
2123 return __builtin_aarch64_uqaddv8qi_uuu (__a
, __b
);
2126 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
2127 vhsub_s8 (int8x8_t __a
, int8x8_t __b
)
2129 return (int8x8_t
)__builtin_aarch64_shsubv8qi (__a
, __b
);
2132 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2133 vhsub_s16 (int16x4_t __a
, int16x4_t __b
)
2135 return (int16x4_t
) __builtin_aarch64_shsubv4hi (__a
, __b
);
2138 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2139 vhsub_s32 (int32x2_t __a
, int32x2_t __b
)
2141 return (int32x2_t
) __builtin_aarch64_shsubv2si (__a
, __b
);
2144 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
2145 vhsub_u8 (uint8x8_t __a
, uint8x8_t __b
)
2147 return (uint8x8_t
) __builtin_aarch64_uhsubv8qi ((int8x8_t
) __a
,
2151 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
2152 vhsub_u16 (uint16x4_t __a
, uint16x4_t __b
)
2154 return (uint16x4_t
) __builtin_aarch64_uhsubv4hi ((int16x4_t
) __a
,
2158 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
2159 vhsub_u32 (uint32x2_t __a
, uint32x2_t __b
)
2161 return (uint32x2_t
) __builtin_aarch64_uhsubv2si ((int32x2_t
) __a
,
2165 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
2166 vhsubq_s8 (int8x16_t __a
, int8x16_t __b
)
2168 return (int8x16_t
) __builtin_aarch64_shsubv16qi (__a
, __b
);
2171 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2172 vhsubq_s16 (int16x8_t __a
, int16x8_t __b
)
2174 return (int16x8_t
) __builtin_aarch64_shsubv8hi (__a
, __b
);
2177 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2178 vhsubq_s32 (int32x4_t __a
, int32x4_t __b
)
2180 return (int32x4_t
) __builtin_aarch64_shsubv4si (__a
, __b
);
2183 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
2184 vhsubq_u8 (uint8x16_t __a
, uint8x16_t __b
)
2186 return (uint8x16_t
) __builtin_aarch64_uhsubv16qi ((int8x16_t
) __a
,
2190 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
2191 vhsubq_u16 (uint16x8_t __a
, uint16x8_t __b
)
2193 return (uint16x8_t
) __builtin_aarch64_uhsubv8hi ((int16x8_t
) __a
,
2197 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
2198 vhsubq_u32 (uint32x4_t __a
, uint32x4_t __b
)
2200 return (uint32x4_t
) __builtin_aarch64_uhsubv4si ((int32x4_t
) __a
,
2204 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
2205 vsubhn_s16 (int16x8_t __a
, int16x8_t __b
)
2207 return (int8x8_t
) __builtin_aarch64_subhnv8hi (__a
, __b
);
2210 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2211 vsubhn_s32 (int32x4_t __a
, int32x4_t __b
)
2213 return (int16x4_t
) __builtin_aarch64_subhnv4si (__a
, __b
);
2216 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2217 vsubhn_s64 (int64x2_t __a
, int64x2_t __b
)
2219 return (int32x2_t
) __builtin_aarch64_subhnv2di (__a
, __b
);
2222 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
2223 vsubhn_u16 (uint16x8_t __a
, uint16x8_t __b
)
2225 return (uint8x8_t
) __builtin_aarch64_subhnv8hi ((int16x8_t
) __a
,
2229 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
2230 vsubhn_u32 (uint32x4_t __a
, uint32x4_t __b
)
2232 return (uint16x4_t
) __builtin_aarch64_subhnv4si ((int32x4_t
) __a
,
2236 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
2237 vsubhn_u64 (uint64x2_t __a
, uint64x2_t __b
)
2239 return (uint32x2_t
) __builtin_aarch64_subhnv2di ((int64x2_t
) __a
,
2243 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
2244 vrsubhn_s16 (int16x8_t __a
, int16x8_t __b
)
2246 return (int8x8_t
) __builtin_aarch64_rsubhnv8hi (__a
, __b
);
2249 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2250 vrsubhn_s32 (int32x4_t __a
, int32x4_t __b
)
2252 return (int16x4_t
) __builtin_aarch64_rsubhnv4si (__a
, __b
);
2255 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2256 vrsubhn_s64 (int64x2_t __a
, int64x2_t __b
)
2258 return (int32x2_t
) __builtin_aarch64_rsubhnv2di (__a
, __b
);
2261 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
2262 vrsubhn_u16 (uint16x8_t __a
, uint16x8_t __b
)
2264 return (uint8x8_t
) __builtin_aarch64_rsubhnv8hi ((int16x8_t
) __a
,
2268 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
2269 vrsubhn_u32 (uint32x4_t __a
, uint32x4_t __b
)
2271 return (uint16x4_t
) __builtin_aarch64_rsubhnv4si ((int32x4_t
) __a
,
2275 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
2276 vrsubhn_u64 (uint64x2_t __a
, uint64x2_t __b
)
2278 return (uint32x2_t
) __builtin_aarch64_rsubhnv2di ((int64x2_t
) __a
,
2282 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
2283 vrsubhn_high_s16 (int8x8_t __a
, int16x8_t __b
, int16x8_t __c
)
2285 return (int8x16_t
) __builtin_aarch64_rsubhn2v8hi (__a
, __b
, __c
);
2288 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2289 vrsubhn_high_s32 (int16x4_t __a
, int32x4_t __b
, int32x4_t __c
)
2291 return (int16x8_t
) __builtin_aarch64_rsubhn2v4si (__a
, __b
, __c
);
2294 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2295 vrsubhn_high_s64 (int32x2_t __a
, int64x2_t __b
, int64x2_t __c
)
2297 return (int32x4_t
) __builtin_aarch64_rsubhn2v2di (__a
, __b
, __c
);
2300 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
2301 vrsubhn_high_u16 (uint8x8_t __a
, uint16x8_t __b
, uint16x8_t __c
)
2303 return (uint8x16_t
) __builtin_aarch64_rsubhn2v8hi ((int8x8_t
) __a
,
2308 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
2309 vrsubhn_high_u32 (uint16x4_t __a
, uint32x4_t __b
, uint32x4_t __c
)
2311 return (uint16x8_t
) __builtin_aarch64_rsubhn2v4si ((int16x4_t
) __a
,
2316 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
2317 vrsubhn_high_u64 (uint32x2_t __a
, uint64x2_t __b
, uint64x2_t __c
)
2319 return (uint32x4_t
) __builtin_aarch64_rsubhn2v2di ((int32x2_t
) __a
,
2324 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
2325 vsubhn_high_s16 (int8x8_t __a
, int16x8_t __b
, int16x8_t __c
)
2327 return (int8x16_t
) __builtin_aarch64_subhn2v8hi (__a
, __b
, __c
);
2330 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2331 vsubhn_high_s32 (int16x4_t __a
, int32x4_t __b
, int32x4_t __c
)
2333 return (int16x8_t
) __builtin_aarch64_subhn2v4si (__a
, __b
, __c
);;
2336 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2337 vsubhn_high_s64 (int32x2_t __a
, int64x2_t __b
, int64x2_t __c
)
2339 return (int32x4_t
) __builtin_aarch64_subhn2v2di (__a
, __b
, __c
);
2342 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
2343 vsubhn_high_u16 (uint8x8_t __a
, uint16x8_t __b
, uint16x8_t __c
)
2345 return (uint8x16_t
) __builtin_aarch64_subhn2v8hi ((int8x8_t
) __a
,
2350 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
2351 vsubhn_high_u32 (uint16x4_t __a
, uint32x4_t __b
, uint32x4_t __c
)
2353 return (uint16x8_t
) __builtin_aarch64_subhn2v4si ((int16x4_t
) __a
,
2358 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
2359 vsubhn_high_u64 (uint32x2_t __a
, uint64x2_t __b
, uint64x2_t __c
)
2361 return (uint32x4_t
) __builtin_aarch64_subhn2v2di ((int32x2_t
) __a
,
2366 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
2367 vqadd_u16 (uint16x4_t __a
, uint16x4_t __b
)
2369 return __builtin_aarch64_uqaddv4hi_uuu (__a
, __b
);
2372 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
2373 vqadd_u32 (uint32x2_t __a
, uint32x2_t __b
)
2375 return __builtin_aarch64_uqaddv2si_uuu (__a
, __b
);
2378 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
2379 vqadd_u64 (uint64x1_t __a
, uint64x1_t __b
)
2381 return (uint64x1_t
) {__builtin_aarch64_uqadddi_uuu (__a
[0], __b
[0])};
2384 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
2385 vqaddq_s8 (int8x16_t __a
, int8x16_t __b
)
2387 return (int8x16_t
) __builtin_aarch64_sqaddv16qi (__a
, __b
);
2390 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2391 vqaddq_s16 (int16x8_t __a
, int16x8_t __b
)
2393 return (int16x8_t
) __builtin_aarch64_sqaddv8hi (__a
, __b
);
2396 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2397 vqaddq_s32 (int32x4_t __a
, int32x4_t __b
)
2399 return (int32x4_t
) __builtin_aarch64_sqaddv4si (__a
, __b
);
2402 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
2403 vqaddq_s64 (int64x2_t __a
, int64x2_t __b
)
2405 return (int64x2_t
) __builtin_aarch64_sqaddv2di (__a
, __b
);
2408 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
2409 vqaddq_u8 (uint8x16_t __a
, uint8x16_t __b
)
2411 return __builtin_aarch64_uqaddv16qi_uuu (__a
, __b
);
2414 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
2415 vqaddq_u16 (uint16x8_t __a
, uint16x8_t __b
)
2417 return __builtin_aarch64_uqaddv8hi_uuu (__a
, __b
);
2420 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
2421 vqaddq_u32 (uint32x4_t __a
, uint32x4_t __b
)
2423 return __builtin_aarch64_uqaddv4si_uuu (__a
, __b
);
2426 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
2427 vqaddq_u64 (uint64x2_t __a
, uint64x2_t __b
)
2429 return __builtin_aarch64_uqaddv2di_uuu (__a
, __b
);
2432 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
2433 vqsub_s8 (int8x8_t __a
, int8x8_t __b
)
2435 return (int8x8_t
) __builtin_aarch64_sqsubv8qi (__a
, __b
);
2438 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2439 vqsub_s16 (int16x4_t __a
, int16x4_t __b
)
2441 return (int16x4_t
) __builtin_aarch64_sqsubv4hi (__a
, __b
);
2444 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2445 vqsub_s32 (int32x2_t __a
, int32x2_t __b
)
2447 return (int32x2_t
) __builtin_aarch64_sqsubv2si (__a
, __b
);
2450 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
2451 vqsub_s64 (int64x1_t __a
, int64x1_t __b
)
2453 return (int64x1_t
) {__builtin_aarch64_sqsubdi (__a
[0], __b
[0])};
2456 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
2457 vqsub_u8 (uint8x8_t __a
, uint8x8_t __b
)
2459 return __builtin_aarch64_uqsubv8qi_uuu (__a
, __b
);
2462 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
2463 vqsub_u16 (uint16x4_t __a
, uint16x4_t __b
)
2465 return __builtin_aarch64_uqsubv4hi_uuu (__a
, __b
);
2468 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
2469 vqsub_u32 (uint32x2_t __a
, uint32x2_t __b
)
2471 return __builtin_aarch64_uqsubv2si_uuu (__a
, __b
);
2474 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
2475 vqsub_u64 (uint64x1_t __a
, uint64x1_t __b
)
2477 return (uint64x1_t
) {__builtin_aarch64_uqsubdi_uuu (__a
[0], __b
[0])};
2480 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
2481 vqsubq_s8 (int8x16_t __a
, int8x16_t __b
)
2483 return (int8x16_t
) __builtin_aarch64_sqsubv16qi (__a
, __b
);
2486 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2487 vqsubq_s16 (int16x8_t __a
, int16x8_t __b
)
2489 return (int16x8_t
) __builtin_aarch64_sqsubv8hi (__a
, __b
);
2492 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2493 vqsubq_s32 (int32x4_t __a
, int32x4_t __b
)
2495 return (int32x4_t
) __builtin_aarch64_sqsubv4si (__a
, __b
);
2498 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
2499 vqsubq_s64 (int64x2_t __a
, int64x2_t __b
)
2501 return (int64x2_t
) __builtin_aarch64_sqsubv2di (__a
, __b
);
2504 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
2505 vqsubq_u8 (uint8x16_t __a
, uint8x16_t __b
)
2507 return __builtin_aarch64_uqsubv16qi_uuu (__a
, __b
);
2510 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
2511 vqsubq_u16 (uint16x8_t __a
, uint16x8_t __b
)
2513 return __builtin_aarch64_uqsubv8hi_uuu (__a
, __b
);
2516 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
2517 vqsubq_u32 (uint32x4_t __a
, uint32x4_t __b
)
2519 return __builtin_aarch64_uqsubv4si_uuu (__a
, __b
);
2522 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
2523 vqsubq_u64 (uint64x2_t __a
, uint64x2_t __b
)
2525 return __builtin_aarch64_uqsubv2di_uuu (__a
, __b
);
2528 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
2529 vqneg_s8 (int8x8_t __a
)
2531 return (int8x8_t
) __builtin_aarch64_sqnegv8qi (__a
);
2534 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2535 vqneg_s16 (int16x4_t __a
)
2537 return (int16x4_t
) __builtin_aarch64_sqnegv4hi (__a
);
2540 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2541 vqneg_s32 (int32x2_t __a
)
2543 return (int32x2_t
) __builtin_aarch64_sqnegv2si (__a
);
2546 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
2547 vqneg_s64 (int64x1_t __a
)
2549 return (int64x1_t
) {__builtin_aarch64_sqnegdi (__a
[0])};
2552 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
2553 vqnegq_s8 (int8x16_t __a
)
2555 return (int8x16_t
) __builtin_aarch64_sqnegv16qi (__a
);
2558 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2559 vqnegq_s16 (int16x8_t __a
)
2561 return (int16x8_t
) __builtin_aarch64_sqnegv8hi (__a
);
2564 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2565 vqnegq_s32 (int32x4_t __a
)
2567 return (int32x4_t
) __builtin_aarch64_sqnegv4si (__a
);
2570 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
2571 vqabs_s8 (int8x8_t __a
)
2573 return (int8x8_t
) __builtin_aarch64_sqabsv8qi (__a
);
2576 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2577 vqabs_s16 (int16x4_t __a
)
2579 return (int16x4_t
) __builtin_aarch64_sqabsv4hi (__a
);
2582 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2583 vqabs_s32 (int32x2_t __a
)
2585 return (int32x2_t
) __builtin_aarch64_sqabsv2si (__a
);
2588 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
2589 vqabs_s64 (int64x1_t __a
)
2591 return (int64x1_t
) {__builtin_aarch64_sqabsdi (__a
[0])};
2594 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
2595 vqabsq_s8 (int8x16_t __a
)
2597 return (int8x16_t
) __builtin_aarch64_sqabsv16qi (__a
);
2600 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2601 vqabsq_s16 (int16x8_t __a
)
2603 return (int16x8_t
) __builtin_aarch64_sqabsv8hi (__a
);
2606 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2607 vqabsq_s32 (int32x4_t __a
)
2609 return (int32x4_t
) __builtin_aarch64_sqabsv4si (__a
);
2612 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2613 vqdmulh_s16 (int16x4_t __a
, int16x4_t __b
)
2615 return (int16x4_t
) __builtin_aarch64_sqdmulhv4hi (__a
, __b
);
2618 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2619 vqdmulh_s32 (int32x2_t __a
, int32x2_t __b
)
2621 return (int32x2_t
) __builtin_aarch64_sqdmulhv2si (__a
, __b
);
2624 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2625 vqdmulhq_s16 (int16x8_t __a
, int16x8_t __b
)
2627 return (int16x8_t
) __builtin_aarch64_sqdmulhv8hi (__a
, __b
);
2630 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2631 vqdmulhq_s32 (int32x4_t __a
, int32x4_t __b
)
2633 return (int32x4_t
) __builtin_aarch64_sqdmulhv4si (__a
, __b
);
2636 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2637 vqrdmulh_s16 (int16x4_t __a
, int16x4_t __b
)
2639 return (int16x4_t
) __builtin_aarch64_sqrdmulhv4hi (__a
, __b
);
2642 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2643 vqrdmulh_s32 (int32x2_t __a
, int32x2_t __b
)
2645 return (int32x2_t
) __builtin_aarch64_sqrdmulhv2si (__a
, __b
);
2648 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
2649 vqrdmulhq_s16 (int16x8_t __a
, int16x8_t __b
)
2651 return (int16x8_t
) __builtin_aarch64_sqrdmulhv8hi (__a
, __b
);
2654 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
2655 vqrdmulhq_s32 (int32x4_t __a
, int32x4_t __b
)
2657 return (int32x4_t
) __builtin_aarch64_sqrdmulhv4si (__a
, __b
);
2660 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
2661 vcreate_s8 (uint64_t __a
)
2663 return (int8x8_t
) __a
;
2666 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
2667 vcreate_s16 (uint64_t __a
)
2669 return (int16x4_t
) __a
;
2672 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
2673 vcreate_s32 (uint64_t __a
)
2675 return (int32x2_t
) __a
;
2678 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
2679 vcreate_s64 (uint64_t __a
)
2681 return (int64x1_t
) {__a
};
2684 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
2685 vcreate_f16 (uint64_t __a
)
2687 return (float16x4_t
) __a
;
2690 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
2691 vcreate_f32 (uint64_t __a
)
2693 return (float32x2_t
) __a
;
2696 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
2697 vcreate_u8 (uint64_t __a
)
2699 return (uint8x8_t
) __a
;
2702 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
2703 vcreate_u16 (uint64_t __a
)
2705 return (uint16x4_t
) __a
;
2708 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
2709 vcreate_u32 (uint64_t __a
)
2711 return (uint32x2_t
) __a
;
2714 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
2715 vcreate_u64 (uint64_t __a
)
2717 return (uint64x1_t
) {__a
};
2720 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
2721 vcreate_f64 (uint64_t __a
)
2723 return (float64x1_t
) __a
;
2726 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2727 vcreate_p8 (uint64_t __a
)
2729 return (poly8x8_t
) __a
;
2732 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
2733 vcreate_p16 (uint64_t __a
)
2735 return (poly16x4_t
) __a
;
2740 __extension__
static __inline float16_t
__attribute__ ((__always_inline__
))
2741 vget_lane_f16 (float16x4_t __a
, const int __b
)
2743 return __aarch64_vget_lane_any (__a
, __b
);
2746 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
2747 vget_lane_f32 (float32x2_t __a
, const int __b
)
2749 return __aarch64_vget_lane_any (__a
, __b
);
2752 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
2753 vget_lane_f64 (float64x1_t __a
, const int __b
)
2755 return __aarch64_vget_lane_any (__a
, __b
);
2758 __extension__
static __inline poly8_t
__attribute__ ((__always_inline__
))
2759 vget_lane_p8 (poly8x8_t __a
, const int __b
)
2761 return __aarch64_vget_lane_any (__a
, __b
);
2764 __extension__
static __inline poly16_t
__attribute__ ((__always_inline__
))
2765 vget_lane_p16 (poly16x4_t __a
, const int __b
)
2767 return __aarch64_vget_lane_any (__a
, __b
);
2770 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
2771 vget_lane_s8 (int8x8_t __a
, const int __b
)
2773 return __aarch64_vget_lane_any (__a
, __b
);
2776 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
2777 vget_lane_s16 (int16x4_t __a
, const int __b
)
2779 return __aarch64_vget_lane_any (__a
, __b
);
2782 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
2783 vget_lane_s32 (int32x2_t __a
, const int __b
)
2785 return __aarch64_vget_lane_any (__a
, __b
);
2788 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
2789 vget_lane_s64 (int64x1_t __a
, const int __b
)
2791 return __aarch64_vget_lane_any (__a
, __b
);
2794 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
2795 vget_lane_u8 (uint8x8_t __a
, const int __b
)
2797 return __aarch64_vget_lane_any (__a
, __b
);
2800 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
2801 vget_lane_u16 (uint16x4_t __a
, const int __b
)
2803 return __aarch64_vget_lane_any (__a
, __b
);
2806 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
2807 vget_lane_u32 (uint32x2_t __a
, const int __b
)
2809 return __aarch64_vget_lane_any (__a
, __b
);
2812 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
2813 vget_lane_u64 (uint64x1_t __a
, const int __b
)
2815 return __aarch64_vget_lane_any (__a
, __b
);
2820 __extension__
static __inline float16_t
__attribute__ ((__always_inline__
))
2821 vgetq_lane_f16 (float16x8_t __a
, const int __b
)
2823 return __aarch64_vget_lane_any (__a
, __b
);
2826 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
2827 vgetq_lane_f32 (float32x4_t __a
, const int __b
)
2829 return __aarch64_vget_lane_any (__a
, __b
);
2832 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
2833 vgetq_lane_f64 (float64x2_t __a
, const int __b
)
2835 return __aarch64_vget_lane_any (__a
, __b
);
2838 __extension__
static __inline poly8_t
__attribute__ ((__always_inline__
))
2839 vgetq_lane_p8 (poly8x16_t __a
, const int __b
)
2841 return __aarch64_vget_lane_any (__a
, __b
);
2844 __extension__
static __inline poly16_t
__attribute__ ((__always_inline__
))
2845 vgetq_lane_p16 (poly16x8_t __a
, const int __b
)
2847 return __aarch64_vget_lane_any (__a
, __b
);
2850 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
2851 vgetq_lane_s8 (int8x16_t __a
, const int __b
)
2853 return __aarch64_vget_lane_any (__a
, __b
);
2856 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
2857 vgetq_lane_s16 (int16x8_t __a
, const int __b
)
2859 return __aarch64_vget_lane_any (__a
, __b
);
2862 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
2863 vgetq_lane_s32 (int32x4_t __a
, const int __b
)
2865 return __aarch64_vget_lane_any (__a
, __b
);
2868 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
2869 vgetq_lane_s64 (int64x2_t __a
, const int __b
)
2871 return __aarch64_vget_lane_any (__a
, __b
);
2874 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
2875 vgetq_lane_u8 (uint8x16_t __a
, const int __b
)
2877 return __aarch64_vget_lane_any (__a
, __b
);
2880 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
2881 vgetq_lane_u16 (uint16x8_t __a
, const int __b
)
2883 return __aarch64_vget_lane_any (__a
, __b
);
2886 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
2887 vgetq_lane_u32 (uint32x4_t __a
, const int __b
)
2889 return __aarch64_vget_lane_any (__a
, __b
);
2892 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
2893 vgetq_lane_u64 (uint64x2_t __a
, const int __b
)
2895 return __aarch64_vget_lane_any (__a
, __b
);
2900 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2901 vreinterpret_p8_f16 (float16x4_t __a
)
2903 return (poly8x8_t
) __a
;
2906 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2907 vreinterpret_p8_f64 (float64x1_t __a
)
2909 return (poly8x8_t
) __a
;
2912 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2913 vreinterpret_p8_s8 (int8x8_t __a
)
2915 return (poly8x8_t
) __a
;
2918 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2919 vreinterpret_p8_s16 (int16x4_t __a
)
2921 return (poly8x8_t
) __a
;
2924 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2925 vreinterpret_p8_s32 (int32x2_t __a
)
2927 return (poly8x8_t
) __a
;
2930 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2931 vreinterpret_p8_s64 (int64x1_t __a
)
2933 return (poly8x8_t
) __a
;
2936 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2937 vreinterpret_p8_f32 (float32x2_t __a
)
2939 return (poly8x8_t
) __a
;
2942 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2943 vreinterpret_p8_u8 (uint8x8_t __a
)
2945 return (poly8x8_t
) __a
;
2948 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2949 vreinterpret_p8_u16 (uint16x4_t __a
)
2951 return (poly8x8_t
) __a
;
2954 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2955 vreinterpret_p8_u32 (uint32x2_t __a
)
2957 return (poly8x8_t
) __a
;
2960 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2961 vreinterpret_p8_u64 (uint64x1_t __a
)
2963 return (poly8x8_t
) __a
;
2966 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
2967 vreinterpret_p8_p16 (poly16x4_t __a
)
2969 return (poly8x8_t
) __a
;
2972 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
2973 vreinterpretq_p8_f64 (float64x2_t __a
)
2975 return (poly8x16_t
) __a
;
2978 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
2979 vreinterpretq_p8_s8 (int8x16_t __a
)
2981 return (poly8x16_t
) __a
;
2984 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
2985 vreinterpretq_p8_s16 (int16x8_t __a
)
2987 return (poly8x16_t
) __a
;
2990 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
2991 vreinterpretq_p8_s32 (int32x4_t __a
)
2993 return (poly8x16_t
) __a
;
2996 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
2997 vreinterpretq_p8_s64 (int64x2_t __a
)
2999 return (poly8x16_t
) __a
;
3002 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
3003 vreinterpretq_p8_f16 (float16x8_t __a
)
3005 return (poly8x16_t
) __a
;
3008 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
3009 vreinterpretq_p8_f32 (float32x4_t __a
)
3011 return (poly8x16_t
) __a
;
3014 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
3015 vreinterpretq_p8_u8 (uint8x16_t __a
)
3017 return (poly8x16_t
) __a
;
3020 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
3021 vreinterpretq_p8_u16 (uint16x8_t __a
)
3023 return (poly8x16_t
) __a
;
3026 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
3027 vreinterpretq_p8_u32 (uint32x4_t __a
)
3029 return (poly8x16_t
) __a
;
3032 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
3033 vreinterpretq_p8_u64 (uint64x2_t __a
)
3035 return (poly8x16_t
) __a
;
3038 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
3039 vreinterpretq_p8_p16 (poly16x8_t __a
)
3041 return (poly8x16_t
) __a
;
3044 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3045 vreinterpret_p16_f16 (float16x4_t __a
)
3047 return (poly16x4_t
) __a
;
3050 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3051 vreinterpret_p16_f64 (float64x1_t __a
)
3053 return (poly16x4_t
) __a
;
3056 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3057 vreinterpret_p16_s8 (int8x8_t __a
)
3059 return (poly16x4_t
) __a
;
3062 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3063 vreinterpret_p16_s16 (int16x4_t __a
)
3065 return (poly16x4_t
) __a
;
3068 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3069 vreinterpret_p16_s32 (int32x2_t __a
)
3071 return (poly16x4_t
) __a
;
3074 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3075 vreinterpret_p16_s64 (int64x1_t __a
)
3077 return (poly16x4_t
) __a
;
3080 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3081 vreinterpret_p16_f32 (float32x2_t __a
)
3083 return (poly16x4_t
) __a
;
3086 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3087 vreinterpret_p16_u8 (uint8x8_t __a
)
3089 return (poly16x4_t
) __a
;
3092 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3093 vreinterpret_p16_u16 (uint16x4_t __a
)
3095 return (poly16x4_t
) __a
;
3098 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3099 vreinterpret_p16_u32 (uint32x2_t __a
)
3101 return (poly16x4_t
) __a
;
3104 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3105 vreinterpret_p16_u64 (uint64x1_t __a
)
3107 return (poly16x4_t
) __a
;
3110 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
3111 vreinterpret_p16_p8 (poly8x8_t __a
)
3113 return (poly16x4_t
) __a
;
3116 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3117 vreinterpretq_p16_f64 (float64x2_t __a
)
3119 return (poly16x8_t
) __a
;
3122 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3123 vreinterpretq_p16_s8 (int8x16_t __a
)
3125 return (poly16x8_t
) __a
;
3128 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3129 vreinterpretq_p16_s16 (int16x8_t __a
)
3131 return (poly16x8_t
) __a
;
3134 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3135 vreinterpretq_p16_s32 (int32x4_t __a
)
3137 return (poly16x8_t
) __a
;
3140 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3141 vreinterpretq_p16_s64 (int64x2_t __a
)
3143 return (poly16x8_t
) __a
;
3146 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3147 vreinterpretq_p16_f16 (float16x8_t __a
)
3149 return (poly16x8_t
) __a
;
3152 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3153 vreinterpretq_p16_f32 (float32x4_t __a
)
3155 return (poly16x8_t
) __a
;
3158 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3159 vreinterpretq_p16_u8 (uint8x16_t __a
)
3161 return (poly16x8_t
) __a
;
3164 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3165 vreinterpretq_p16_u16 (uint16x8_t __a
)
3167 return (poly16x8_t
) __a
;
3170 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3171 vreinterpretq_p16_u32 (uint32x4_t __a
)
3173 return (poly16x8_t
) __a
;
3176 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3177 vreinterpretq_p16_u64 (uint64x2_t __a
)
3179 return (poly16x8_t
) __a
;
3182 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
3183 vreinterpretq_p16_p8 (poly8x16_t __a
)
3185 return (poly16x8_t
) __a
;
3188 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3189 vreinterpret_f16_f64 (float64x1_t __a
)
3191 return (float16x4_t
) __a
;
3194 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3195 vreinterpret_f16_s8 (int8x8_t __a
)
3197 return (float16x4_t
) __a
;
3200 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3201 vreinterpret_f16_s16 (int16x4_t __a
)
3203 return (float16x4_t
) __a
;
3206 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3207 vreinterpret_f16_s32 (int32x2_t __a
)
3209 return (float16x4_t
) __a
;
3212 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3213 vreinterpret_f16_s64 (int64x1_t __a
)
3215 return (float16x4_t
) __a
;
3218 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3219 vreinterpret_f16_f32 (float32x2_t __a
)
3221 return (float16x4_t
) __a
;
3224 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3225 vreinterpret_f16_u8 (uint8x8_t __a
)
3227 return (float16x4_t
) __a
;
3230 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3231 vreinterpret_f16_u16 (uint16x4_t __a
)
3233 return (float16x4_t
) __a
;
3236 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3237 vreinterpret_f16_u32 (uint32x2_t __a
)
3239 return (float16x4_t
) __a
;
3242 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3243 vreinterpret_f16_u64 (uint64x1_t __a
)
3245 return (float16x4_t
) __a
;
3248 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3249 vreinterpret_f16_p8 (poly8x8_t __a
)
3251 return (float16x4_t
) __a
;
3254 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
3255 vreinterpret_f16_p16 (poly16x4_t __a
)
3257 return (float16x4_t
) __a
;
3260 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3261 vreinterpretq_f16_f64 (float64x2_t __a
)
3263 return (float16x8_t
) __a
;
3266 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3267 vreinterpretq_f16_s8 (int8x16_t __a
)
3269 return (float16x8_t
) __a
;
3272 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3273 vreinterpretq_f16_s16 (int16x8_t __a
)
3275 return (float16x8_t
) __a
;
3278 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3279 vreinterpretq_f16_s32 (int32x4_t __a
)
3281 return (float16x8_t
) __a
;
3284 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3285 vreinterpretq_f16_s64 (int64x2_t __a
)
3287 return (float16x8_t
) __a
;
3290 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3291 vreinterpretq_f16_f32 (float32x4_t __a
)
3293 return (float16x8_t
) __a
;
3296 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3297 vreinterpretq_f16_u8 (uint8x16_t __a
)
3299 return (float16x8_t
) __a
;
3302 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3303 vreinterpretq_f16_u16 (uint16x8_t __a
)
3305 return (float16x8_t
) __a
;
3308 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3309 vreinterpretq_f16_u32 (uint32x4_t __a
)
3311 return (float16x8_t
) __a
;
3314 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3315 vreinterpretq_f16_u64 (uint64x2_t __a
)
3317 return (float16x8_t
) __a
;
3320 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3321 vreinterpretq_f16_p8 (poly8x16_t __a
)
3323 return (float16x8_t
) __a
;
3326 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
3327 vreinterpretq_f16_p16 (poly16x8_t __a
)
3329 return (float16x8_t
) __a
;
3332 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3333 vreinterpret_f32_f16 (float16x4_t __a
)
3335 return (float32x2_t
) __a
;
3338 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3339 vreinterpret_f32_f64 (float64x1_t __a
)
3341 return (float32x2_t
) __a
;
3344 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3345 vreinterpret_f32_s8 (int8x8_t __a
)
3347 return (float32x2_t
) __a
;
3350 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3351 vreinterpret_f32_s16 (int16x4_t __a
)
3353 return (float32x2_t
) __a
;
3356 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3357 vreinterpret_f32_s32 (int32x2_t __a
)
3359 return (float32x2_t
) __a
;
3362 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3363 vreinterpret_f32_s64 (int64x1_t __a
)
3365 return (float32x2_t
) __a
;
3368 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3369 vreinterpret_f32_u8 (uint8x8_t __a
)
3371 return (float32x2_t
) __a
;
3374 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3375 vreinterpret_f32_u16 (uint16x4_t __a
)
3377 return (float32x2_t
) __a
;
3380 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3381 vreinterpret_f32_u32 (uint32x2_t __a
)
3383 return (float32x2_t
) __a
;
3386 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3387 vreinterpret_f32_u64 (uint64x1_t __a
)
3389 return (float32x2_t
) __a
;
3392 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3393 vreinterpret_f32_p8 (poly8x8_t __a
)
3395 return (float32x2_t
) __a
;
3398 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
3399 vreinterpret_f32_p16 (poly16x4_t __a
)
3401 return (float32x2_t
) __a
;
3404 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3405 vreinterpretq_f32_f16 (float16x8_t __a
)
3407 return (float32x4_t
) __a
;
3410 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3411 vreinterpretq_f32_f64 (float64x2_t __a
)
3413 return (float32x4_t
) __a
;
3416 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3417 vreinterpretq_f32_s8 (int8x16_t __a
)
3419 return (float32x4_t
) __a
;
3422 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3423 vreinterpretq_f32_s16 (int16x8_t __a
)
3425 return (float32x4_t
) __a
;
3428 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3429 vreinterpretq_f32_s32 (int32x4_t __a
)
3431 return (float32x4_t
) __a
;
3434 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3435 vreinterpretq_f32_s64 (int64x2_t __a
)
3437 return (float32x4_t
) __a
;
3440 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3441 vreinterpretq_f32_u8 (uint8x16_t __a
)
3443 return (float32x4_t
) __a
;
3446 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3447 vreinterpretq_f32_u16 (uint16x8_t __a
)
3449 return (float32x4_t
) __a
;
3452 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3453 vreinterpretq_f32_u32 (uint32x4_t __a
)
3455 return (float32x4_t
) __a
;
3458 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3459 vreinterpretq_f32_u64 (uint64x2_t __a
)
3461 return (float32x4_t
) __a
;
3464 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3465 vreinterpretq_f32_p8 (poly8x16_t __a
)
3467 return (float32x4_t
) __a
;
3470 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
3471 vreinterpretq_f32_p16 (poly16x8_t __a
)
3473 return (float32x4_t
) __a
;
3476 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3477 vreinterpret_f64_f16 (float16x4_t __a
)
3479 return (float64x1_t
) __a
;
3482 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3483 vreinterpret_f64_f32 (float32x2_t __a
)
3485 return (float64x1_t
) __a
;
3488 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3489 vreinterpret_f64_p8 (poly8x8_t __a
)
3491 return (float64x1_t
) __a
;
3494 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3495 vreinterpret_f64_p16 (poly16x4_t __a
)
3497 return (float64x1_t
) __a
;
3500 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3501 vreinterpret_f64_s8 (int8x8_t __a
)
3503 return (float64x1_t
) __a
;
3506 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3507 vreinterpret_f64_s16 (int16x4_t __a
)
3509 return (float64x1_t
) __a
;
3512 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3513 vreinterpret_f64_s32 (int32x2_t __a
)
3515 return (float64x1_t
) __a
;
3518 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3519 vreinterpret_f64_s64 (int64x1_t __a
)
3521 return (float64x1_t
) __a
;
3524 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3525 vreinterpret_f64_u8 (uint8x8_t __a
)
3527 return (float64x1_t
) __a
;
3530 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3531 vreinterpret_f64_u16 (uint16x4_t __a
)
3533 return (float64x1_t
) __a
;
3536 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3537 vreinterpret_f64_u32 (uint32x2_t __a
)
3539 return (float64x1_t
) __a
;
3542 __extension__
static __inline float64x1_t
__attribute__((__always_inline__
))
3543 vreinterpret_f64_u64 (uint64x1_t __a
)
3545 return (float64x1_t
) __a
;
3548 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3549 vreinterpretq_f64_f16 (float16x8_t __a
)
3551 return (float64x2_t
) __a
;
3554 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3555 vreinterpretq_f64_f32 (float32x4_t __a
)
3557 return (float64x2_t
) __a
;
3560 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3561 vreinterpretq_f64_p8 (poly8x16_t __a
)
3563 return (float64x2_t
) __a
;
3566 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3567 vreinterpretq_f64_p16 (poly16x8_t __a
)
3569 return (float64x2_t
) __a
;
3572 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3573 vreinterpretq_f64_s8 (int8x16_t __a
)
3575 return (float64x2_t
) __a
;
3578 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3579 vreinterpretq_f64_s16 (int16x8_t __a
)
3581 return (float64x2_t
) __a
;
3584 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3585 vreinterpretq_f64_s32 (int32x4_t __a
)
3587 return (float64x2_t
) __a
;
3590 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3591 vreinterpretq_f64_s64 (int64x2_t __a
)
3593 return (float64x2_t
) __a
;
3596 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3597 vreinterpretq_f64_u8 (uint8x16_t __a
)
3599 return (float64x2_t
) __a
;
3602 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3603 vreinterpretq_f64_u16 (uint16x8_t __a
)
3605 return (float64x2_t
) __a
;
3608 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3609 vreinterpretq_f64_u32 (uint32x4_t __a
)
3611 return (float64x2_t
) __a
;
3614 __extension__
static __inline float64x2_t
__attribute__((__always_inline__
))
3615 vreinterpretq_f64_u64 (uint64x2_t __a
)
3617 return (float64x2_t
) __a
;
3620 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3621 vreinterpret_s64_f16 (float16x4_t __a
)
3623 return (int64x1_t
) __a
;
3626 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3627 vreinterpret_s64_f64 (float64x1_t __a
)
3629 return (int64x1_t
) __a
;
3632 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3633 vreinterpret_s64_s8 (int8x8_t __a
)
3635 return (int64x1_t
) __a
;
3638 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3639 vreinterpret_s64_s16 (int16x4_t __a
)
3641 return (int64x1_t
) __a
;
3644 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3645 vreinterpret_s64_s32 (int32x2_t __a
)
3647 return (int64x1_t
) __a
;
3650 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3651 vreinterpret_s64_f32 (float32x2_t __a
)
3653 return (int64x1_t
) __a
;
3656 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3657 vreinterpret_s64_u8 (uint8x8_t __a
)
3659 return (int64x1_t
) __a
;
3662 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3663 vreinterpret_s64_u16 (uint16x4_t __a
)
3665 return (int64x1_t
) __a
;
3668 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3669 vreinterpret_s64_u32 (uint32x2_t __a
)
3671 return (int64x1_t
) __a
;
3674 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3675 vreinterpret_s64_u64 (uint64x1_t __a
)
3677 return (int64x1_t
) __a
;
3680 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3681 vreinterpret_s64_p8 (poly8x8_t __a
)
3683 return (int64x1_t
) __a
;
3686 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
3687 vreinterpret_s64_p16 (poly16x4_t __a
)
3689 return (int64x1_t
) __a
;
3692 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3693 vreinterpretq_s64_f64 (float64x2_t __a
)
3695 return (int64x2_t
) __a
;
3698 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3699 vreinterpretq_s64_s8 (int8x16_t __a
)
3701 return (int64x2_t
) __a
;
3704 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3705 vreinterpretq_s64_s16 (int16x8_t __a
)
3707 return (int64x2_t
) __a
;
3710 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3711 vreinterpretq_s64_s32 (int32x4_t __a
)
3713 return (int64x2_t
) __a
;
3716 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3717 vreinterpretq_s64_f16 (float16x8_t __a
)
3719 return (int64x2_t
) __a
;
3722 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3723 vreinterpretq_s64_f32 (float32x4_t __a
)
3725 return (int64x2_t
) __a
;
3728 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3729 vreinterpretq_s64_u8 (uint8x16_t __a
)
3731 return (int64x2_t
) __a
;
3734 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3735 vreinterpretq_s64_u16 (uint16x8_t __a
)
3737 return (int64x2_t
) __a
;
3740 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3741 vreinterpretq_s64_u32 (uint32x4_t __a
)
3743 return (int64x2_t
) __a
;
3746 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3747 vreinterpretq_s64_u64 (uint64x2_t __a
)
3749 return (int64x2_t
) __a
;
3752 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3753 vreinterpretq_s64_p8 (poly8x16_t __a
)
3755 return (int64x2_t
) __a
;
3758 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
3759 vreinterpretq_s64_p16 (poly16x8_t __a
)
3761 return (int64x2_t
) __a
;
3764 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3765 vreinterpret_u64_f16 (float16x4_t __a
)
3767 return (uint64x1_t
) __a
;
3770 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3771 vreinterpret_u64_f64 (float64x1_t __a
)
3773 return (uint64x1_t
) __a
;
3776 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3777 vreinterpret_u64_s8 (int8x8_t __a
)
3779 return (uint64x1_t
) __a
;
3782 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3783 vreinterpret_u64_s16 (int16x4_t __a
)
3785 return (uint64x1_t
) __a
;
3788 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3789 vreinterpret_u64_s32 (int32x2_t __a
)
3791 return (uint64x1_t
) __a
;
3794 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3795 vreinterpret_u64_s64 (int64x1_t __a
)
3797 return (uint64x1_t
) __a
;
3800 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3801 vreinterpret_u64_f32 (float32x2_t __a
)
3803 return (uint64x1_t
) __a
;
3806 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3807 vreinterpret_u64_u8 (uint8x8_t __a
)
3809 return (uint64x1_t
) __a
;
3812 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3813 vreinterpret_u64_u16 (uint16x4_t __a
)
3815 return (uint64x1_t
) __a
;
3818 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3819 vreinterpret_u64_u32 (uint32x2_t __a
)
3821 return (uint64x1_t
) __a
;
3824 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3825 vreinterpret_u64_p8 (poly8x8_t __a
)
3827 return (uint64x1_t
) __a
;
3830 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
3831 vreinterpret_u64_p16 (poly16x4_t __a
)
3833 return (uint64x1_t
) __a
;
3836 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3837 vreinterpretq_u64_f64 (float64x2_t __a
)
3839 return (uint64x2_t
) __a
;
3842 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3843 vreinterpretq_u64_s8 (int8x16_t __a
)
3845 return (uint64x2_t
) __a
;
3848 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3849 vreinterpretq_u64_s16 (int16x8_t __a
)
3851 return (uint64x2_t
) __a
;
3854 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3855 vreinterpretq_u64_s32 (int32x4_t __a
)
3857 return (uint64x2_t
) __a
;
3860 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3861 vreinterpretq_u64_s64 (int64x2_t __a
)
3863 return (uint64x2_t
) __a
;
3866 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3867 vreinterpretq_u64_f16 (float16x8_t __a
)
3869 return (uint64x2_t
) __a
;
3872 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3873 vreinterpretq_u64_f32 (float32x4_t __a
)
3875 return (uint64x2_t
) __a
;
3878 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3879 vreinterpretq_u64_u8 (uint8x16_t __a
)
3881 return (uint64x2_t
) __a
;
3884 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3885 vreinterpretq_u64_u16 (uint16x8_t __a
)
3887 return (uint64x2_t
) __a
;
3890 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3891 vreinterpretq_u64_u32 (uint32x4_t __a
)
3893 return (uint64x2_t
) __a
;
3896 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3897 vreinterpretq_u64_p8 (poly8x16_t __a
)
3899 return (uint64x2_t
) __a
;
3902 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
3903 vreinterpretq_u64_p16 (poly16x8_t __a
)
3905 return (uint64x2_t
) __a
;
3908 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3909 vreinterpret_s8_f16 (float16x4_t __a
)
3911 return (int8x8_t
) __a
;
3914 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3915 vreinterpret_s8_f64 (float64x1_t __a
)
3917 return (int8x8_t
) __a
;
3920 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3921 vreinterpret_s8_s16 (int16x4_t __a
)
3923 return (int8x8_t
) __a
;
3926 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3927 vreinterpret_s8_s32 (int32x2_t __a
)
3929 return (int8x8_t
) __a
;
3932 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3933 vreinterpret_s8_s64 (int64x1_t __a
)
3935 return (int8x8_t
) __a
;
3938 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3939 vreinterpret_s8_f32 (float32x2_t __a
)
3941 return (int8x8_t
) __a
;
3944 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3945 vreinterpret_s8_u8 (uint8x8_t __a
)
3947 return (int8x8_t
) __a
;
3950 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3951 vreinterpret_s8_u16 (uint16x4_t __a
)
3953 return (int8x8_t
) __a
;
3956 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3957 vreinterpret_s8_u32 (uint32x2_t __a
)
3959 return (int8x8_t
) __a
;
3962 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3963 vreinterpret_s8_u64 (uint64x1_t __a
)
3965 return (int8x8_t
) __a
;
3968 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3969 vreinterpret_s8_p8 (poly8x8_t __a
)
3971 return (int8x8_t
) __a
;
3974 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
3975 vreinterpret_s8_p16 (poly16x4_t __a
)
3977 return (int8x8_t
) __a
;
3980 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
3981 vreinterpretq_s8_f64 (float64x2_t __a
)
3983 return (int8x16_t
) __a
;
3986 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
3987 vreinterpretq_s8_s16 (int16x8_t __a
)
3989 return (int8x16_t
) __a
;
3992 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
3993 vreinterpretq_s8_s32 (int32x4_t __a
)
3995 return (int8x16_t
) __a
;
3998 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
3999 vreinterpretq_s8_s64 (int64x2_t __a
)
4001 return (int8x16_t
) __a
;
4004 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4005 vreinterpretq_s8_f16 (float16x8_t __a
)
4007 return (int8x16_t
) __a
;
4010 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4011 vreinterpretq_s8_f32 (float32x4_t __a
)
4013 return (int8x16_t
) __a
;
4016 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4017 vreinterpretq_s8_u8 (uint8x16_t __a
)
4019 return (int8x16_t
) __a
;
4022 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4023 vreinterpretq_s8_u16 (uint16x8_t __a
)
4025 return (int8x16_t
) __a
;
4028 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4029 vreinterpretq_s8_u32 (uint32x4_t __a
)
4031 return (int8x16_t
) __a
;
4034 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4035 vreinterpretq_s8_u64 (uint64x2_t __a
)
4037 return (int8x16_t
) __a
;
4040 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4041 vreinterpretq_s8_p8 (poly8x16_t __a
)
4043 return (int8x16_t
) __a
;
4046 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4047 vreinterpretq_s8_p16 (poly16x8_t __a
)
4049 return (int8x16_t
) __a
;
4052 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4053 vreinterpret_s16_f16 (float16x4_t __a
)
4055 return (int16x4_t
) __a
;
4058 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4059 vreinterpret_s16_f64 (float64x1_t __a
)
4061 return (int16x4_t
) __a
;
4064 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4065 vreinterpret_s16_s8 (int8x8_t __a
)
4067 return (int16x4_t
) __a
;
4070 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4071 vreinterpret_s16_s32 (int32x2_t __a
)
4073 return (int16x4_t
) __a
;
4076 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4077 vreinterpret_s16_s64 (int64x1_t __a
)
4079 return (int16x4_t
) __a
;
4082 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4083 vreinterpret_s16_f32 (float32x2_t __a
)
4085 return (int16x4_t
) __a
;
4088 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4089 vreinterpret_s16_u8 (uint8x8_t __a
)
4091 return (int16x4_t
) __a
;
4094 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4095 vreinterpret_s16_u16 (uint16x4_t __a
)
4097 return (int16x4_t
) __a
;
4100 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4101 vreinterpret_s16_u32 (uint32x2_t __a
)
4103 return (int16x4_t
) __a
;
4106 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4107 vreinterpret_s16_u64 (uint64x1_t __a
)
4109 return (int16x4_t
) __a
;
4112 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4113 vreinterpret_s16_p8 (poly8x8_t __a
)
4115 return (int16x4_t
) __a
;
4118 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4119 vreinterpret_s16_p16 (poly16x4_t __a
)
4121 return (int16x4_t
) __a
;
4124 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4125 vreinterpretq_s16_f64 (float64x2_t __a
)
4127 return (int16x8_t
) __a
;
4130 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4131 vreinterpretq_s16_s8 (int8x16_t __a
)
4133 return (int16x8_t
) __a
;
4136 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4137 vreinterpretq_s16_s32 (int32x4_t __a
)
4139 return (int16x8_t
) __a
;
4142 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4143 vreinterpretq_s16_s64 (int64x2_t __a
)
4145 return (int16x8_t
) __a
;
4148 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4149 vreinterpretq_s16_f16 (float16x8_t __a
)
4151 return (int16x8_t
) __a
;
4154 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4155 vreinterpretq_s16_f32 (float32x4_t __a
)
4157 return (int16x8_t
) __a
;
4160 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4161 vreinterpretq_s16_u8 (uint8x16_t __a
)
4163 return (int16x8_t
) __a
;
4166 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4167 vreinterpretq_s16_u16 (uint16x8_t __a
)
4169 return (int16x8_t
) __a
;
4172 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4173 vreinterpretq_s16_u32 (uint32x4_t __a
)
4175 return (int16x8_t
) __a
;
4178 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4179 vreinterpretq_s16_u64 (uint64x2_t __a
)
4181 return (int16x8_t
) __a
;
4184 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4185 vreinterpretq_s16_p8 (poly8x16_t __a
)
4187 return (int16x8_t
) __a
;
4190 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4191 vreinterpretq_s16_p16 (poly16x8_t __a
)
4193 return (int16x8_t
) __a
;
4196 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4197 vreinterpret_s32_f16 (float16x4_t __a
)
4199 return (int32x2_t
) __a
;
4202 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4203 vreinterpret_s32_f64 (float64x1_t __a
)
4205 return (int32x2_t
) __a
;
4208 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4209 vreinterpret_s32_s8 (int8x8_t __a
)
4211 return (int32x2_t
) __a
;
4214 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4215 vreinterpret_s32_s16 (int16x4_t __a
)
4217 return (int32x2_t
) __a
;
4220 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4221 vreinterpret_s32_s64 (int64x1_t __a
)
4223 return (int32x2_t
) __a
;
4226 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4227 vreinterpret_s32_f32 (float32x2_t __a
)
4229 return (int32x2_t
) __a
;
4232 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4233 vreinterpret_s32_u8 (uint8x8_t __a
)
4235 return (int32x2_t
) __a
;
4238 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4239 vreinterpret_s32_u16 (uint16x4_t __a
)
4241 return (int32x2_t
) __a
;
4244 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4245 vreinterpret_s32_u32 (uint32x2_t __a
)
4247 return (int32x2_t
) __a
;
4250 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4251 vreinterpret_s32_u64 (uint64x1_t __a
)
4253 return (int32x2_t
) __a
;
4256 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4257 vreinterpret_s32_p8 (poly8x8_t __a
)
4259 return (int32x2_t
) __a
;
4262 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4263 vreinterpret_s32_p16 (poly16x4_t __a
)
4265 return (int32x2_t
) __a
;
4268 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4269 vreinterpretq_s32_f64 (float64x2_t __a
)
4271 return (int32x4_t
) __a
;
4274 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4275 vreinterpretq_s32_s8 (int8x16_t __a
)
4277 return (int32x4_t
) __a
;
4280 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4281 vreinterpretq_s32_s16 (int16x8_t __a
)
4283 return (int32x4_t
) __a
;
4286 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4287 vreinterpretq_s32_s64 (int64x2_t __a
)
4289 return (int32x4_t
) __a
;
4292 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4293 vreinterpretq_s32_f16 (float16x8_t __a
)
4295 return (int32x4_t
) __a
;
4298 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4299 vreinterpretq_s32_f32 (float32x4_t __a
)
4301 return (int32x4_t
) __a
;
4304 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4305 vreinterpretq_s32_u8 (uint8x16_t __a
)
4307 return (int32x4_t
) __a
;
4310 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4311 vreinterpretq_s32_u16 (uint16x8_t __a
)
4313 return (int32x4_t
) __a
;
4316 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4317 vreinterpretq_s32_u32 (uint32x4_t __a
)
4319 return (int32x4_t
) __a
;
4322 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4323 vreinterpretq_s32_u64 (uint64x2_t __a
)
4325 return (int32x4_t
) __a
;
4328 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4329 vreinterpretq_s32_p8 (poly8x16_t __a
)
4331 return (int32x4_t
) __a
;
4334 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4335 vreinterpretq_s32_p16 (poly16x8_t __a
)
4337 return (int32x4_t
) __a
;
4340 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4341 vreinterpret_u8_f16 (float16x4_t __a
)
4343 return (uint8x8_t
) __a
;
4346 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4347 vreinterpret_u8_f64 (float64x1_t __a
)
4349 return (uint8x8_t
) __a
;
4352 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4353 vreinterpret_u8_s8 (int8x8_t __a
)
4355 return (uint8x8_t
) __a
;
4358 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4359 vreinterpret_u8_s16 (int16x4_t __a
)
4361 return (uint8x8_t
) __a
;
4364 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4365 vreinterpret_u8_s32 (int32x2_t __a
)
4367 return (uint8x8_t
) __a
;
4370 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4371 vreinterpret_u8_s64 (int64x1_t __a
)
4373 return (uint8x8_t
) __a
;
4376 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4377 vreinterpret_u8_f32 (float32x2_t __a
)
4379 return (uint8x8_t
) __a
;
4382 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4383 vreinterpret_u8_u16 (uint16x4_t __a
)
4385 return (uint8x8_t
) __a
;
4388 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4389 vreinterpret_u8_u32 (uint32x2_t __a
)
4391 return (uint8x8_t
) __a
;
4394 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4395 vreinterpret_u8_u64 (uint64x1_t __a
)
4397 return (uint8x8_t
) __a
;
4400 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4401 vreinterpret_u8_p8 (poly8x8_t __a
)
4403 return (uint8x8_t
) __a
;
4406 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4407 vreinterpret_u8_p16 (poly16x4_t __a
)
4409 return (uint8x8_t
) __a
;
4412 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4413 vreinterpretq_u8_f64 (float64x2_t __a
)
4415 return (uint8x16_t
) __a
;
4418 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4419 vreinterpretq_u8_s8 (int8x16_t __a
)
4421 return (uint8x16_t
) __a
;
4424 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4425 vreinterpretq_u8_s16 (int16x8_t __a
)
4427 return (uint8x16_t
) __a
;
4430 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4431 vreinterpretq_u8_s32 (int32x4_t __a
)
4433 return (uint8x16_t
) __a
;
4436 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4437 vreinterpretq_u8_s64 (int64x2_t __a
)
4439 return (uint8x16_t
) __a
;
4442 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4443 vreinterpretq_u8_f16 (float16x8_t __a
)
4445 return (uint8x16_t
) __a
;
4448 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4449 vreinterpretq_u8_f32 (float32x4_t __a
)
4451 return (uint8x16_t
) __a
;
4454 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4455 vreinterpretq_u8_u16 (uint16x8_t __a
)
4457 return (uint8x16_t
) __a
;
4460 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4461 vreinterpretq_u8_u32 (uint32x4_t __a
)
4463 return (uint8x16_t
) __a
;
4466 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4467 vreinterpretq_u8_u64 (uint64x2_t __a
)
4469 return (uint8x16_t
) __a
;
4472 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4473 vreinterpretq_u8_p8 (poly8x16_t __a
)
4475 return (uint8x16_t
) __a
;
4478 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4479 vreinterpretq_u8_p16 (poly16x8_t __a
)
4481 return (uint8x16_t
) __a
;
4484 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4485 vreinterpret_u16_f16 (float16x4_t __a
)
4487 return (uint16x4_t
) __a
;
4490 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4491 vreinterpret_u16_f64 (float64x1_t __a
)
4493 return (uint16x4_t
) __a
;
4496 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4497 vreinterpret_u16_s8 (int8x8_t __a
)
4499 return (uint16x4_t
) __a
;
4502 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4503 vreinterpret_u16_s16 (int16x4_t __a
)
4505 return (uint16x4_t
) __a
;
4508 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4509 vreinterpret_u16_s32 (int32x2_t __a
)
4511 return (uint16x4_t
) __a
;
4514 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4515 vreinterpret_u16_s64 (int64x1_t __a
)
4517 return (uint16x4_t
) __a
;
4520 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4521 vreinterpret_u16_f32 (float32x2_t __a
)
4523 return (uint16x4_t
) __a
;
4526 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4527 vreinterpret_u16_u8 (uint8x8_t __a
)
4529 return (uint16x4_t
) __a
;
4532 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4533 vreinterpret_u16_u32 (uint32x2_t __a
)
4535 return (uint16x4_t
) __a
;
4538 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4539 vreinterpret_u16_u64 (uint64x1_t __a
)
4541 return (uint16x4_t
) __a
;
4544 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4545 vreinterpret_u16_p8 (poly8x8_t __a
)
4547 return (uint16x4_t
) __a
;
4550 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4551 vreinterpret_u16_p16 (poly16x4_t __a
)
4553 return (uint16x4_t
) __a
;
4556 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4557 vreinterpretq_u16_f64 (float64x2_t __a
)
4559 return (uint16x8_t
) __a
;
4562 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4563 vreinterpretq_u16_s8 (int8x16_t __a
)
4565 return (uint16x8_t
) __a
;
4568 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4569 vreinterpretq_u16_s16 (int16x8_t __a
)
4571 return (uint16x8_t
) __a
;
4574 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4575 vreinterpretq_u16_s32 (int32x4_t __a
)
4577 return (uint16x8_t
) __a
;
4580 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4581 vreinterpretq_u16_s64 (int64x2_t __a
)
4583 return (uint16x8_t
) __a
;
4586 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4587 vreinterpretq_u16_f16 (float16x8_t __a
)
4589 return (uint16x8_t
) __a
;
4592 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4593 vreinterpretq_u16_f32 (float32x4_t __a
)
4595 return (uint16x8_t
) __a
;
4598 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4599 vreinterpretq_u16_u8 (uint8x16_t __a
)
4601 return (uint16x8_t
) __a
;
4604 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4605 vreinterpretq_u16_u32 (uint32x4_t __a
)
4607 return (uint16x8_t
) __a
;
4610 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4611 vreinterpretq_u16_u64 (uint64x2_t __a
)
4613 return (uint16x8_t
) __a
;
4616 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4617 vreinterpretq_u16_p8 (poly8x16_t __a
)
4619 return (uint16x8_t
) __a
;
4622 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4623 vreinterpretq_u16_p16 (poly16x8_t __a
)
4625 return (uint16x8_t
) __a
;
4628 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4629 vreinterpret_u32_f16 (float16x4_t __a
)
4631 return (uint32x2_t
) __a
;
4634 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4635 vreinterpret_u32_f64 (float64x1_t __a
)
4637 return (uint32x2_t
) __a
;
4640 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4641 vreinterpret_u32_s8 (int8x8_t __a
)
4643 return (uint32x2_t
) __a
;
4646 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4647 vreinterpret_u32_s16 (int16x4_t __a
)
4649 return (uint32x2_t
) __a
;
4652 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4653 vreinterpret_u32_s32 (int32x2_t __a
)
4655 return (uint32x2_t
) __a
;
4658 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4659 vreinterpret_u32_s64 (int64x1_t __a
)
4661 return (uint32x2_t
) __a
;
4664 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4665 vreinterpret_u32_f32 (float32x2_t __a
)
4667 return (uint32x2_t
) __a
;
4670 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4671 vreinterpret_u32_u8 (uint8x8_t __a
)
4673 return (uint32x2_t
) __a
;
4676 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4677 vreinterpret_u32_u16 (uint16x4_t __a
)
4679 return (uint32x2_t
) __a
;
4682 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4683 vreinterpret_u32_u64 (uint64x1_t __a
)
4685 return (uint32x2_t
) __a
;
4688 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4689 vreinterpret_u32_p8 (poly8x8_t __a
)
4691 return (uint32x2_t
) __a
;
4694 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4695 vreinterpret_u32_p16 (poly16x4_t __a
)
4697 return (uint32x2_t
) __a
;
4700 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4701 vreinterpretq_u32_f64 (float64x2_t __a
)
4703 return (uint32x4_t
) __a
;
4706 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4707 vreinterpretq_u32_s8 (int8x16_t __a
)
4709 return (uint32x4_t
) __a
;
4712 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4713 vreinterpretq_u32_s16 (int16x8_t __a
)
4715 return (uint32x4_t
) __a
;
4718 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4719 vreinterpretq_u32_s32 (int32x4_t __a
)
4721 return (uint32x4_t
) __a
;
4724 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4725 vreinterpretq_u32_s64 (int64x2_t __a
)
4727 return (uint32x4_t
) __a
;
4730 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4731 vreinterpretq_u32_f16 (float16x8_t __a
)
4733 return (uint32x4_t
) __a
;
4736 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4737 vreinterpretq_u32_f32 (float32x4_t __a
)
4739 return (uint32x4_t
) __a
;
4742 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4743 vreinterpretq_u32_u8 (uint8x16_t __a
)
4745 return (uint32x4_t
) __a
;
4748 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4749 vreinterpretq_u32_u16 (uint16x8_t __a
)
4751 return (uint32x4_t
) __a
;
4754 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4755 vreinterpretq_u32_u64 (uint64x2_t __a
)
4757 return (uint32x4_t
) __a
;
4760 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4761 vreinterpretq_u32_p8 (poly8x16_t __a
)
4763 return (uint32x4_t
) __a
;
4766 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4767 vreinterpretq_u32_p16 (poly16x8_t __a
)
4769 return (uint32x4_t
) __a
;
4774 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
4775 vset_lane_f16 (float16_t __elem
, float16x4_t __vec
, const int __index
)
4777 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4780 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
4781 vset_lane_f32 (float32_t __elem
, float32x2_t __vec
, const int __index
)
4783 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4786 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
4787 vset_lane_f64 (float64_t __elem
, float64x1_t __vec
, const int __index
)
4789 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4792 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
4793 vset_lane_p8 (poly8_t __elem
, poly8x8_t __vec
, const int __index
)
4795 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4798 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
4799 vset_lane_p16 (poly16_t __elem
, poly16x4_t __vec
, const int __index
)
4801 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4804 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
4805 vset_lane_s8 (int8_t __elem
, int8x8_t __vec
, const int __index
)
4807 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4810 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4811 vset_lane_s16 (int16_t __elem
, int16x4_t __vec
, const int __index
)
4813 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4816 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4817 vset_lane_s32 (int32_t __elem
, int32x2_t __vec
, const int __index
)
4819 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4822 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
4823 vset_lane_s64 (int64_t __elem
, int64x1_t __vec
, const int __index
)
4825 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4828 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4829 vset_lane_u8 (uint8_t __elem
, uint8x8_t __vec
, const int __index
)
4831 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4834 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4835 vset_lane_u16 (uint16_t __elem
, uint16x4_t __vec
, const int __index
)
4837 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4840 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
4841 vset_lane_u32 (uint32_t __elem
, uint32x2_t __vec
, const int __index
)
4843 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4846 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
4847 vset_lane_u64 (uint64_t __elem
, uint64x1_t __vec
, const int __index
)
4849 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4854 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
4855 vsetq_lane_f16 (float16_t __elem
, float16x8_t __vec
, const int __index
)
4857 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4860 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
4861 vsetq_lane_f32 (float32_t __elem
, float32x4_t __vec
, const int __index
)
4863 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4866 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
4867 vsetq_lane_f64 (float64_t __elem
, float64x2_t __vec
, const int __index
)
4869 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4872 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
4873 vsetq_lane_p8 (poly8_t __elem
, poly8x16_t __vec
, const int __index
)
4875 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4878 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
4879 vsetq_lane_p16 (poly16_t __elem
, poly16x8_t __vec
, const int __index
)
4881 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4884 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
4885 vsetq_lane_s8 (int8_t __elem
, int8x16_t __vec
, const int __index
)
4887 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4890 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
4891 vsetq_lane_s16 (int16_t __elem
, int16x8_t __vec
, const int __index
)
4893 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4896 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
4897 vsetq_lane_s32 (int32_t __elem
, int32x4_t __vec
, const int __index
)
4899 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4902 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
4903 vsetq_lane_s64 (int64_t __elem
, int64x2_t __vec
, const int __index
)
4905 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4908 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
4909 vsetq_lane_u8 (uint8_t __elem
, uint8x16_t __vec
, const int __index
)
4911 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4914 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
4915 vsetq_lane_u16 (uint16_t __elem
, uint16x8_t __vec
, const int __index
)
4917 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4920 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
4921 vsetq_lane_u32 (uint32_t __elem
, uint32x4_t __vec
, const int __index
)
4923 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4926 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
4927 vsetq_lane_u64 (uint64_t __elem
, uint64x2_t __vec
, const int __index
)
4929 return __aarch64_vset_lane_any (__elem
, __vec
, __index
);
4932 #define __GET_LOW(__TYPE) \
4933 uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a); \
4934 uint64x1_t lo = vcreate_u64 (vgetq_lane_u64 (tmp, 0)); \
4935 return vreinterpret_##__TYPE##_u64 (lo);
4937 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
4938 vget_low_f16 (float16x8_t __a
)
4943 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
4944 vget_low_f32 (float32x4_t __a
)
4949 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
4950 vget_low_f64 (float64x2_t __a
)
4952 return (float64x1_t
) {vgetq_lane_f64 (__a
, 0)};
4955 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
4956 vget_low_p8 (poly8x16_t __a
)
4961 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
4962 vget_low_p16 (poly16x8_t __a
)
4967 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
4968 vget_low_s8 (int8x16_t __a
)
4973 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
4974 vget_low_s16 (int16x8_t __a
)
4979 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
4980 vget_low_s32 (int32x4_t __a
)
4985 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
4986 vget_low_s64 (int64x2_t __a
)
4991 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
4992 vget_low_u8 (uint8x16_t __a
)
4997 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
4998 vget_low_u16 (uint16x8_t __a
)
5003 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
5004 vget_low_u32 (uint32x4_t __a
)
5009 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
5010 vget_low_u64 (uint64x2_t __a
)
5012 return vcreate_u64 (vgetq_lane_u64 (__a
, 0));
5017 #define __GET_HIGH(__TYPE) \
5018 uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a); \
5019 uint64x1_t hi = vcreate_u64 (vgetq_lane_u64 (tmp, 1)); \
5020 return vreinterpret_##__TYPE##_u64 (hi);
5022 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
5023 vget_high_f16 (float16x8_t __a
)
5028 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
5029 vget_high_f32 (float32x4_t __a
)
5034 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
5035 vget_high_f64 (float64x2_t __a
)
5040 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
5041 vget_high_p8 (poly8x16_t __a
)
5046 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
5047 vget_high_p16 (poly16x8_t __a
)
5052 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
5053 vget_high_s8 (int8x16_t __a
)
5058 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
5059 vget_high_s16 (int16x8_t __a
)
5064 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
5065 vget_high_s32 (int32x4_t __a
)
5070 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
5071 vget_high_s64 (int64x2_t __a
)
5076 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
5077 vget_high_u8 (uint8x16_t __a
)
5082 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
5083 vget_high_u16 (uint16x8_t __a
)
5088 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
5089 vget_high_u32 (uint32x4_t __a
)
5096 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
5097 vget_high_u64 (uint64x2_t __a
)
5099 return vcreate_u64 (vgetq_lane_u64 (__a
, 1));
5102 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
5103 vcombine_s8 (int8x8_t __a
, int8x8_t __b
)
5105 return (int8x16_t
) __builtin_aarch64_combinev8qi (__a
, __b
);
5108 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
5109 vcombine_s16 (int16x4_t __a
, int16x4_t __b
)
5111 return (int16x8_t
) __builtin_aarch64_combinev4hi (__a
, __b
);
5114 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
5115 vcombine_s32 (int32x2_t __a
, int32x2_t __b
)
5117 return (int32x4_t
) __builtin_aarch64_combinev2si (__a
, __b
);
5120 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
5121 vcombine_s64 (int64x1_t __a
, int64x1_t __b
)
5123 return __builtin_aarch64_combinedi (__a
[0], __b
[0]);
5126 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
5127 vcombine_f16 (float16x4_t __a
, float16x4_t __b
)
5129 return __builtin_aarch64_combinev4hf (__a
, __b
);
5132 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
5133 vcombine_f32 (float32x2_t __a
, float32x2_t __b
)
5135 return (float32x4_t
) __builtin_aarch64_combinev2sf (__a
, __b
);
5138 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
5139 vcombine_u8 (uint8x8_t __a
, uint8x8_t __b
)
5141 return (uint8x16_t
) __builtin_aarch64_combinev8qi ((int8x8_t
) __a
,
5145 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
5146 vcombine_u16 (uint16x4_t __a
, uint16x4_t __b
)
5148 return (uint16x8_t
) __builtin_aarch64_combinev4hi ((int16x4_t
) __a
,
5152 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
5153 vcombine_u32 (uint32x2_t __a
, uint32x2_t __b
)
5155 return (uint32x4_t
) __builtin_aarch64_combinev2si ((int32x2_t
) __a
,
5159 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
5160 vcombine_u64 (uint64x1_t __a
, uint64x1_t __b
)
5162 return (uint64x2_t
) __builtin_aarch64_combinedi (__a
[0], __b
[0]);
5165 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
5166 vcombine_f64 (float64x1_t __a
, float64x1_t __b
)
5168 return __builtin_aarch64_combinedf (__a
[0], __b
[0]);
5171 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
5172 vcombine_p8 (poly8x8_t __a
, poly8x8_t __b
)
5174 return (poly8x16_t
) __builtin_aarch64_combinev8qi ((int8x8_t
) __a
,
5178 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
5179 vcombine_p16 (poly16x4_t __a
, poly16x4_t __b
)
5181 return (poly16x8_t
) __builtin_aarch64_combinev4hi ((int16x4_t
) __a
,
5185 /* Start of temporary inline asm implementations. */
5187 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
5188 vaba_s8 (int8x8_t a
, int8x8_t b
, int8x8_t c
)
5191 __asm__ ("saba %0.8b,%2.8b,%3.8b"
5193 : "0"(a
), "w"(b
), "w"(c
)
5194 : /* No clobbers */);
5198 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
5199 vaba_s16 (int16x4_t a
, int16x4_t b
, int16x4_t c
)
5202 __asm__ ("saba %0.4h,%2.4h,%3.4h"
5204 : "0"(a
), "w"(b
), "w"(c
)
5205 : /* No clobbers */);
5209 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
5210 vaba_s32 (int32x2_t a
, int32x2_t b
, int32x2_t c
)
5213 __asm__ ("saba %0.2s,%2.2s,%3.2s"
5215 : "0"(a
), "w"(b
), "w"(c
)
5216 : /* No clobbers */);
5220 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
5221 vaba_u8 (uint8x8_t a
, uint8x8_t b
, uint8x8_t c
)
5224 __asm__ ("uaba %0.8b,%2.8b,%3.8b"
5226 : "0"(a
), "w"(b
), "w"(c
)
5227 : /* No clobbers */);
5231 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
5232 vaba_u16 (uint16x4_t a
, uint16x4_t b
, uint16x4_t c
)
5235 __asm__ ("uaba %0.4h,%2.4h,%3.4h"
5237 : "0"(a
), "w"(b
), "w"(c
)
5238 : /* No clobbers */);
5242 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
5243 vaba_u32 (uint32x2_t a
, uint32x2_t b
, uint32x2_t c
)
5246 __asm__ ("uaba %0.2s,%2.2s,%3.2s"
5248 : "0"(a
), "w"(b
), "w"(c
)
5249 : /* No clobbers */);
5253 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
5254 vabal_high_s8 (int16x8_t a
, int8x16_t b
, int8x16_t c
)
5257 __asm__ ("sabal2 %0.8h,%2.16b,%3.16b"
5259 : "0"(a
), "w"(b
), "w"(c
)
5260 : /* No clobbers */);
5264 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
5265 vabal_high_s16 (int32x4_t a
, int16x8_t b
, int16x8_t c
)
5268 __asm__ ("sabal2 %0.4s,%2.8h,%3.8h"
5270 : "0"(a
), "w"(b
), "w"(c
)
5271 : /* No clobbers */);
5275 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
5276 vabal_high_s32 (int64x2_t a
, int32x4_t b
, int32x4_t c
)
5279 __asm__ ("sabal2 %0.2d,%2.4s,%3.4s"
5281 : "0"(a
), "w"(b
), "w"(c
)
5282 : /* No clobbers */);
5286 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
5287 vabal_high_u8 (uint16x8_t a
, uint8x16_t b
, uint8x16_t c
)
5290 __asm__ ("uabal2 %0.8h,%2.16b,%3.16b"
5292 : "0"(a
), "w"(b
), "w"(c
)
5293 : /* No clobbers */);
5297 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
5298 vabal_high_u16 (uint32x4_t a
, uint16x8_t b
, uint16x8_t c
)
5301 __asm__ ("uabal2 %0.4s,%2.8h,%3.8h"
5303 : "0"(a
), "w"(b
), "w"(c
)
5304 : /* No clobbers */);
5308 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
5309 vabal_high_u32 (uint64x2_t a
, uint32x4_t b
, uint32x4_t c
)
5312 __asm__ ("uabal2 %0.2d,%2.4s,%3.4s"
5314 : "0"(a
), "w"(b
), "w"(c
)
5315 : /* No clobbers */);
5319 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
5320 vabal_s8 (int16x8_t a
, int8x8_t b
, int8x8_t c
)
5323 __asm__ ("sabal %0.8h,%2.8b,%3.8b"
5325 : "0"(a
), "w"(b
), "w"(c
)
5326 : /* No clobbers */);
5330 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
5331 vabal_s16 (int32x4_t a
, int16x4_t b
, int16x4_t c
)
5334 __asm__ ("sabal %0.4s,%2.4h,%3.4h"
5336 : "0"(a
), "w"(b
), "w"(c
)
5337 : /* No clobbers */);
5341 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
5342 vabal_s32 (int64x2_t a
, int32x2_t b
, int32x2_t c
)
5345 __asm__ ("sabal %0.2d,%2.2s,%3.2s"
5347 : "0"(a
), "w"(b
), "w"(c
)
5348 : /* No clobbers */);
5352 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
5353 vabal_u8 (uint16x8_t a
, uint8x8_t b
, uint8x8_t c
)
5356 __asm__ ("uabal %0.8h,%2.8b,%3.8b"
5358 : "0"(a
), "w"(b
), "w"(c
)
5359 : /* No clobbers */);
5363 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
5364 vabal_u16 (uint32x4_t a
, uint16x4_t b
, uint16x4_t c
)
5367 __asm__ ("uabal %0.4s,%2.4h,%3.4h"
5369 : "0"(a
), "w"(b
), "w"(c
)
5370 : /* No clobbers */);
5374 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
5375 vabal_u32 (uint64x2_t a
, uint32x2_t b
, uint32x2_t c
)
5378 __asm__ ("uabal %0.2d,%2.2s,%3.2s"
5380 : "0"(a
), "w"(b
), "w"(c
)
5381 : /* No clobbers */);
5385 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
5386 vabaq_s8 (int8x16_t a
, int8x16_t b
, int8x16_t c
)
5389 __asm__ ("saba %0.16b,%2.16b,%3.16b"
5391 : "0"(a
), "w"(b
), "w"(c
)
5392 : /* No clobbers */);
5396 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
5397 vabaq_s16 (int16x8_t a
, int16x8_t b
, int16x8_t c
)
5400 __asm__ ("saba %0.8h,%2.8h,%3.8h"
5402 : "0"(a
), "w"(b
), "w"(c
)
5403 : /* No clobbers */);
5407 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
5408 vabaq_s32 (int32x4_t a
, int32x4_t b
, int32x4_t c
)
5411 __asm__ ("saba %0.4s,%2.4s,%3.4s"
5413 : "0"(a
), "w"(b
), "w"(c
)
5414 : /* No clobbers */);
5418 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
5419 vabaq_u8 (uint8x16_t a
, uint8x16_t b
, uint8x16_t c
)
5422 __asm__ ("uaba %0.16b,%2.16b,%3.16b"
5424 : "0"(a
), "w"(b
), "w"(c
)
5425 : /* No clobbers */);
5429 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
5430 vabaq_u16 (uint16x8_t a
, uint16x8_t b
, uint16x8_t c
)
5433 __asm__ ("uaba %0.8h,%2.8h,%3.8h"
5435 : "0"(a
), "w"(b
), "w"(c
)
5436 : /* No clobbers */);
5440 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
5441 vabaq_u32 (uint32x4_t a
, uint32x4_t b
, uint32x4_t c
)
5444 __asm__ ("uaba %0.4s,%2.4s,%3.4s"
5446 : "0"(a
), "w"(b
), "w"(c
)
5447 : /* No clobbers */);
5451 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
5452 vabd_s8 (int8x8_t a
, int8x8_t b
)
5455 __asm__ ("sabd %0.8b, %1.8b, %2.8b"
5458 : /* No clobbers */);
5462 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
5463 vabd_s16 (int16x4_t a
, int16x4_t b
)
5466 __asm__ ("sabd %0.4h, %1.4h, %2.4h"
5469 : /* No clobbers */);
5473 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
5474 vabd_s32 (int32x2_t a
, int32x2_t b
)
5477 __asm__ ("sabd %0.2s, %1.2s, %2.2s"
5480 : /* No clobbers */);
5484 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
5485 vabd_u8 (uint8x8_t a
, uint8x8_t b
)
5488 __asm__ ("uabd %0.8b, %1.8b, %2.8b"
5491 : /* No clobbers */);
5495 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
5496 vabd_u16 (uint16x4_t a
, uint16x4_t b
)
5499 __asm__ ("uabd %0.4h, %1.4h, %2.4h"
5502 : /* No clobbers */);
5506 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
5507 vabd_u32 (uint32x2_t a
, uint32x2_t b
)
5510 __asm__ ("uabd %0.2s, %1.2s, %2.2s"
5513 : /* No clobbers */);
5517 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
5518 vabdl_high_s8 (int8x16_t a
, int8x16_t b
)
5521 __asm__ ("sabdl2 %0.8h,%1.16b,%2.16b"
5524 : /* No clobbers */);
5528 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
5529 vabdl_high_s16 (int16x8_t a
, int16x8_t b
)
5532 __asm__ ("sabdl2 %0.4s,%1.8h,%2.8h"
5535 : /* No clobbers */);
5539 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
5540 vabdl_high_s32 (int32x4_t a
, int32x4_t b
)
5543 __asm__ ("sabdl2 %0.2d,%1.4s,%2.4s"
5546 : /* No clobbers */);
5550 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
5551 vabdl_high_u8 (uint8x16_t a
, uint8x16_t b
)
5554 __asm__ ("uabdl2 %0.8h,%1.16b,%2.16b"
5557 : /* No clobbers */);
5561 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
5562 vabdl_high_u16 (uint16x8_t a
, uint16x8_t b
)
5565 __asm__ ("uabdl2 %0.4s,%1.8h,%2.8h"
5568 : /* No clobbers */);
5572 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
5573 vabdl_high_u32 (uint32x4_t a
, uint32x4_t b
)
5576 __asm__ ("uabdl2 %0.2d,%1.4s,%2.4s"
5579 : /* No clobbers */);
5583 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
5584 vabdl_s8 (int8x8_t a
, int8x8_t b
)
5587 __asm__ ("sabdl %0.8h, %1.8b, %2.8b"
5590 : /* No clobbers */);
5594 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
5595 vabdl_s16 (int16x4_t a
, int16x4_t b
)
5598 __asm__ ("sabdl %0.4s, %1.4h, %2.4h"
5601 : /* No clobbers */);
5605 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
5606 vabdl_s32 (int32x2_t a
, int32x2_t b
)
5609 __asm__ ("sabdl %0.2d, %1.2s, %2.2s"
5612 : /* No clobbers */);
5616 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
5617 vabdl_u8 (uint8x8_t a
, uint8x8_t b
)
5620 __asm__ ("uabdl %0.8h, %1.8b, %2.8b"
5623 : /* No clobbers */);
5627 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
5628 vabdl_u16 (uint16x4_t a
, uint16x4_t b
)
5631 __asm__ ("uabdl %0.4s, %1.4h, %2.4h"
5634 : /* No clobbers */);
5638 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
5639 vabdl_u32 (uint32x2_t a
, uint32x2_t b
)
5642 __asm__ ("uabdl %0.2d, %1.2s, %2.2s"
5645 : /* No clobbers */);
5649 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
5650 vabdq_s8 (int8x16_t a
, int8x16_t b
)
5653 __asm__ ("sabd %0.16b, %1.16b, %2.16b"
5656 : /* No clobbers */);
5660 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
5661 vabdq_s16 (int16x8_t a
, int16x8_t b
)
5664 __asm__ ("sabd %0.8h, %1.8h, %2.8h"
5667 : /* No clobbers */);
5671 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
5672 vabdq_s32 (int32x4_t a
, int32x4_t b
)
5675 __asm__ ("sabd %0.4s, %1.4s, %2.4s"
5678 : /* No clobbers */);
5682 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
5683 vabdq_u8 (uint8x16_t a
, uint8x16_t b
)
5686 __asm__ ("uabd %0.16b, %1.16b, %2.16b"
5689 : /* No clobbers */);
5693 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
5694 vabdq_u16 (uint16x8_t a
, uint16x8_t b
)
5697 __asm__ ("uabd %0.8h, %1.8h, %2.8h"
5700 : /* No clobbers */);
5704 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
5705 vabdq_u32 (uint32x4_t a
, uint32x4_t b
)
5708 __asm__ ("uabd %0.4s, %1.4s, %2.4s"
5711 : /* No clobbers */);
5715 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
5716 vaddlv_s8 (int8x8_t a
)
5719 __asm__ ("saddlv %h0,%1.8b"
5722 : /* No clobbers */);
5726 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
5727 vaddlv_s16 (int16x4_t a
)
5730 __asm__ ("saddlv %s0,%1.4h"
5733 : /* No clobbers */);
5737 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
5738 vaddlv_u8 (uint8x8_t a
)
5741 __asm__ ("uaddlv %h0,%1.8b"
5744 : /* No clobbers */);
5748 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
5749 vaddlv_u16 (uint16x4_t a
)
5752 __asm__ ("uaddlv %s0,%1.4h"
5755 : /* No clobbers */);
5759 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
5760 vaddlvq_s8 (int8x16_t a
)
5763 __asm__ ("saddlv %h0,%1.16b"
5766 : /* No clobbers */);
5770 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
5771 vaddlvq_s16 (int16x8_t a
)
5774 __asm__ ("saddlv %s0,%1.8h"
5777 : /* No clobbers */);
5781 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
5782 vaddlvq_s32 (int32x4_t a
)
5785 __asm__ ("saddlv %d0,%1.4s"
5788 : /* No clobbers */);
5792 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
5793 vaddlvq_u8 (uint8x16_t a
)
5796 __asm__ ("uaddlv %h0,%1.16b"
5799 : /* No clobbers */);
5803 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
5804 vaddlvq_u16 (uint16x8_t a
)
5807 __asm__ ("uaddlv %s0,%1.8h"
5810 : /* No clobbers */);
5814 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
5815 vaddlvq_u32 (uint32x4_t a
)
5818 __asm__ ("uaddlv %d0,%1.4s"
5821 : /* No clobbers */);
5825 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
5826 vcvtx_f32_f64 (float64x2_t a
)
5829 __asm__ ("fcvtxn %0.2s,%1.2d"
5832 : /* No clobbers */);
5836 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
5837 vcvtx_high_f32_f64 (float32x2_t a
, float64x2_t b
)
5840 __asm__ ("fcvtxn2 %0.4s,%1.2d"
5843 : /* No clobbers */);
5847 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
5848 vcvtxd_f32_f64 (float64_t a
)
5851 __asm__ ("fcvtxn %s0,%d1"
5854 : /* No clobbers */);
5858 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
5859 vmla_n_f32 (float32x2_t a
, float32x2_t b
, float32_t c
)
5863 __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fadd %0.2s, %0.2s, %1.2s"
5864 : "=w"(result
), "=w"(t1
)
5865 : "0"(a
), "w"(b
), "w"(c
)
5866 : /* No clobbers */);
5870 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
5871 vmla_n_s16 (int16x4_t a
, int16x4_t b
, int16_t c
)
5874 __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
5876 : "0"(a
), "w"(b
), "x"(c
)
5877 : /* No clobbers */);
5881 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
5882 vmla_n_s32 (int32x2_t a
, int32x2_t b
, int32_t c
)
5885 __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
5887 : "0"(a
), "w"(b
), "w"(c
)
5888 : /* No clobbers */);
5892 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
5893 vmla_n_u16 (uint16x4_t a
, uint16x4_t b
, uint16_t c
)
5896 __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
5898 : "0"(a
), "w"(b
), "x"(c
)
5899 : /* No clobbers */);
5903 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
5904 vmla_n_u32 (uint32x2_t a
, uint32x2_t b
, uint32_t c
)
5907 __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
5909 : "0"(a
), "w"(b
), "w"(c
)
5910 : /* No clobbers */);
5914 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
5915 vmla_s8 (int8x8_t a
, int8x8_t b
, int8x8_t c
)
5918 __asm__ ("mla %0.8b, %2.8b, %3.8b"
5920 : "0"(a
), "w"(b
), "w"(c
)
5921 : /* No clobbers */);
5925 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
5926 vmla_s16 (int16x4_t a
, int16x4_t b
, int16x4_t c
)
5929 __asm__ ("mla %0.4h, %2.4h, %3.4h"
5931 : "0"(a
), "w"(b
), "w"(c
)
5932 : /* No clobbers */);
5936 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
5937 vmla_s32 (int32x2_t a
, int32x2_t b
, int32x2_t c
)
5940 __asm__ ("mla %0.2s, %2.2s, %3.2s"
5942 : "0"(a
), "w"(b
), "w"(c
)
5943 : /* No clobbers */);
5947 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
5948 vmla_u8 (uint8x8_t a
, uint8x8_t b
, uint8x8_t c
)
5951 __asm__ ("mla %0.8b, %2.8b, %3.8b"
5953 : "0"(a
), "w"(b
), "w"(c
)
5954 : /* No clobbers */);
5958 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
5959 vmla_u16 (uint16x4_t a
, uint16x4_t b
, uint16x4_t c
)
5962 __asm__ ("mla %0.4h, %2.4h, %3.4h"
5964 : "0"(a
), "w"(b
), "w"(c
)
5965 : /* No clobbers */);
5969 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
5970 vmla_u32 (uint32x2_t a
, uint32x2_t b
, uint32x2_t c
)
5973 __asm__ ("mla %0.2s, %2.2s, %3.2s"
5975 : "0"(a
), "w"(b
), "w"(c
)
5976 : /* No clobbers */);
5980 #define vmlal_high_lane_s16(a, b, c, d) \
5983 int16x4_t c_ = (c); \
5984 int16x8_t b_ = (b); \
5985 int32x4_t a_ = (a); \
5987 __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]" \
5989 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
5990 : /* No clobbers */); \
5994 #define vmlal_high_lane_s32(a, b, c, d) \
5997 int32x2_t c_ = (c); \
5998 int32x4_t b_ = (b); \
5999 int64x2_t a_ = (a); \
6001 __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]" \
6003 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6004 : /* No clobbers */); \
6008 #define vmlal_high_lane_u16(a, b, c, d) \
6011 uint16x4_t c_ = (c); \
6012 uint16x8_t b_ = (b); \
6013 uint32x4_t a_ = (a); \
6014 uint32x4_t result; \
6015 __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]" \
6017 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6018 : /* No clobbers */); \
6022 #define vmlal_high_lane_u32(a, b, c, d) \
6025 uint32x2_t c_ = (c); \
6026 uint32x4_t b_ = (b); \
6027 uint64x2_t a_ = (a); \
6028 uint64x2_t result; \
6029 __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]" \
6031 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6032 : /* No clobbers */); \
6036 #define vmlal_high_laneq_s16(a, b, c, d) \
6039 int16x8_t c_ = (c); \
6040 int16x8_t b_ = (b); \
6041 int32x4_t a_ = (a); \
6043 __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]" \
6045 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6046 : /* No clobbers */); \
6050 #define vmlal_high_laneq_s32(a, b, c, d) \
6053 int32x4_t c_ = (c); \
6054 int32x4_t b_ = (b); \
6055 int64x2_t a_ = (a); \
6057 __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]" \
6059 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6060 : /* No clobbers */); \
6064 #define vmlal_high_laneq_u16(a, b, c, d) \
6067 uint16x8_t c_ = (c); \
6068 uint16x8_t b_ = (b); \
6069 uint32x4_t a_ = (a); \
6070 uint32x4_t result; \
6071 __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]" \
6073 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6074 : /* No clobbers */); \
6078 #define vmlal_high_laneq_u32(a, b, c, d) \
6081 uint32x4_t c_ = (c); \
6082 uint32x4_t b_ = (b); \
6083 uint64x2_t a_ = (a); \
6084 uint64x2_t result; \
6085 __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]" \
6087 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6088 : /* No clobbers */); \
6092 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
6093 vmlal_high_n_s16 (int32x4_t a
, int16x8_t b
, int16_t c
)
6096 __asm__ ("smlal2 %0.4s,%2.8h,%3.h[0]"
6098 : "0"(a
), "w"(b
), "x"(c
)
6099 : /* No clobbers */);
6103 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
6104 vmlal_high_n_s32 (int64x2_t a
, int32x4_t b
, int32_t c
)
6107 __asm__ ("smlal2 %0.2d,%2.4s,%3.s[0]"
6109 : "0"(a
), "w"(b
), "w"(c
)
6110 : /* No clobbers */);
6114 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
6115 vmlal_high_n_u16 (uint32x4_t a
, uint16x8_t b
, uint16_t c
)
6118 __asm__ ("umlal2 %0.4s,%2.8h,%3.h[0]"
6120 : "0"(a
), "w"(b
), "x"(c
)
6121 : /* No clobbers */);
6125 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
6126 vmlal_high_n_u32 (uint64x2_t a
, uint32x4_t b
, uint32_t c
)
6129 __asm__ ("umlal2 %0.2d,%2.4s,%3.s[0]"
6131 : "0"(a
), "w"(b
), "w"(c
)
6132 : /* No clobbers */);
6136 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
6137 vmlal_high_s8 (int16x8_t a
, int8x16_t b
, int8x16_t c
)
6140 __asm__ ("smlal2 %0.8h,%2.16b,%3.16b"
6142 : "0"(a
), "w"(b
), "w"(c
)
6143 : /* No clobbers */);
6147 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
6148 vmlal_high_s16 (int32x4_t a
, int16x8_t b
, int16x8_t c
)
6151 __asm__ ("smlal2 %0.4s,%2.8h,%3.8h"
6153 : "0"(a
), "w"(b
), "w"(c
)
6154 : /* No clobbers */);
6158 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
6159 vmlal_high_s32 (int64x2_t a
, int32x4_t b
, int32x4_t c
)
6162 __asm__ ("smlal2 %0.2d,%2.4s,%3.4s"
6164 : "0"(a
), "w"(b
), "w"(c
)
6165 : /* No clobbers */);
6169 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
6170 vmlal_high_u8 (uint16x8_t a
, uint8x16_t b
, uint8x16_t c
)
6173 __asm__ ("umlal2 %0.8h,%2.16b,%3.16b"
6175 : "0"(a
), "w"(b
), "w"(c
)
6176 : /* No clobbers */);
6180 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
6181 vmlal_high_u16 (uint32x4_t a
, uint16x8_t b
, uint16x8_t c
)
6184 __asm__ ("umlal2 %0.4s,%2.8h,%3.8h"
6186 : "0"(a
), "w"(b
), "w"(c
)
6187 : /* No clobbers */);
6191 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
6192 vmlal_high_u32 (uint64x2_t a
, uint32x4_t b
, uint32x4_t c
)
6195 __asm__ ("umlal2 %0.2d,%2.4s,%3.4s"
6197 : "0"(a
), "w"(b
), "w"(c
)
6198 : /* No clobbers */);
6202 #define vmlal_lane_s16(a, b, c, d) \
6205 int16x4_t c_ = (c); \
6206 int16x4_t b_ = (b); \
6207 int32x4_t a_ = (a); \
6209 __asm__ ("smlal %0.4s,%2.4h,%3.h[%4]" \
6211 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6212 : /* No clobbers */); \
6216 #define vmlal_lane_s32(a, b, c, d) \
6219 int32x2_t c_ = (c); \
6220 int32x2_t b_ = (b); \
6221 int64x2_t a_ = (a); \
6223 __asm__ ("smlal %0.2d,%2.2s,%3.s[%4]" \
6225 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6226 : /* No clobbers */); \
6230 #define vmlal_lane_u16(a, b, c, d) \
6233 uint16x4_t c_ = (c); \
6234 uint16x4_t b_ = (b); \
6235 uint32x4_t a_ = (a); \
6236 uint32x4_t result; \
6237 __asm__ ("umlal %0.4s,%2.4h,%3.h[%4]" \
6239 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6240 : /* No clobbers */); \
6244 #define vmlal_lane_u32(a, b, c, d) \
6247 uint32x2_t c_ = (c); \
6248 uint32x2_t b_ = (b); \
6249 uint64x2_t a_ = (a); \
6250 uint64x2_t result; \
6251 __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]" \
6253 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6254 : /* No clobbers */); \
6258 #define vmlal_laneq_s16(a, b, c, d) \
6261 int16x8_t c_ = (c); \
6262 int16x4_t b_ = (b); \
6263 int32x4_t a_ = (a); \
6265 __asm__ ("smlal %0.4s, %2.4h, %3.h[%4]" \
6267 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6268 : /* No clobbers */); \
6272 #define vmlal_laneq_s32(a, b, c, d) \
6275 int32x4_t c_ = (c); \
6276 int32x2_t b_ = (b); \
6277 int64x2_t a_ = (a); \
6279 __asm__ ("smlal %0.2d, %2.2s, %3.s[%4]" \
6281 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6282 : /* No clobbers */); \
6286 #define vmlal_laneq_u16(a, b, c, d) \
6289 uint16x8_t c_ = (c); \
6290 uint16x4_t b_ = (b); \
6291 uint32x4_t a_ = (a); \
6292 uint32x4_t result; \
6293 __asm__ ("umlal %0.4s, %2.4h, %3.h[%4]" \
6295 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6296 : /* No clobbers */); \
6300 #define vmlal_laneq_u32(a, b, c, d) \
6303 uint32x4_t c_ = (c); \
6304 uint32x2_t b_ = (b); \
6305 uint64x2_t a_ = (a); \
6306 uint64x2_t result; \
6307 __asm__ ("umlal %0.2d, %2.2s, %3.s[%4]" \
6309 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6310 : /* No clobbers */); \
6314 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
6315 vmlal_n_s16 (int32x4_t a
, int16x4_t b
, int16_t c
)
6318 __asm__ ("smlal %0.4s,%2.4h,%3.h[0]"
6320 : "0"(a
), "w"(b
), "x"(c
)
6321 : /* No clobbers */);
6325 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
6326 vmlal_n_s32 (int64x2_t a
, int32x2_t b
, int32_t c
)
6329 __asm__ ("smlal %0.2d,%2.2s,%3.s[0]"
6331 : "0"(a
), "w"(b
), "w"(c
)
6332 : /* No clobbers */);
6336 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
6337 vmlal_n_u16 (uint32x4_t a
, uint16x4_t b
, uint16_t c
)
6340 __asm__ ("umlal %0.4s,%2.4h,%3.h[0]"
6342 : "0"(a
), "w"(b
), "x"(c
)
6343 : /* No clobbers */);
6347 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
6348 vmlal_n_u32 (uint64x2_t a
, uint32x2_t b
, uint32_t c
)
6351 __asm__ ("umlal %0.2d,%2.2s,%3.s[0]"
6353 : "0"(a
), "w"(b
), "w"(c
)
6354 : /* No clobbers */);
6358 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
6359 vmlal_s8 (int16x8_t a
, int8x8_t b
, int8x8_t c
)
6362 __asm__ ("smlal %0.8h,%2.8b,%3.8b"
6364 : "0"(a
), "w"(b
), "w"(c
)
6365 : /* No clobbers */);
6369 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
6370 vmlal_s16 (int32x4_t a
, int16x4_t b
, int16x4_t c
)
6373 __asm__ ("smlal %0.4s,%2.4h,%3.4h"
6375 : "0"(a
), "w"(b
), "w"(c
)
6376 : /* No clobbers */);
6380 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
6381 vmlal_s32 (int64x2_t a
, int32x2_t b
, int32x2_t c
)
6384 __asm__ ("smlal %0.2d,%2.2s,%3.2s"
6386 : "0"(a
), "w"(b
), "w"(c
)
6387 : /* No clobbers */);
6391 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
6392 vmlal_u8 (uint16x8_t a
, uint8x8_t b
, uint8x8_t c
)
6395 __asm__ ("umlal %0.8h,%2.8b,%3.8b"
6397 : "0"(a
), "w"(b
), "w"(c
)
6398 : /* No clobbers */);
6402 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
6403 vmlal_u16 (uint32x4_t a
, uint16x4_t b
, uint16x4_t c
)
6406 __asm__ ("umlal %0.4s,%2.4h,%3.4h"
6408 : "0"(a
), "w"(b
), "w"(c
)
6409 : /* No clobbers */);
6413 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
6414 vmlal_u32 (uint64x2_t a
, uint32x2_t b
, uint32x2_t c
)
6417 __asm__ ("umlal %0.2d,%2.2s,%3.2s"
6419 : "0"(a
), "w"(b
), "w"(c
)
6420 : /* No clobbers */);
6424 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
6425 vmlaq_n_f32 (float32x4_t a
, float32x4_t b
, float32_t c
)
6429 __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fadd %0.4s, %0.4s, %1.4s"
6430 : "=w"(result
), "=w"(t1
)
6431 : "0"(a
), "w"(b
), "w"(c
)
6432 : /* No clobbers */);
6436 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
6437 vmlaq_n_s16 (int16x8_t a
, int16x8_t b
, int16_t c
)
6440 __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
6442 : "0"(a
), "w"(b
), "x"(c
)
6443 : /* No clobbers */);
6447 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
6448 vmlaq_n_s32 (int32x4_t a
, int32x4_t b
, int32_t c
)
6451 __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
6453 : "0"(a
), "w"(b
), "w"(c
)
6454 : /* No clobbers */);
6458 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
6459 vmlaq_n_u16 (uint16x8_t a
, uint16x8_t b
, uint16_t c
)
6462 __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
6464 : "0"(a
), "w"(b
), "x"(c
)
6465 : /* No clobbers */);
6469 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
6470 vmlaq_n_u32 (uint32x4_t a
, uint32x4_t b
, uint32_t c
)
6473 __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
6475 : "0"(a
), "w"(b
), "w"(c
)
6476 : /* No clobbers */);
6480 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
6481 vmlaq_s8 (int8x16_t a
, int8x16_t b
, int8x16_t c
)
6484 __asm__ ("mla %0.16b, %2.16b, %3.16b"
6486 : "0"(a
), "w"(b
), "w"(c
)
6487 : /* No clobbers */);
6491 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
6492 vmlaq_s16 (int16x8_t a
, int16x8_t b
, int16x8_t c
)
6495 __asm__ ("mla %0.8h, %2.8h, %3.8h"
6497 : "0"(a
), "w"(b
), "w"(c
)
6498 : /* No clobbers */);
6502 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
6503 vmlaq_s32 (int32x4_t a
, int32x4_t b
, int32x4_t c
)
6506 __asm__ ("mla %0.4s, %2.4s, %3.4s"
6508 : "0"(a
), "w"(b
), "w"(c
)
6509 : /* No clobbers */);
6513 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
6514 vmlaq_u8 (uint8x16_t a
, uint8x16_t b
, uint8x16_t c
)
6517 __asm__ ("mla %0.16b, %2.16b, %3.16b"
6519 : "0"(a
), "w"(b
), "w"(c
)
6520 : /* No clobbers */);
6524 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
6525 vmlaq_u16 (uint16x8_t a
, uint16x8_t b
, uint16x8_t c
)
6528 __asm__ ("mla %0.8h, %2.8h, %3.8h"
6530 : "0"(a
), "w"(b
), "w"(c
)
6531 : /* No clobbers */);
6535 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
6536 vmlaq_u32 (uint32x4_t a
, uint32x4_t b
, uint32x4_t c
)
6539 __asm__ ("mla %0.4s, %2.4s, %3.4s"
6541 : "0"(a
), "w"(b
), "w"(c
)
6542 : /* No clobbers */);
6546 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
6547 vmls_n_f32 (float32x2_t a
, float32x2_t b
, float32_t c
)
6551 __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fsub %0.2s, %0.2s, %1.2s"
6552 : "=w"(result
), "=w"(t1
)
6553 : "0"(a
), "w"(b
), "w"(c
)
6554 : /* No clobbers */);
6558 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
6559 vmls_n_s16 (int16x4_t a
, int16x4_t b
, int16_t c
)
6562 __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
6564 : "0"(a
), "w"(b
), "x"(c
)
6565 : /* No clobbers */);
6569 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
6570 vmls_n_s32 (int32x2_t a
, int32x2_t b
, int32_t c
)
6573 __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
6575 : "0"(a
), "w"(b
), "w"(c
)
6576 : /* No clobbers */);
6580 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
6581 vmls_n_u16 (uint16x4_t a
, uint16x4_t b
, uint16_t c
)
6584 __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
6586 : "0"(a
), "w"(b
), "x"(c
)
6587 : /* No clobbers */);
6591 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
6592 vmls_n_u32 (uint32x2_t a
, uint32x2_t b
, uint32_t c
)
6595 __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
6597 : "0"(a
), "w"(b
), "w"(c
)
6598 : /* No clobbers */);
6602 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
6603 vmls_s8 (int8x8_t a
, int8x8_t b
, int8x8_t c
)
6606 __asm__ ("mls %0.8b,%2.8b,%3.8b"
6608 : "0"(a
), "w"(b
), "w"(c
)
6609 : /* No clobbers */);
6613 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
6614 vmls_s16 (int16x4_t a
, int16x4_t b
, int16x4_t c
)
6617 __asm__ ("mls %0.4h,%2.4h,%3.4h"
6619 : "0"(a
), "w"(b
), "w"(c
)
6620 : /* No clobbers */);
6624 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
6625 vmls_s32 (int32x2_t a
, int32x2_t b
, int32x2_t c
)
6628 __asm__ ("mls %0.2s,%2.2s,%3.2s"
6630 : "0"(a
), "w"(b
), "w"(c
)
6631 : /* No clobbers */);
6635 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
6636 vmls_u8 (uint8x8_t a
, uint8x8_t b
, uint8x8_t c
)
6639 __asm__ ("mls %0.8b,%2.8b,%3.8b"
6641 : "0"(a
), "w"(b
), "w"(c
)
6642 : /* No clobbers */);
6646 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
6647 vmls_u16 (uint16x4_t a
, uint16x4_t b
, uint16x4_t c
)
6650 __asm__ ("mls %0.4h,%2.4h,%3.4h"
6652 : "0"(a
), "w"(b
), "w"(c
)
6653 : /* No clobbers */);
6657 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
6658 vmls_u32 (uint32x2_t a
, uint32x2_t b
, uint32x2_t c
)
6661 __asm__ ("mls %0.2s,%2.2s,%3.2s"
6663 : "0"(a
), "w"(b
), "w"(c
)
6664 : /* No clobbers */);
6668 #define vmlsl_high_lane_s16(a, b, c, d) \
6671 int16x4_t c_ = (c); \
6672 int16x8_t b_ = (b); \
6673 int32x4_t a_ = (a); \
6675 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]" \
6677 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6678 : /* No clobbers */); \
6682 #define vmlsl_high_lane_s32(a, b, c, d) \
6685 int32x2_t c_ = (c); \
6686 int32x4_t b_ = (b); \
6687 int64x2_t a_ = (a); \
6689 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]" \
6691 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6692 : /* No clobbers */); \
6696 #define vmlsl_high_lane_u16(a, b, c, d) \
6699 uint16x4_t c_ = (c); \
6700 uint16x8_t b_ = (b); \
6701 uint32x4_t a_ = (a); \
6702 uint32x4_t result; \
6703 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]" \
6705 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6706 : /* No clobbers */); \
6710 #define vmlsl_high_lane_u32(a, b, c, d) \
6713 uint32x2_t c_ = (c); \
6714 uint32x4_t b_ = (b); \
6715 uint64x2_t a_ = (a); \
6716 uint64x2_t result; \
6717 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]" \
6719 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6720 : /* No clobbers */); \
6724 #define vmlsl_high_laneq_s16(a, b, c, d) \
6727 int16x8_t c_ = (c); \
6728 int16x8_t b_ = (b); \
6729 int32x4_t a_ = (a); \
6731 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]" \
6733 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6734 : /* No clobbers */); \
6738 #define vmlsl_high_laneq_s32(a, b, c, d) \
6741 int32x4_t c_ = (c); \
6742 int32x4_t b_ = (b); \
6743 int64x2_t a_ = (a); \
6745 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]" \
6747 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6748 : /* No clobbers */); \
6752 #define vmlsl_high_laneq_u16(a, b, c, d) \
6755 uint16x8_t c_ = (c); \
6756 uint16x8_t b_ = (b); \
6757 uint32x4_t a_ = (a); \
6758 uint32x4_t result; \
6759 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]" \
6761 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6762 : /* No clobbers */); \
6766 #define vmlsl_high_laneq_u32(a, b, c, d) \
6769 uint32x4_t c_ = (c); \
6770 uint32x4_t b_ = (b); \
6771 uint64x2_t a_ = (a); \
6772 uint64x2_t result; \
6773 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]" \
6775 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6776 : /* No clobbers */); \
6780 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
6781 vmlsl_high_n_s16 (int32x4_t a
, int16x8_t b
, int16_t c
)
6784 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[0]"
6786 : "0"(a
), "w"(b
), "x"(c
)
6787 : /* No clobbers */);
6791 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
6792 vmlsl_high_n_s32 (int64x2_t a
, int32x4_t b
, int32_t c
)
6795 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[0]"
6797 : "0"(a
), "w"(b
), "w"(c
)
6798 : /* No clobbers */);
6802 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
6803 vmlsl_high_n_u16 (uint32x4_t a
, uint16x8_t b
, uint16_t c
)
6806 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[0]"
6808 : "0"(a
), "w"(b
), "x"(c
)
6809 : /* No clobbers */);
6813 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
6814 vmlsl_high_n_u32 (uint64x2_t a
, uint32x4_t b
, uint32_t c
)
6817 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[0]"
6819 : "0"(a
), "w"(b
), "w"(c
)
6820 : /* No clobbers */);
6824 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
6825 vmlsl_high_s8 (int16x8_t a
, int8x16_t b
, int8x16_t c
)
6828 __asm__ ("smlsl2 %0.8h,%2.16b,%3.16b"
6830 : "0"(a
), "w"(b
), "w"(c
)
6831 : /* No clobbers */);
6835 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
6836 vmlsl_high_s16 (int32x4_t a
, int16x8_t b
, int16x8_t c
)
6839 __asm__ ("smlsl2 %0.4s,%2.8h,%3.8h"
6841 : "0"(a
), "w"(b
), "w"(c
)
6842 : /* No clobbers */);
6846 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
6847 vmlsl_high_s32 (int64x2_t a
, int32x4_t b
, int32x4_t c
)
6850 __asm__ ("smlsl2 %0.2d,%2.4s,%3.4s"
6852 : "0"(a
), "w"(b
), "w"(c
)
6853 : /* No clobbers */);
6857 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
6858 vmlsl_high_u8 (uint16x8_t a
, uint8x16_t b
, uint8x16_t c
)
6861 __asm__ ("umlsl2 %0.8h,%2.16b,%3.16b"
6863 : "0"(a
), "w"(b
), "w"(c
)
6864 : /* No clobbers */);
6868 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
6869 vmlsl_high_u16 (uint32x4_t a
, uint16x8_t b
, uint16x8_t c
)
6872 __asm__ ("umlsl2 %0.4s,%2.8h,%3.8h"
6874 : "0"(a
), "w"(b
), "w"(c
)
6875 : /* No clobbers */);
6879 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
6880 vmlsl_high_u32 (uint64x2_t a
, uint32x4_t b
, uint32x4_t c
)
6883 __asm__ ("umlsl2 %0.2d,%2.4s,%3.4s"
6885 : "0"(a
), "w"(b
), "w"(c
)
6886 : /* No clobbers */);
6890 #define vmlsl_lane_s16(a, b, c, d) \
6893 int16x4_t c_ = (c); \
6894 int16x4_t b_ = (b); \
6895 int32x4_t a_ = (a); \
6897 __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]" \
6899 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6900 : /* No clobbers */); \
6904 #define vmlsl_lane_s32(a, b, c, d) \
6907 int32x2_t c_ = (c); \
6908 int32x2_t b_ = (b); \
6909 int64x2_t a_ = (a); \
6911 __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]" \
6913 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6914 : /* No clobbers */); \
6918 #define vmlsl_lane_u16(a, b, c, d) \
6921 uint16x4_t c_ = (c); \
6922 uint16x4_t b_ = (b); \
6923 uint32x4_t a_ = (a); \
6924 uint32x4_t result; \
6925 __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]" \
6927 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6928 : /* No clobbers */); \
6932 #define vmlsl_lane_u32(a, b, c, d) \
6935 uint32x2_t c_ = (c); \
6936 uint32x2_t b_ = (b); \
6937 uint64x2_t a_ = (a); \
6938 uint64x2_t result; \
6939 __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]" \
6941 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6942 : /* No clobbers */); \
6946 #define vmlsl_laneq_s16(a, b, c, d) \
6949 int16x8_t c_ = (c); \
6950 int16x4_t b_ = (b); \
6951 int32x4_t a_ = (a); \
6953 __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]" \
6955 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6956 : /* No clobbers */); \
6960 #define vmlsl_laneq_s32(a, b, c, d) \
6963 int32x4_t c_ = (c); \
6964 int32x2_t b_ = (b); \
6965 int64x2_t a_ = (a); \
6967 __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]" \
6969 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6970 : /* No clobbers */); \
6974 #define vmlsl_laneq_u16(a, b, c, d) \
6977 uint16x8_t c_ = (c); \
6978 uint16x4_t b_ = (b); \
6979 uint32x4_t a_ = (a); \
6980 uint32x4_t result; \
6981 __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]" \
6983 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
6984 : /* No clobbers */); \
6988 #define vmlsl_laneq_u32(a, b, c, d) \
6991 uint32x4_t c_ = (c); \
6992 uint32x2_t b_ = (b); \
6993 uint64x2_t a_ = (a); \
6994 uint64x2_t result; \
6995 __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]" \
6997 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
6998 : /* No clobbers */); \
7002 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7003 vmlsl_n_s16 (int32x4_t a
, int16x4_t b
, int16_t c
)
7006 __asm__ ("smlsl %0.4s, %2.4h, %3.h[0]"
7008 : "0"(a
), "w"(b
), "x"(c
)
7009 : /* No clobbers */);
7013 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
7014 vmlsl_n_s32 (int64x2_t a
, int32x2_t b
, int32_t c
)
7017 __asm__ ("smlsl %0.2d, %2.2s, %3.s[0]"
7019 : "0"(a
), "w"(b
), "w"(c
)
7020 : /* No clobbers */);
7024 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7025 vmlsl_n_u16 (uint32x4_t a
, uint16x4_t b
, uint16_t c
)
7028 __asm__ ("umlsl %0.4s, %2.4h, %3.h[0]"
7030 : "0"(a
), "w"(b
), "x"(c
)
7031 : /* No clobbers */);
7035 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
7036 vmlsl_n_u32 (uint64x2_t a
, uint32x2_t b
, uint32_t c
)
7039 __asm__ ("umlsl %0.2d, %2.2s, %3.s[0]"
7041 : "0"(a
), "w"(b
), "w"(c
)
7042 : /* No clobbers */);
7046 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
7047 vmlsl_s8 (int16x8_t a
, int8x8_t b
, int8x8_t c
)
7050 __asm__ ("smlsl %0.8h, %2.8b, %3.8b"
7052 : "0"(a
), "w"(b
), "w"(c
)
7053 : /* No clobbers */);
7057 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7058 vmlsl_s16 (int32x4_t a
, int16x4_t b
, int16x4_t c
)
7061 __asm__ ("smlsl %0.4s, %2.4h, %3.4h"
7063 : "0"(a
), "w"(b
), "w"(c
)
7064 : /* No clobbers */);
7068 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
7069 vmlsl_s32 (int64x2_t a
, int32x2_t b
, int32x2_t c
)
7072 __asm__ ("smlsl %0.2d, %2.2s, %3.2s"
7074 : "0"(a
), "w"(b
), "w"(c
)
7075 : /* No clobbers */);
7079 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
7080 vmlsl_u8 (uint16x8_t a
, uint8x8_t b
, uint8x8_t c
)
7083 __asm__ ("umlsl %0.8h, %2.8b, %3.8b"
7085 : "0"(a
), "w"(b
), "w"(c
)
7086 : /* No clobbers */);
7090 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7091 vmlsl_u16 (uint32x4_t a
, uint16x4_t b
, uint16x4_t c
)
7094 __asm__ ("umlsl %0.4s, %2.4h, %3.4h"
7096 : "0"(a
), "w"(b
), "w"(c
)
7097 : /* No clobbers */);
7101 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
7102 vmlsl_u32 (uint64x2_t a
, uint32x2_t b
, uint32x2_t c
)
7105 __asm__ ("umlsl %0.2d, %2.2s, %3.2s"
7107 : "0"(a
), "w"(b
), "w"(c
)
7108 : /* No clobbers */);
7112 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
7113 vmlsq_n_f32 (float32x4_t a
, float32x4_t b
, float32_t c
)
7117 __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fsub %0.4s, %0.4s, %1.4s"
7118 : "=w"(result
), "=w"(t1
)
7119 : "0"(a
), "w"(b
), "w"(c
)
7120 : /* No clobbers */);
7124 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
7125 vmlsq_n_s16 (int16x8_t a
, int16x8_t b
, int16_t c
)
7128 __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
7130 : "0"(a
), "w"(b
), "x"(c
)
7131 : /* No clobbers */);
7135 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7136 vmlsq_n_s32 (int32x4_t a
, int32x4_t b
, int32_t c
)
7139 __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
7141 : "0"(a
), "w"(b
), "w"(c
)
7142 : /* No clobbers */);
7146 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
7147 vmlsq_n_u16 (uint16x8_t a
, uint16x8_t b
, uint16_t c
)
7150 __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
7152 : "0"(a
), "w"(b
), "x"(c
)
7153 : /* No clobbers */);
7157 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7158 vmlsq_n_u32 (uint32x4_t a
, uint32x4_t b
, uint32_t c
)
7161 __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
7163 : "0"(a
), "w"(b
), "w"(c
)
7164 : /* No clobbers */);
7168 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
7169 vmlsq_s8 (int8x16_t a
, int8x16_t b
, int8x16_t c
)
7172 __asm__ ("mls %0.16b,%2.16b,%3.16b"
7174 : "0"(a
), "w"(b
), "w"(c
)
7175 : /* No clobbers */);
7179 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
7180 vmlsq_s16 (int16x8_t a
, int16x8_t b
, int16x8_t c
)
7183 __asm__ ("mls %0.8h,%2.8h,%3.8h"
7185 : "0"(a
), "w"(b
), "w"(c
)
7186 : /* No clobbers */);
7190 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7191 vmlsq_s32 (int32x4_t a
, int32x4_t b
, int32x4_t c
)
7194 __asm__ ("mls %0.4s,%2.4s,%3.4s"
7196 : "0"(a
), "w"(b
), "w"(c
)
7197 : /* No clobbers */);
7201 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
7202 vmlsq_u8 (uint8x16_t a
, uint8x16_t b
, uint8x16_t c
)
7205 __asm__ ("mls %0.16b,%2.16b,%3.16b"
7207 : "0"(a
), "w"(b
), "w"(c
)
7208 : /* No clobbers */);
7212 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
7213 vmlsq_u16 (uint16x8_t a
, uint16x8_t b
, uint16x8_t c
)
7216 __asm__ ("mls %0.8h,%2.8h,%3.8h"
7218 : "0"(a
), "w"(b
), "w"(c
)
7219 : /* No clobbers */);
7223 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7224 vmlsq_u32 (uint32x4_t a
, uint32x4_t b
, uint32x4_t c
)
7227 __asm__ ("mls %0.4s,%2.4s,%3.4s"
7229 : "0"(a
), "w"(b
), "w"(c
)
7230 : /* No clobbers */);
7234 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
7235 vmovl_high_s8 (int8x16_t a
)
7238 __asm__ ("sshll2 %0.8h,%1.16b,#0"
7241 : /* No clobbers */);
7245 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7246 vmovl_high_s16 (int16x8_t a
)
7249 __asm__ ("sshll2 %0.4s,%1.8h,#0"
7252 : /* No clobbers */);
7256 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
7257 vmovl_high_s32 (int32x4_t a
)
7260 __asm__ ("sshll2 %0.2d,%1.4s,#0"
7263 : /* No clobbers */);
7267 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
7268 vmovl_high_u8 (uint8x16_t a
)
7271 __asm__ ("ushll2 %0.8h,%1.16b,#0"
7274 : /* No clobbers */);
7278 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7279 vmovl_high_u16 (uint16x8_t a
)
7282 __asm__ ("ushll2 %0.4s,%1.8h,#0"
7285 : /* No clobbers */);
7289 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
7290 vmovl_high_u32 (uint32x4_t a
)
7293 __asm__ ("ushll2 %0.2d,%1.4s,#0"
7296 : /* No clobbers */);
7300 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
7301 vmovl_s8 (int8x8_t a
)
7304 __asm__ ("sshll %0.8h,%1.8b,#0"
7307 : /* No clobbers */);
7311 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7312 vmovl_s16 (int16x4_t a
)
7315 __asm__ ("sshll %0.4s,%1.4h,#0"
7318 : /* No clobbers */);
7322 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
7323 vmovl_s32 (int32x2_t a
)
7326 __asm__ ("sshll %0.2d,%1.2s,#0"
7329 : /* No clobbers */);
7333 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
7334 vmovl_u8 (uint8x8_t a
)
7337 __asm__ ("ushll %0.8h,%1.8b,#0"
7340 : /* No clobbers */);
7344 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7345 vmovl_u16 (uint16x4_t a
)
7348 __asm__ ("ushll %0.4s,%1.4h,#0"
7351 : /* No clobbers */);
7355 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
7356 vmovl_u32 (uint32x2_t a
)
7359 __asm__ ("ushll %0.2d,%1.2s,#0"
7362 : /* No clobbers */);
7366 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
7367 vmovn_high_s16 (int8x8_t a
, int16x8_t b
)
7369 int8x16_t result
= vcombine_s8 (a
, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
7370 __asm__ ("xtn2 %0.16b,%1.8h"
7373 : /* No clobbers */);
7377 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
7378 vmovn_high_s32 (int16x4_t a
, int32x4_t b
)
7380 int16x8_t result
= vcombine_s16 (a
, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
7381 __asm__ ("xtn2 %0.8h,%1.4s"
7384 : /* No clobbers */);
7388 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7389 vmovn_high_s64 (int32x2_t a
, int64x2_t b
)
7391 int32x4_t result
= vcombine_s32 (a
, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
7392 __asm__ ("xtn2 %0.4s,%1.2d"
7395 : /* No clobbers */);
7399 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
7400 vmovn_high_u16 (uint8x8_t a
, uint16x8_t b
)
7402 uint8x16_t result
= vcombine_u8 (a
, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
7403 __asm__ ("xtn2 %0.16b,%1.8h"
7406 : /* No clobbers */);
7410 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
7411 vmovn_high_u32 (uint16x4_t a
, uint32x4_t b
)
7413 uint16x8_t result
= vcombine_u16 (a
, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
7414 __asm__ ("xtn2 %0.8h,%1.4s"
7417 : /* No clobbers */);
7421 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7422 vmovn_high_u64 (uint32x2_t a
, uint64x2_t b
)
7424 uint32x4_t result
= vcombine_u32 (a
, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
7425 __asm__ ("xtn2 %0.4s,%1.2d"
7428 : /* No clobbers */);
7432 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
7433 vmovn_s16 (int16x8_t a
)
7436 __asm__ ("xtn %0.8b,%1.8h"
7439 : /* No clobbers */);
7443 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
7444 vmovn_s32 (int32x4_t a
)
7447 __asm__ ("xtn %0.4h,%1.4s"
7450 : /* No clobbers */);
7454 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
7455 vmovn_s64 (int64x2_t a
)
7458 __asm__ ("xtn %0.2s,%1.2d"
7461 : /* No clobbers */);
7465 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
7466 vmovn_u16 (uint16x8_t a
)
7469 __asm__ ("xtn %0.8b,%1.8h"
7472 : /* No clobbers */);
7476 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
7477 vmovn_u32 (uint32x4_t a
)
7480 __asm__ ("xtn %0.4h,%1.4s"
7483 : /* No clobbers */);
7487 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
7488 vmovn_u64 (uint64x2_t a
)
7491 __asm__ ("xtn %0.2s,%1.2d"
7494 : /* No clobbers */);
7498 #define vmull_high_lane_s16(a, b, c) \
7501 int16x4_t b_ = (b); \
7502 int16x8_t a_ = (a); \
7504 __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]" \
7506 : "w"(a_), "x"(b_), "i"(c) \
7507 : /* No clobbers */); \
7511 #define vmull_high_lane_s32(a, b, c) \
7514 int32x2_t b_ = (b); \
7515 int32x4_t a_ = (a); \
7517 __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]" \
7519 : "w"(a_), "w"(b_), "i"(c) \
7520 : /* No clobbers */); \
7524 #define vmull_high_lane_u16(a, b, c) \
7527 uint16x4_t b_ = (b); \
7528 uint16x8_t a_ = (a); \
7529 uint32x4_t result; \
7530 __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]" \
7532 : "w"(a_), "x"(b_), "i"(c) \
7533 : /* No clobbers */); \
7537 #define vmull_high_lane_u32(a, b, c) \
7540 uint32x2_t b_ = (b); \
7541 uint32x4_t a_ = (a); \
7542 uint64x2_t result; \
7543 __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]" \
7545 : "w"(a_), "w"(b_), "i"(c) \
7546 : /* No clobbers */); \
7550 #define vmull_high_laneq_s16(a, b, c) \
7553 int16x8_t b_ = (b); \
7554 int16x8_t a_ = (a); \
7556 __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]" \
7558 : "w"(a_), "x"(b_), "i"(c) \
7559 : /* No clobbers */); \
7563 #define vmull_high_laneq_s32(a, b, c) \
7566 int32x4_t b_ = (b); \
7567 int32x4_t a_ = (a); \
7569 __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]" \
7571 : "w"(a_), "w"(b_), "i"(c) \
7572 : /* No clobbers */); \
7576 #define vmull_high_laneq_u16(a, b, c) \
7579 uint16x8_t b_ = (b); \
7580 uint16x8_t a_ = (a); \
7581 uint32x4_t result; \
7582 __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]" \
7584 : "w"(a_), "x"(b_), "i"(c) \
7585 : /* No clobbers */); \
7589 #define vmull_high_laneq_u32(a, b, c) \
7592 uint32x4_t b_ = (b); \
7593 uint32x4_t a_ = (a); \
7594 uint64x2_t result; \
7595 __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]" \
7597 : "w"(a_), "w"(b_), "i"(c) \
7598 : /* No clobbers */); \
7602 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7603 vmull_high_n_s16 (int16x8_t a
, int16_t b
)
7606 __asm__ ("smull2 %0.4s,%1.8h,%2.h[0]"
7609 : /* No clobbers */);
7613 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
7614 vmull_high_n_s32 (int32x4_t a
, int32_t b
)
7617 __asm__ ("smull2 %0.2d,%1.4s,%2.s[0]"
7620 : /* No clobbers */);
7624 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7625 vmull_high_n_u16 (uint16x8_t a
, uint16_t b
)
7628 __asm__ ("umull2 %0.4s,%1.8h,%2.h[0]"
7631 : /* No clobbers */);
7635 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
7636 vmull_high_n_u32 (uint32x4_t a
, uint32_t b
)
7639 __asm__ ("umull2 %0.2d,%1.4s,%2.s[0]"
7642 : /* No clobbers */);
7646 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
7647 vmull_high_p8 (poly8x16_t a
, poly8x16_t b
)
7650 __asm__ ("pmull2 %0.8h,%1.16b,%2.16b"
7653 : /* No clobbers */);
7657 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
7658 vmull_high_s8 (int8x16_t a
, int8x16_t b
)
7661 __asm__ ("smull2 %0.8h,%1.16b,%2.16b"
7664 : /* No clobbers */);
7668 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7669 vmull_high_s16 (int16x8_t a
, int16x8_t b
)
7672 __asm__ ("smull2 %0.4s,%1.8h,%2.8h"
7675 : /* No clobbers */);
7679 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
7680 vmull_high_s32 (int32x4_t a
, int32x4_t b
)
7683 __asm__ ("smull2 %0.2d,%1.4s,%2.4s"
7686 : /* No clobbers */);
7690 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
7691 vmull_high_u8 (uint8x16_t a
, uint8x16_t b
)
7694 __asm__ ("umull2 %0.8h,%1.16b,%2.16b"
7697 : /* No clobbers */);
7701 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7702 vmull_high_u16 (uint16x8_t a
, uint16x8_t b
)
7705 __asm__ ("umull2 %0.4s,%1.8h,%2.8h"
7708 : /* No clobbers */);
7712 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
7713 vmull_high_u32 (uint32x4_t a
, uint32x4_t b
)
7716 __asm__ ("umull2 %0.2d,%1.4s,%2.4s"
7719 : /* No clobbers */);
7723 #define vmull_lane_s16(a, b, c) \
7726 int16x4_t b_ = (b); \
7727 int16x4_t a_ = (a); \
7729 __asm__ ("smull %0.4s,%1.4h,%2.h[%3]" \
7731 : "w"(a_), "x"(b_), "i"(c) \
7732 : /* No clobbers */); \
7736 #define vmull_lane_s32(a, b, c) \
7739 int32x2_t b_ = (b); \
7740 int32x2_t a_ = (a); \
7742 __asm__ ("smull %0.2d,%1.2s,%2.s[%3]" \
7744 : "w"(a_), "w"(b_), "i"(c) \
7745 : /* No clobbers */); \
7749 #define vmull_lane_u16(a, b, c) \
7752 uint16x4_t b_ = (b); \
7753 uint16x4_t a_ = (a); \
7754 uint32x4_t result; \
7755 __asm__ ("umull %0.4s,%1.4h,%2.h[%3]" \
7757 : "w"(a_), "x"(b_), "i"(c) \
7758 : /* No clobbers */); \
7762 #define vmull_lane_u32(a, b, c) \
7765 uint32x2_t b_ = (b); \
7766 uint32x2_t a_ = (a); \
7767 uint64x2_t result; \
7768 __asm__ ("umull %0.2d, %1.2s, %2.s[%3]" \
7770 : "w"(a_), "w"(b_), "i"(c) \
7771 : /* No clobbers */); \
7775 #define vmull_laneq_s16(a, b, c) \
7778 int16x8_t b_ = (b); \
7779 int16x4_t a_ = (a); \
7781 __asm__ ("smull %0.4s, %1.4h, %2.h[%3]" \
7783 : "w"(a_), "x"(b_), "i"(c) \
7784 : /* No clobbers */); \
7788 #define vmull_laneq_s32(a, b, c) \
7791 int32x4_t b_ = (b); \
7792 int32x2_t a_ = (a); \
7794 __asm__ ("smull %0.2d, %1.2s, %2.s[%3]" \
7796 : "w"(a_), "w"(b_), "i"(c) \
7797 : /* No clobbers */); \
7801 #define vmull_laneq_u16(a, b, c) \
7804 uint16x8_t b_ = (b); \
7805 uint16x4_t a_ = (a); \
7806 uint32x4_t result; \
7807 __asm__ ("umull %0.4s, %1.4h, %2.h[%3]" \
7809 : "w"(a_), "x"(b_), "i"(c) \
7810 : /* No clobbers */); \
7814 #define vmull_laneq_u32(a, b, c) \
7817 uint32x4_t b_ = (b); \
7818 uint32x2_t a_ = (a); \
7819 uint64x2_t result; \
7820 __asm__ ("umull %0.2d, %1.2s, %2.s[%3]" \
7822 : "w"(a_), "w"(b_), "i"(c) \
7823 : /* No clobbers */); \
7827 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7828 vmull_n_s16 (int16x4_t a
, int16_t b
)
7831 __asm__ ("smull %0.4s,%1.4h,%2.h[0]"
7834 : /* No clobbers */);
7838 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
7839 vmull_n_s32 (int32x2_t a
, int32_t b
)
7842 __asm__ ("smull %0.2d,%1.2s,%2.s[0]"
7845 : /* No clobbers */);
7849 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7850 vmull_n_u16 (uint16x4_t a
, uint16_t b
)
7853 __asm__ ("umull %0.4s,%1.4h,%2.h[0]"
7856 : /* No clobbers */);
7860 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
7861 vmull_n_u32 (uint32x2_t a
, uint32_t b
)
7864 __asm__ ("umull %0.2d,%1.2s,%2.s[0]"
7867 : /* No clobbers */);
7871 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
7872 vmull_p8 (poly8x8_t a
, poly8x8_t b
)
7875 __asm__ ("pmull %0.8h, %1.8b, %2.8b"
7878 : /* No clobbers */);
7882 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
7883 vmull_s8 (int8x8_t a
, int8x8_t b
)
7886 __asm__ ("smull %0.8h, %1.8b, %2.8b"
7889 : /* No clobbers */);
7893 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
7894 vmull_s16 (int16x4_t a
, int16x4_t b
)
7897 __asm__ ("smull %0.4s, %1.4h, %2.4h"
7900 : /* No clobbers */);
7904 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
7905 vmull_s32 (int32x2_t a
, int32x2_t b
)
7908 __asm__ ("smull %0.2d, %1.2s, %2.2s"
7911 : /* No clobbers */);
7915 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
7916 vmull_u8 (uint8x8_t a
, uint8x8_t b
)
7919 __asm__ ("umull %0.8h, %1.8b, %2.8b"
7922 : /* No clobbers */);
7926 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
7927 vmull_u16 (uint16x4_t a
, uint16x4_t b
)
7930 __asm__ ("umull %0.4s, %1.4h, %2.4h"
7933 : /* No clobbers */);
7937 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
7938 vmull_u32 (uint32x2_t a
, uint32x2_t b
)
7941 __asm__ ("umull %0.2d, %1.2s, %2.2s"
7944 : /* No clobbers */);
7948 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
7949 vpadal_s8 (int16x4_t a
, int8x8_t b
)
7952 __asm__ ("sadalp %0.4h,%2.8b"
7955 : /* No clobbers */);
7959 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
7960 vpadal_s16 (int32x2_t a
, int16x4_t b
)
7963 __asm__ ("sadalp %0.2s,%2.4h"
7966 : /* No clobbers */);
7970 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
7971 vpadal_s32 (int64x1_t a
, int32x2_t b
)
7974 __asm__ ("sadalp %0.1d,%2.2s"
7977 : /* No clobbers */);
7981 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
7982 vpadal_u8 (uint16x4_t a
, uint8x8_t b
)
7985 __asm__ ("uadalp %0.4h,%2.8b"
7988 : /* No clobbers */);
7992 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
7993 vpadal_u16 (uint32x2_t a
, uint16x4_t b
)
7996 __asm__ ("uadalp %0.2s,%2.4h"
7999 : /* No clobbers */);
8003 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
8004 vpadal_u32 (uint64x1_t a
, uint32x2_t b
)
8007 __asm__ ("uadalp %0.1d,%2.2s"
8010 : /* No clobbers */);
8014 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
8015 vpadalq_s8 (int16x8_t a
, int8x16_t b
)
8018 __asm__ ("sadalp %0.8h,%2.16b"
8021 : /* No clobbers */);
8025 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
8026 vpadalq_s16 (int32x4_t a
, int16x8_t b
)
8029 __asm__ ("sadalp %0.4s,%2.8h"
8032 : /* No clobbers */);
8036 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
8037 vpadalq_s32 (int64x2_t a
, int32x4_t b
)
8040 __asm__ ("sadalp %0.2d,%2.4s"
8043 : /* No clobbers */);
8047 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
8048 vpadalq_u8 (uint16x8_t a
, uint8x16_t b
)
8051 __asm__ ("uadalp %0.8h,%2.16b"
8054 : /* No clobbers */);
8058 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
8059 vpadalq_u16 (uint32x4_t a
, uint16x8_t b
)
8062 __asm__ ("uadalp %0.4s,%2.8h"
8065 : /* No clobbers */);
8069 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
8070 vpadalq_u32 (uint64x2_t a
, uint32x4_t b
)
8073 __asm__ ("uadalp %0.2d,%2.4s"
8076 : /* No clobbers */);
8080 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
8081 vpaddl_s8 (int8x8_t a
)
8084 __asm__ ("saddlp %0.4h,%1.8b"
8087 : /* No clobbers */);
8091 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
8092 vpaddl_s16 (int16x4_t a
)
8095 __asm__ ("saddlp %0.2s,%1.4h"
8098 : /* No clobbers */);
8102 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
8103 vpaddl_s32 (int32x2_t a
)
8106 __asm__ ("saddlp %0.1d,%1.2s"
8109 : /* No clobbers */);
8113 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
8114 vpaddl_u8 (uint8x8_t a
)
8117 __asm__ ("uaddlp %0.4h,%1.8b"
8120 : /* No clobbers */);
8124 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
8125 vpaddl_u16 (uint16x4_t a
)
8128 __asm__ ("uaddlp %0.2s,%1.4h"
8131 : /* No clobbers */);
8135 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
8136 vpaddl_u32 (uint32x2_t a
)
8139 __asm__ ("uaddlp %0.1d,%1.2s"
8142 : /* No clobbers */);
8146 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
8147 vpaddlq_s8 (int8x16_t a
)
8150 __asm__ ("saddlp %0.8h,%1.16b"
8153 : /* No clobbers */);
8157 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
8158 vpaddlq_s16 (int16x8_t a
)
8161 __asm__ ("saddlp %0.4s,%1.8h"
8164 : /* No clobbers */);
8168 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
8169 vpaddlq_s32 (int32x4_t a
)
8172 __asm__ ("saddlp %0.2d,%1.4s"
8175 : /* No clobbers */);
8179 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
8180 vpaddlq_u8 (uint8x16_t a
)
8183 __asm__ ("uaddlp %0.8h,%1.16b"
8186 : /* No clobbers */);
8190 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
8191 vpaddlq_u16 (uint16x8_t a
)
8194 __asm__ ("uaddlp %0.4s,%1.8h"
8197 : /* No clobbers */);
8201 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
8202 vpaddlq_u32 (uint32x4_t a
)
8205 __asm__ ("uaddlp %0.2d,%1.4s"
8208 : /* No clobbers */);
8212 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
8213 vpaddq_s8 (int8x16_t a
, int8x16_t b
)
8216 __asm__ ("addp %0.16b,%1.16b,%2.16b"
8219 : /* No clobbers */);
8223 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
8224 vpaddq_s16 (int16x8_t a
, int16x8_t b
)
8227 __asm__ ("addp %0.8h,%1.8h,%2.8h"
8230 : /* No clobbers */);
8234 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
8235 vpaddq_s32 (int32x4_t a
, int32x4_t b
)
8238 __asm__ ("addp %0.4s,%1.4s,%2.4s"
8241 : /* No clobbers */);
8245 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
8246 vpaddq_s64 (int64x2_t a
, int64x2_t b
)
8249 __asm__ ("addp %0.2d,%1.2d,%2.2d"
8252 : /* No clobbers */);
8256 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
8257 vpaddq_u8 (uint8x16_t a
, uint8x16_t b
)
8260 __asm__ ("addp %0.16b,%1.16b,%2.16b"
8263 : /* No clobbers */);
8267 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
8268 vpaddq_u16 (uint16x8_t a
, uint16x8_t b
)
8271 __asm__ ("addp %0.8h,%1.8h,%2.8h"
8274 : /* No clobbers */);
8278 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
8279 vpaddq_u32 (uint32x4_t a
, uint32x4_t b
)
8282 __asm__ ("addp %0.4s,%1.4s,%2.4s"
8285 : /* No clobbers */);
8289 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
8290 vpaddq_u64 (uint64x2_t a
, uint64x2_t b
)
8293 __asm__ ("addp %0.2d,%1.2d,%2.2d"
8296 : /* No clobbers */);
8300 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
8301 vqdmulh_n_s16 (int16x4_t a
, int16_t b
)
8304 __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]"
8307 : /* No clobbers */);
8311 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
8312 vqdmulh_n_s32 (int32x2_t a
, int32_t b
)
8315 __asm__ ("sqdmulh %0.2s,%1.2s,%2.s[0]"
8318 : /* No clobbers */);
8322 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
8323 vqdmulhq_n_s16 (int16x8_t a
, int16_t b
)
8326 __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]"
8329 : /* No clobbers */);
8333 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
8334 vqdmulhq_n_s32 (int32x4_t a
, int32_t b
)
8337 __asm__ ("sqdmulh %0.4s,%1.4s,%2.s[0]"
8340 : /* No clobbers */);
8344 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
8345 vqmovn_high_s16 (int8x8_t a
, int16x8_t b
)
8347 int8x16_t result
= vcombine_s8 (a
, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
8348 __asm__ ("sqxtn2 %0.16b, %1.8h"
8351 : /* No clobbers */);
8355 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
8356 vqmovn_high_s32 (int16x4_t a
, int32x4_t b
)
8358 int16x8_t result
= vcombine_s16 (a
, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
8359 __asm__ ("sqxtn2 %0.8h, %1.4s"
8362 : /* No clobbers */);
8366 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
8367 vqmovn_high_s64 (int32x2_t a
, int64x2_t b
)
8369 int32x4_t result
= vcombine_s32 (a
, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
8370 __asm__ ("sqxtn2 %0.4s, %1.2d"
8373 : /* No clobbers */);
8377 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
8378 vqmovn_high_u16 (uint8x8_t a
, uint16x8_t b
)
8380 uint8x16_t result
= vcombine_u8 (a
, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
8381 __asm__ ("uqxtn2 %0.16b, %1.8h"
8384 : /* No clobbers */);
8388 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
8389 vqmovn_high_u32 (uint16x4_t a
, uint32x4_t b
)
8391 uint16x8_t result
= vcombine_u16 (a
, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
8392 __asm__ ("uqxtn2 %0.8h, %1.4s"
8395 : /* No clobbers */);
8399 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
8400 vqmovn_high_u64 (uint32x2_t a
, uint64x2_t b
)
8402 uint32x4_t result
= vcombine_u32 (a
, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
8403 __asm__ ("uqxtn2 %0.4s, %1.2d"
8406 : /* No clobbers */);
8410 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
8411 vqmovun_high_s16 (uint8x8_t a
, int16x8_t b
)
8413 uint8x16_t result
= vcombine_u8 (a
, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
8414 __asm__ ("sqxtun2 %0.16b, %1.8h"
8417 : /* No clobbers */);
8421 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
8422 vqmovun_high_s32 (uint16x4_t a
, int32x4_t b
)
8424 uint16x8_t result
= vcombine_u16 (a
, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
8425 __asm__ ("sqxtun2 %0.8h, %1.4s"
8428 : /* No clobbers */);
8432 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
8433 vqmovun_high_s64 (uint32x2_t a
, int64x2_t b
)
8435 uint32x4_t result
= vcombine_u32 (a
, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
8436 __asm__ ("sqxtun2 %0.4s, %1.2d"
8439 : /* No clobbers */);
8443 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
8444 vqrdmulh_n_s16 (int16x4_t a
, int16_t b
)
8447 __asm__ ("sqrdmulh %0.4h,%1.4h,%2.h[0]"
8450 : /* No clobbers */);
8454 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
8455 vqrdmulh_n_s32 (int32x2_t a
, int32_t b
)
8458 __asm__ ("sqrdmulh %0.2s,%1.2s,%2.s[0]"
8461 : /* No clobbers */);
8465 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
8466 vqrdmulhq_n_s16 (int16x8_t a
, int16_t b
)
8469 __asm__ ("sqrdmulh %0.8h,%1.8h,%2.h[0]"
8472 : /* No clobbers */);
8476 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
8477 vqrdmulhq_n_s32 (int32x4_t a
, int32_t b
)
8480 __asm__ ("sqrdmulh %0.4s,%1.4s,%2.s[0]"
8483 : /* No clobbers */);
8487 #define vqrshrn_high_n_s16(a, b, c) \
8490 int16x8_t b_ = (b); \
8491 int8x8_t a_ = (a); \
8492 int8x16_t result = vcombine_s8 \
8494 (__AARCH64_UINT64_C (0x0))); \
8495 __asm__ ("sqrshrn2 %0.16b, %1.8h, #%2" \
8498 : /* No clobbers */); \
8502 #define vqrshrn_high_n_s32(a, b, c) \
8505 int32x4_t b_ = (b); \
8506 int16x4_t a_ = (a); \
8507 int16x8_t result = vcombine_s16 \
8509 (__AARCH64_UINT64_C (0x0))); \
8510 __asm__ ("sqrshrn2 %0.8h, %1.4s, #%2" \
8513 : /* No clobbers */); \
8517 #define vqrshrn_high_n_s64(a, b, c) \
8520 int64x2_t b_ = (b); \
8521 int32x2_t a_ = (a); \
8522 int32x4_t result = vcombine_s32 \
8524 (__AARCH64_UINT64_C (0x0))); \
8525 __asm__ ("sqrshrn2 %0.4s, %1.2d, #%2" \
8528 : /* No clobbers */); \
8532 #define vqrshrn_high_n_u16(a, b, c) \
8535 uint16x8_t b_ = (b); \
8536 uint8x8_t a_ = (a); \
8537 uint8x16_t result = vcombine_u8 \
8539 (__AARCH64_UINT64_C (0x0))); \
8540 __asm__ ("uqrshrn2 %0.16b, %1.8h, #%2" \
8543 : /* No clobbers */); \
8547 #define vqrshrn_high_n_u32(a, b, c) \
8550 uint32x4_t b_ = (b); \
8551 uint16x4_t a_ = (a); \
8552 uint16x8_t result = vcombine_u16 \
8554 (__AARCH64_UINT64_C (0x0))); \
8555 __asm__ ("uqrshrn2 %0.8h, %1.4s, #%2" \
8558 : /* No clobbers */); \
8562 #define vqrshrn_high_n_u64(a, b, c) \
8565 uint64x2_t b_ = (b); \
8566 uint32x2_t a_ = (a); \
8567 uint32x4_t result = vcombine_u32 \
8569 (__AARCH64_UINT64_C (0x0))); \
8570 __asm__ ("uqrshrn2 %0.4s, %1.2d, #%2" \
8573 : /* No clobbers */); \
8577 #define vqrshrun_high_n_s16(a, b, c) \
8580 int16x8_t b_ = (b); \
8581 uint8x8_t a_ = (a); \
8582 uint8x16_t result = vcombine_u8 \
8584 (__AARCH64_UINT64_C (0x0))); \
8585 __asm__ ("sqrshrun2 %0.16b, %1.8h, #%2" \
8588 : /* No clobbers */); \
8592 #define vqrshrun_high_n_s32(a, b, c) \
8595 int32x4_t b_ = (b); \
8596 uint16x4_t a_ = (a); \
8597 uint16x8_t result = vcombine_u16 \
8599 (__AARCH64_UINT64_C (0x0))); \
8600 __asm__ ("sqrshrun2 %0.8h, %1.4s, #%2" \
8603 : /* No clobbers */); \
8607 #define vqrshrun_high_n_s64(a, b, c) \
8610 int64x2_t b_ = (b); \
8611 uint32x2_t a_ = (a); \
8612 uint32x4_t result = vcombine_u32 \
8614 (__AARCH64_UINT64_C (0x0))); \
8615 __asm__ ("sqrshrun2 %0.4s, %1.2d, #%2" \
8618 : /* No clobbers */); \
8622 #define vqshrn_high_n_s16(a, b, c) \
8625 int16x8_t b_ = (b); \
8626 int8x8_t a_ = (a); \
8627 int8x16_t result = vcombine_s8 \
8629 (__AARCH64_UINT64_C (0x0))); \
8630 __asm__ ("sqshrn2 %0.16b, %1.8h, #%2" \
8633 : /* No clobbers */); \
8637 #define vqshrn_high_n_s32(a, b, c) \
8640 int32x4_t b_ = (b); \
8641 int16x4_t a_ = (a); \
8642 int16x8_t result = vcombine_s16 \
8644 (__AARCH64_UINT64_C (0x0))); \
8645 __asm__ ("sqshrn2 %0.8h, %1.4s, #%2" \
8648 : /* No clobbers */); \
8652 #define vqshrn_high_n_s64(a, b, c) \
8655 int64x2_t b_ = (b); \
8656 int32x2_t a_ = (a); \
8657 int32x4_t result = vcombine_s32 \
8659 (__AARCH64_UINT64_C (0x0))); \
8660 __asm__ ("sqshrn2 %0.4s, %1.2d, #%2" \
8663 : /* No clobbers */); \
8667 #define vqshrn_high_n_u16(a, b, c) \
8670 uint16x8_t b_ = (b); \
8671 uint8x8_t a_ = (a); \
8672 uint8x16_t result = vcombine_u8 \
8674 (__AARCH64_UINT64_C (0x0))); \
8675 __asm__ ("uqshrn2 %0.16b, %1.8h, #%2" \
8678 : /* No clobbers */); \
8682 #define vqshrn_high_n_u32(a, b, c) \
8685 uint32x4_t b_ = (b); \
8686 uint16x4_t a_ = (a); \
8687 uint16x8_t result = vcombine_u16 \
8689 (__AARCH64_UINT64_C (0x0))); \
8690 __asm__ ("uqshrn2 %0.8h, %1.4s, #%2" \
8693 : /* No clobbers */); \
8697 #define vqshrn_high_n_u64(a, b, c) \
8700 uint64x2_t b_ = (b); \
8701 uint32x2_t a_ = (a); \
8702 uint32x4_t result = vcombine_u32 \
8704 (__AARCH64_UINT64_C (0x0))); \
8705 __asm__ ("uqshrn2 %0.4s, %1.2d, #%2" \
8708 : /* No clobbers */); \
8712 #define vqshrun_high_n_s16(a, b, c) \
8715 int16x8_t b_ = (b); \
8716 uint8x8_t a_ = (a); \
8717 uint8x16_t result = vcombine_u8 \
8719 (__AARCH64_UINT64_C (0x0))); \
8720 __asm__ ("sqshrun2 %0.16b, %1.8h, #%2" \
8723 : /* No clobbers */); \
8727 #define vqshrun_high_n_s32(a, b, c) \
8730 int32x4_t b_ = (b); \
8731 uint16x4_t a_ = (a); \
8732 uint16x8_t result = vcombine_u16 \
8734 (__AARCH64_UINT64_C (0x0))); \
8735 __asm__ ("sqshrun2 %0.8h, %1.4s, #%2" \
8738 : /* No clobbers */); \
8742 #define vqshrun_high_n_s64(a, b, c) \
8745 int64x2_t b_ = (b); \
8746 uint32x2_t a_ = (a); \
8747 uint32x4_t result = vcombine_u32 \
8749 (__AARCH64_UINT64_C (0x0))); \
8750 __asm__ ("sqshrun2 %0.4s, %1.2d, #%2" \
8753 : /* No clobbers */); \
8757 #define vrshrn_high_n_s16(a, b, c) \
8760 int16x8_t b_ = (b); \
8761 int8x8_t a_ = (a); \
8762 int8x16_t result = vcombine_s8 \
8764 (__AARCH64_UINT64_C (0x0))); \
8765 __asm__ ("rshrn2 %0.16b,%1.8h,#%2" \
8768 : /* No clobbers */); \
8772 #define vrshrn_high_n_s32(a, b, c) \
8775 int32x4_t b_ = (b); \
8776 int16x4_t a_ = (a); \
8777 int16x8_t result = vcombine_s16 \
8779 (__AARCH64_UINT64_C (0x0))); \
8780 __asm__ ("rshrn2 %0.8h,%1.4s,#%2" \
8783 : /* No clobbers */); \
8787 #define vrshrn_high_n_s64(a, b, c) \
8790 int64x2_t b_ = (b); \
8791 int32x2_t a_ = (a); \
8792 int32x4_t result = vcombine_s32 \
8794 (__AARCH64_UINT64_C (0x0))); \
8795 __asm__ ("rshrn2 %0.4s,%1.2d,#%2" \
8798 : /* No clobbers */); \
8802 #define vrshrn_high_n_u16(a, b, c) \
8805 uint16x8_t b_ = (b); \
8806 uint8x8_t a_ = (a); \
8807 uint8x16_t result = vcombine_u8 \
8809 (__AARCH64_UINT64_C (0x0))); \
8810 __asm__ ("rshrn2 %0.16b,%1.8h,#%2" \
8813 : /* No clobbers */); \
8817 #define vrshrn_high_n_u32(a, b, c) \
8820 uint32x4_t b_ = (b); \
8821 uint16x4_t a_ = (a); \
8822 uint16x8_t result = vcombine_u16 \
8824 (__AARCH64_UINT64_C (0x0))); \
8825 __asm__ ("rshrn2 %0.8h,%1.4s,#%2" \
8828 : /* No clobbers */); \
8832 #define vrshrn_high_n_u64(a, b, c) \
8835 uint64x2_t b_ = (b); \
8836 uint32x2_t a_ = (a); \
8837 uint32x4_t result = vcombine_u32 \
8839 (__AARCH64_UINT64_C (0x0))); \
8840 __asm__ ("rshrn2 %0.4s,%1.2d,#%2" \
8843 : /* No clobbers */); \
8847 #define vrshrn_n_s16(a, b) \
8850 int16x8_t a_ = (a); \
8852 __asm__ ("rshrn %0.8b,%1.8h,%2" \
8855 : /* No clobbers */); \
8859 #define vrshrn_n_s32(a, b) \
8862 int32x4_t a_ = (a); \
8864 __asm__ ("rshrn %0.4h,%1.4s,%2" \
8867 : /* No clobbers */); \
8871 #define vrshrn_n_s64(a, b) \
8874 int64x2_t a_ = (a); \
8876 __asm__ ("rshrn %0.2s,%1.2d,%2" \
8879 : /* No clobbers */); \
8883 #define vrshrn_n_u16(a, b) \
8886 uint16x8_t a_ = (a); \
8888 __asm__ ("rshrn %0.8b,%1.8h,%2" \
8891 : /* No clobbers */); \
8895 #define vrshrn_n_u32(a, b) \
8898 uint32x4_t a_ = (a); \
8899 uint16x4_t result; \
8900 __asm__ ("rshrn %0.4h,%1.4s,%2" \
8903 : /* No clobbers */); \
8907 #define vrshrn_n_u64(a, b) \
8910 uint64x2_t a_ = (a); \
8911 uint32x2_t result; \
8912 __asm__ ("rshrn %0.2s,%1.2d,%2" \
8915 : /* No clobbers */); \
8919 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
8920 vrsqrte_u32 (uint32x2_t a
)
8923 __asm__ ("ursqrte %0.2s,%1.2s"
8926 : /* No clobbers */);
8930 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
8931 vrsqrteq_u32 (uint32x4_t a
)
8934 __asm__ ("ursqrte %0.4s,%1.4s"
8937 : /* No clobbers */);
8941 #define vshrn_high_n_s16(a, b, c) \
8944 int16x8_t b_ = (b); \
8945 int8x8_t a_ = (a); \
8946 int8x16_t result = vcombine_s8 \
8948 (__AARCH64_UINT64_C (0x0))); \
8949 __asm__ ("shrn2 %0.16b,%1.8h,#%2" \
8952 : /* No clobbers */); \
8956 #define vshrn_high_n_s32(a, b, c) \
8959 int32x4_t b_ = (b); \
8960 int16x4_t a_ = (a); \
8961 int16x8_t result = vcombine_s16 \
8963 (__AARCH64_UINT64_C (0x0))); \
8964 __asm__ ("shrn2 %0.8h,%1.4s,#%2" \
8967 : /* No clobbers */); \
8971 #define vshrn_high_n_s64(a, b, c) \
8974 int64x2_t b_ = (b); \
8975 int32x2_t a_ = (a); \
8976 int32x4_t result = vcombine_s32 \
8978 (__AARCH64_UINT64_C (0x0))); \
8979 __asm__ ("shrn2 %0.4s,%1.2d,#%2" \
8982 : /* No clobbers */); \
8986 #define vshrn_high_n_u16(a, b, c) \
8989 uint16x8_t b_ = (b); \
8990 uint8x8_t a_ = (a); \
8991 uint8x16_t result = vcombine_u8 \
8993 (__AARCH64_UINT64_C (0x0))); \
8994 __asm__ ("shrn2 %0.16b,%1.8h,#%2" \
8997 : /* No clobbers */); \
9001 #define vshrn_high_n_u32(a, b, c) \
9004 uint32x4_t b_ = (b); \
9005 uint16x4_t a_ = (a); \
9006 uint16x8_t result = vcombine_u16 \
9008 (__AARCH64_UINT64_C (0x0))); \
9009 __asm__ ("shrn2 %0.8h,%1.4s,#%2" \
9012 : /* No clobbers */); \
9016 #define vshrn_high_n_u64(a, b, c) \
9019 uint64x2_t b_ = (b); \
9020 uint32x2_t a_ = (a); \
9021 uint32x4_t result = vcombine_u32 \
9023 (__AARCH64_UINT64_C (0x0))); \
9024 __asm__ ("shrn2 %0.4s,%1.2d,#%2" \
9027 : /* No clobbers */); \
9031 #define vshrn_n_s16(a, b) \
9034 int16x8_t a_ = (a); \
9036 __asm__ ("shrn %0.8b,%1.8h,%2" \
9039 : /* No clobbers */); \
9043 #define vshrn_n_s32(a, b) \
9046 int32x4_t a_ = (a); \
9048 __asm__ ("shrn %0.4h,%1.4s,%2" \
9051 : /* No clobbers */); \
9055 #define vshrn_n_s64(a, b) \
9058 int64x2_t a_ = (a); \
9060 __asm__ ("shrn %0.2s,%1.2d,%2" \
9063 : /* No clobbers */); \
9067 #define vshrn_n_u16(a, b) \
9070 uint16x8_t a_ = (a); \
9072 __asm__ ("shrn %0.8b,%1.8h,%2" \
9075 : /* No clobbers */); \
9079 #define vshrn_n_u32(a, b) \
9082 uint32x4_t a_ = (a); \
9083 uint16x4_t result; \
9084 __asm__ ("shrn %0.4h,%1.4s,%2" \
9087 : /* No clobbers */); \
9091 #define vshrn_n_u64(a, b) \
9094 uint64x2_t a_ = (a); \
9095 uint32x2_t result; \
9096 __asm__ ("shrn %0.2s,%1.2d,%2" \
9099 : /* No clobbers */); \
9103 #define vsli_n_p8(a, b, c) \
9106 poly8x8_t b_ = (b); \
9107 poly8x8_t a_ = (a); \
9109 __asm__ ("sli %0.8b,%2.8b,%3" \
9111 : "0"(a_), "w"(b_), "i"(c) \
9112 : /* No clobbers */); \
9116 #define vsli_n_p16(a, b, c) \
9119 poly16x4_t b_ = (b); \
9120 poly16x4_t a_ = (a); \
9121 poly16x4_t result; \
9122 __asm__ ("sli %0.4h,%2.4h,%3" \
9124 : "0"(a_), "w"(b_), "i"(c) \
9125 : /* No clobbers */); \
9129 #define vsliq_n_p8(a, b, c) \
9132 poly8x16_t b_ = (b); \
9133 poly8x16_t a_ = (a); \
9134 poly8x16_t result; \
9135 __asm__ ("sli %0.16b,%2.16b,%3" \
9137 : "0"(a_), "w"(b_), "i"(c) \
9138 : /* No clobbers */); \
9142 #define vsliq_n_p16(a, b, c) \
9145 poly16x8_t b_ = (b); \
9146 poly16x8_t a_ = (a); \
9147 poly16x8_t result; \
9148 __asm__ ("sli %0.8h,%2.8h,%3" \
9150 : "0"(a_), "w"(b_), "i"(c) \
9151 : /* No clobbers */); \
9155 #define vsri_n_p8(a, b, c) \
9158 poly8x8_t b_ = (b); \
9159 poly8x8_t a_ = (a); \
9161 __asm__ ("sri %0.8b,%2.8b,%3" \
9163 : "0"(a_), "w"(b_), "i"(c) \
9164 : /* No clobbers */); \
9168 #define vsri_n_p16(a, b, c) \
9171 poly16x4_t b_ = (b); \
9172 poly16x4_t a_ = (a); \
9173 poly16x4_t result; \
9174 __asm__ ("sri %0.4h,%2.4h,%3" \
9176 : "0"(a_), "w"(b_), "i"(c) \
9177 : /* No clobbers */); \
9181 #define vsriq_n_p8(a, b, c) \
9184 poly8x16_t b_ = (b); \
9185 poly8x16_t a_ = (a); \
9186 poly8x16_t result; \
9187 __asm__ ("sri %0.16b,%2.16b,%3" \
9189 : "0"(a_), "w"(b_), "i"(c) \
9190 : /* No clobbers */); \
9194 #define vsriq_n_p16(a, b, c) \
9197 poly16x8_t b_ = (b); \
9198 poly16x8_t a_ = (a); \
9199 poly16x8_t result; \
9200 __asm__ ("sri %0.8h,%2.8h,%3" \
9202 : "0"(a_), "w"(b_), "i"(c) \
9203 : /* No clobbers */); \
9207 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
9208 vtst_p8 (poly8x8_t a
, poly8x8_t b
)
9211 __asm__ ("cmtst %0.8b, %1.8b, %2.8b"
9214 : /* No clobbers */);
9218 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
9219 vtst_p16 (poly16x4_t a
, poly16x4_t b
)
9222 __asm__ ("cmtst %0.4h, %1.4h, %2.4h"
9225 : /* No clobbers */);
9229 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
9230 vtstq_p8 (poly8x16_t a
, poly8x16_t b
)
9233 __asm__ ("cmtst %0.16b, %1.16b, %2.16b"
9236 : /* No clobbers */);
9240 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
9241 vtstq_p16 (poly16x8_t a
, poly16x8_t b
)
9244 __asm__ ("cmtst %0.8h, %1.8h, %2.8h"
9247 : /* No clobbers */);
9251 /* End of temporary inline asm implementations. */
9253 /* Start of temporary inline asm for vldn, vstn and friends. */
9255 /* Create struct element types for duplicating loads.
9257 Create 2 element structures of:
9259 +------+----+----+----+----+
9260 | | 8 | 16 | 32 | 64 |
9261 +------+----+----+----+----+
9262 |int | Y | Y | N | N |
9263 +------+----+----+----+----+
9264 |uint | Y | Y | N | N |
9265 +------+----+----+----+----+
9266 |float | - | Y | N | N |
9267 +------+----+----+----+----+
9268 |poly | Y | Y | - | - |
9269 +------+----+----+----+----+
9271 Create 3 element structures of:
9273 +------+----+----+----+----+
9274 | | 8 | 16 | 32 | 64 |
9275 +------+----+----+----+----+
9276 |int | Y | Y | Y | Y |
9277 +------+----+----+----+----+
9278 |uint | Y | Y | Y | Y |
9279 +------+----+----+----+----+
9280 |float | - | Y | Y | Y |
9281 +------+----+----+----+----+
9282 |poly | Y | Y | - | - |
9283 +------+----+----+----+----+
9285 Create 4 element structures of:
9287 +------+----+----+----+----+
9288 | | 8 | 16 | 32 | 64 |
9289 +------+----+----+----+----+
9290 |int | Y | N | N | Y |
9291 +------+----+----+----+----+
9292 |uint | Y | N | N | Y |
9293 +------+----+----+----+----+
9294 |float | - | N | N | Y |
9295 +------+----+----+----+----+
9296 |poly | Y | N | - | - |
9297 +------+----+----+----+----+
9299 This is required for casting memory reference. */
9300 #define __STRUCTN(t, sz, nelem) \
9301 typedef struct t ## sz ## x ## nelem ## _t { \
9302 t ## sz ## _t val[nelem]; \
9303 } t ## sz ## x ## nelem ## _t;
9305 /* 2-element structs. */
9306 __STRUCTN (int, 8, 2)
9307 __STRUCTN (int, 16, 2)
9308 __STRUCTN (uint
, 8, 2)
9309 __STRUCTN (uint
, 16, 2)
9310 __STRUCTN (float, 16, 2)
9311 __STRUCTN (poly
, 8, 2)
9312 __STRUCTN (poly
, 16, 2)
9313 /* 3-element structs. */
9314 __STRUCTN (int, 8, 3)
9315 __STRUCTN (int, 16, 3)
9316 __STRUCTN (int, 32, 3)
9317 __STRUCTN (int, 64, 3)
9318 __STRUCTN (uint
, 8, 3)
9319 __STRUCTN (uint
, 16, 3)
9320 __STRUCTN (uint
, 32, 3)
9321 __STRUCTN (uint
, 64, 3)
9322 __STRUCTN (float, 16, 3)
9323 __STRUCTN (float, 32, 3)
9324 __STRUCTN (float, 64, 3)
9325 __STRUCTN (poly
, 8, 3)
9326 __STRUCTN (poly
, 16, 3)
9327 /* 4-element structs. */
9328 __STRUCTN (int, 8, 4)
9329 __STRUCTN (int, 64, 4)
9330 __STRUCTN (uint
, 8, 4)
9331 __STRUCTN (uint
, 64, 4)
9332 __STRUCTN (poly
, 8, 4)
9333 __STRUCTN (float, 64, 4)
9337 #define __ST2_LANE_FUNC(intype, largetype, ptrtype, mode, \
9338 qmode, ptr_mode, funcsuffix, signedtype) \
9339 __extension__ static __inline void \
9340 __attribute__ ((__always_inline__)) \
9341 vst2_lane_ ## funcsuffix (ptrtype *__ptr, \
9342 intype __b, const int __c) \
9344 __builtin_aarch64_simd_oi __o; \
9347 = vcombine_##funcsuffix (__b.val[0], \
9348 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9350 = vcombine_##funcsuffix (__b.val[1], \
9351 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9352 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
9353 (signedtype) __temp.val[0], 0); \
9354 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
9355 (signedtype) __temp.val[1], 1); \
9356 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
9360 __ST2_LANE_FUNC (float16x4x2_t
, float16x8x2_t
, float16_t
, v4hf
, v8hf
, hf
, f16
,
9362 __ST2_LANE_FUNC (float32x2x2_t
, float32x4x2_t
, float32_t
, v2sf
, v4sf
, sf
, f32
,
9364 __ST2_LANE_FUNC (float64x1x2_t
, float64x2x2_t
, float64_t
, df
, v2df
, df
, f64
,
9366 __ST2_LANE_FUNC (poly8x8x2_t
, poly8x16x2_t
, poly8_t
, v8qi
, v16qi
, qi
, p8
,
9368 __ST2_LANE_FUNC (poly16x4x2_t
, poly16x8x2_t
, poly16_t
, v4hi
, v8hi
, hi
, p16
,
9370 __ST2_LANE_FUNC (int8x8x2_t
, int8x16x2_t
, int8_t, v8qi
, v16qi
, qi
, s8
,
9372 __ST2_LANE_FUNC (int16x4x2_t
, int16x8x2_t
, int16_t, v4hi
, v8hi
, hi
, s16
,
9374 __ST2_LANE_FUNC (int32x2x2_t
, int32x4x2_t
, int32_t, v2si
, v4si
, si
, s32
,
9376 __ST2_LANE_FUNC (int64x1x2_t
, int64x2x2_t
, int64_t, di
, v2di
, di
, s64
,
9378 __ST2_LANE_FUNC (uint8x8x2_t
, uint8x16x2_t
, uint8_t, v8qi
, v16qi
, qi
, u8
,
9380 __ST2_LANE_FUNC (uint16x4x2_t
, uint16x8x2_t
, uint16_t, v4hi
, v8hi
, hi
, u16
,
9382 __ST2_LANE_FUNC (uint32x2x2_t
, uint32x4x2_t
, uint32_t, v2si
, v4si
, si
, u32
,
9384 __ST2_LANE_FUNC (uint64x1x2_t
, uint64x2x2_t
, uint64_t, di
, v2di
, di
, u64
,
9387 #undef __ST2_LANE_FUNC
9388 #define __ST2_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
9389 __extension__ static __inline void \
9390 __attribute__ ((__always_inline__)) \
9391 vst2q_lane_ ## funcsuffix (ptrtype *__ptr, \
9392 intype __b, const int __c) \
9394 union { intype __i; \
9395 __builtin_aarch64_simd_oi __o; } __temp = { __b }; \
9396 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
9397 __ptr, __temp.__o, __c); \
9400 __ST2_LANE_FUNC (float16x8x2_t
, float16_t
, v8hf
, hf
, f16
)
9401 __ST2_LANE_FUNC (float32x4x2_t
, float32_t
, v4sf
, sf
, f32
)
9402 __ST2_LANE_FUNC (float64x2x2_t
, float64_t
, v2df
, df
, f64
)
9403 __ST2_LANE_FUNC (poly8x16x2_t
, poly8_t
, v16qi
, qi
, p8
)
9404 __ST2_LANE_FUNC (poly16x8x2_t
, poly16_t
, v8hi
, hi
, p16
)
9405 __ST2_LANE_FUNC (int8x16x2_t
, int8_t, v16qi
, qi
, s8
)
9406 __ST2_LANE_FUNC (int16x8x2_t
, int16_t, v8hi
, hi
, s16
)
9407 __ST2_LANE_FUNC (int32x4x2_t
, int32_t, v4si
, si
, s32
)
9408 __ST2_LANE_FUNC (int64x2x2_t
, int64_t, v2di
, di
, s64
)
9409 __ST2_LANE_FUNC (uint8x16x2_t
, uint8_t, v16qi
, qi
, u8
)
9410 __ST2_LANE_FUNC (uint16x8x2_t
, uint16_t, v8hi
, hi
, u16
)
9411 __ST2_LANE_FUNC (uint32x4x2_t
, uint32_t, v4si
, si
, u32
)
9412 __ST2_LANE_FUNC (uint64x2x2_t
, uint64_t, v2di
, di
, u64
)
9414 #define __ST3_LANE_FUNC(intype, largetype, ptrtype, mode, \
9415 qmode, ptr_mode, funcsuffix, signedtype) \
9416 __extension__ static __inline void \
9417 __attribute__ ((__always_inline__)) \
9418 vst3_lane_ ## funcsuffix (ptrtype *__ptr, \
9419 intype __b, const int __c) \
9421 __builtin_aarch64_simd_ci __o; \
9424 = vcombine_##funcsuffix (__b.val[0], \
9425 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9427 = vcombine_##funcsuffix (__b.val[1], \
9428 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9430 = vcombine_##funcsuffix (__b.val[2], \
9431 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9432 __o = __builtin_aarch64_set_qregci##qmode (__o, \
9433 (signedtype) __temp.val[0], 0); \
9434 __o = __builtin_aarch64_set_qregci##qmode (__o, \
9435 (signedtype) __temp.val[1], 1); \
9436 __o = __builtin_aarch64_set_qregci##qmode (__o, \
9437 (signedtype) __temp.val[2], 2); \
9438 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
9442 __ST3_LANE_FUNC (float16x4x3_t
, float16x8x3_t
, float16_t
, v4hf
, v8hf
, hf
, f16
,
9444 __ST3_LANE_FUNC (float32x2x3_t
, float32x4x3_t
, float32_t
, v2sf
, v4sf
, sf
, f32
,
9446 __ST3_LANE_FUNC (float64x1x3_t
, float64x2x3_t
, float64_t
, df
, v2df
, df
, f64
,
9448 __ST3_LANE_FUNC (poly8x8x3_t
, poly8x16x3_t
, poly8_t
, v8qi
, v16qi
, qi
, p8
,
9450 __ST3_LANE_FUNC (poly16x4x3_t
, poly16x8x3_t
, poly16_t
, v4hi
, v8hi
, hi
, p16
,
9452 __ST3_LANE_FUNC (int8x8x3_t
, int8x16x3_t
, int8_t, v8qi
, v16qi
, qi
, s8
,
9454 __ST3_LANE_FUNC (int16x4x3_t
, int16x8x3_t
, int16_t, v4hi
, v8hi
, hi
, s16
,
9456 __ST3_LANE_FUNC (int32x2x3_t
, int32x4x3_t
, int32_t, v2si
, v4si
, si
, s32
,
9458 __ST3_LANE_FUNC (int64x1x3_t
, int64x2x3_t
, int64_t, di
, v2di
, di
, s64
,
9460 __ST3_LANE_FUNC (uint8x8x3_t
, uint8x16x3_t
, uint8_t, v8qi
, v16qi
, qi
, u8
,
9462 __ST3_LANE_FUNC (uint16x4x3_t
, uint16x8x3_t
, uint16_t, v4hi
, v8hi
, hi
, u16
,
9464 __ST3_LANE_FUNC (uint32x2x3_t
, uint32x4x3_t
, uint32_t, v2si
, v4si
, si
, u32
,
9466 __ST3_LANE_FUNC (uint64x1x3_t
, uint64x2x3_t
, uint64_t, di
, v2di
, di
, u64
,
9469 #undef __ST3_LANE_FUNC
9470 #define __ST3_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
9471 __extension__ static __inline void \
9472 __attribute__ ((__always_inline__)) \
9473 vst3q_lane_ ## funcsuffix (ptrtype *__ptr, \
9474 intype __b, const int __c) \
9476 union { intype __i; \
9477 __builtin_aarch64_simd_ci __o; } __temp = { __b }; \
9478 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
9479 __ptr, __temp.__o, __c); \
9482 __ST3_LANE_FUNC (float16x8x3_t
, float16_t
, v8hf
, hf
, f16
)
9483 __ST3_LANE_FUNC (float32x4x3_t
, float32_t
, v4sf
, sf
, f32
)
9484 __ST3_LANE_FUNC (float64x2x3_t
, float64_t
, v2df
, df
, f64
)
9485 __ST3_LANE_FUNC (poly8x16x3_t
, poly8_t
, v16qi
, qi
, p8
)
9486 __ST3_LANE_FUNC (poly16x8x3_t
, poly16_t
, v8hi
, hi
, p16
)
9487 __ST3_LANE_FUNC (int8x16x3_t
, int8_t, v16qi
, qi
, s8
)
9488 __ST3_LANE_FUNC (int16x8x3_t
, int16_t, v8hi
, hi
, s16
)
9489 __ST3_LANE_FUNC (int32x4x3_t
, int32_t, v4si
, si
, s32
)
9490 __ST3_LANE_FUNC (int64x2x3_t
, int64_t, v2di
, di
, s64
)
9491 __ST3_LANE_FUNC (uint8x16x3_t
, uint8_t, v16qi
, qi
, u8
)
9492 __ST3_LANE_FUNC (uint16x8x3_t
, uint16_t, v8hi
, hi
, u16
)
9493 __ST3_LANE_FUNC (uint32x4x3_t
, uint32_t, v4si
, si
, u32
)
9494 __ST3_LANE_FUNC (uint64x2x3_t
, uint64_t, v2di
, di
, u64
)
9496 #define __ST4_LANE_FUNC(intype, largetype, ptrtype, mode, \
9497 qmode, ptr_mode, funcsuffix, signedtype) \
9498 __extension__ static __inline void \
9499 __attribute__ ((__always_inline__)) \
9500 vst4_lane_ ## funcsuffix (ptrtype *__ptr, \
9501 intype __b, const int __c) \
9503 __builtin_aarch64_simd_xi __o; \
9506 = vcombine_##funcsuffix (__b.val[0], \
9507 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9509 = vcombine_##funcsuffix (__b.val[1], \
9510 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9512 = vcombine_##funcsuffix (__b.val[2], \
9513 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9515 = vcombine_##funcsuffix (__b.val[3], \
9516 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
9517 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
9518 (signedtype) __temp.val[0], 0); \
9519 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
9520 (signedtype) __temp.val[1], 1); \
9521 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
9522 (signedtype) __temp.val[2], 2); \
9523 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
9524 (signedtype) __temp.val[3], 3); \
9525 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
9529 __ST4_LANE_FUNC (float16x4x4_t
, float16x8x4_t
, float16_t
, v4hf
, v8hf
, hf
, f16
,
9531 __ST4_LANE_FUNC (float32x2x4_t
, float32x4x4_t
, float32_t
, v2sf
, v4sf
, sf
, f32
,
9533 __ST4_LANE_FUNC (float64x1x4_t
, float64x2x4_t
, float64_t
, df
, v2df
, df
, f64
,
9535 __ST4_LANE_FUNC (poly8x8x4_t
, poly8x16x4_t
, poly8_t
, v8qi
, v16qi
, qi
, p8
,
9537 __ST4_LANE_FUNC (poly16x4x4_t
, poly16x8x4_t
, poly16_t
, v4hi
, v8hi
, hi
, p16
,
9539 __ST4_LANE_FUNC (int8x8x4_t
, int8x16x4_t
, int8_t, v8qi
, v16qi
, qi
, s8
,
9541 __ST4_LANE_FUNC (int16x4x4_t
, int16x8x4_t
, int16_t, v4hi
, v8hi
, hi
, s16
,
9543 __ST4_LANE_FUNC (int32x2x4_t
, int32x4x4_t
, int32_t, v2si
, v4si
, si
, s32
,
9545 __ST4_LANE_FUNC (int64x1x4_t
, int64x2x4_t
, int64_t, di
, v2di
, di
, s64
,
9547 __ST4_LANE_FUNC (uint8x8x4_t
, uint8x16x4_t
, uint8_t, v8qi
, v16qi
, qi
, u8
,
9549 __ST4_LANE_FUNC (uint16x4x4_t
, uint16x8x4_t
, uint16_t, v4hi
, v8hi
, hi
, u16
,
9551 __ST4_LANE_FUNC (uint32x2x4_t
, uint32x4x4_t
, uint32_t, v2si
, v4si
, si
, u32
,
9553 __ST4_LANE_FUNC (uint64x1x4_t
, uint64x2x4_t
, uint64_t, di
, v2di
, di
, u64
,
9556 #undef __ST4_LANE_FUNC
9557 #define __ST4_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
9558 __extension__ static __inline void \
9559 __attribute__ ((__always_inline__)) \
9560 vst4q_lane_ ## funcsuffix (ptrtype *__ptr, \
9561 intype __b, const int __c) \
9563 union { intype __i; \
9564 __builtin_aarch64_simd_xi __o; } __temp = { __b }; \
9565 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
9566 __ptr, __temp.__o, __c); \
9569 __ST4_LANE_FUNC (float16x8x4_t
, float16_t
, v8hf
, hf
, f16
)
9570 __ST4_LANE_FUNC (float32x4x4_t
, float32_t
, v4sf
, sf
, f32
)
9571 __ST4_LANE_FUNC (float64x2x4_t
, float64_t
, v2df
, df
, f64
)
9572 __ST4_LANE_FUNC (poly8x16x4_t
, poly8_t
, v16qi
, qi
, p8
)
9573 __ST4_LANE_FUNC (poly16x8x4_t
, poly16_t
, v8hi
, hi
, p16
)
9574 __ST4_LANE_FUNC (int8x16x4_t
, int8_t, v16qi
, qi
, s8
)
9575 __ST4_LANE_FUNC (int16x8x4_t
, int16_t, v8hi
, hi
, s16
)
9576 __ST4_LANE_FUNC (int32x4x4_t
, int32_t, v4si
, si
, s32
)
9577 __ST4_LANE_FUNC (int64x2x4_t
, int64_t, v2di
, di
, s64
)
9578 __ST4_LANE_FUNC (uint8x16x4_t
, uint8_t, v16qi
, qi
, u8
)
9579 __ST4_LANE_FUNC (uint16x8x4_t
, uint16_t, v8hi
, hi
, u16
)
9580 __ST4_LANE_FUNC (uint32x4x4_t
, uint32_t, v4si
, si
, u32
)
9581 __ST4_LANE_FUNC (uint64x2x4_t
, uint64_t, v2di
, di
, u64
)
9583 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
9584 vaddlv_s32 (int32x2_t a
)
9587 __asm__ ("saddlp %0.1d, %1.2s" : "=w"(result
) : "w"(a
) : );
9591 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
9592 vaddlv_u32 (uint32x2_t a
)
9595 __asm__ ("uaddlp %0.1d, %1.2s" : "=w"(result
) : "w"(a
) : );
9599 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
9600 vqdmulh_laneq_s16 (int16x4_t __a
, int16x8_t __b
, const int __c
)
9602 return __builtin_aarch64_sqdmulh_laneqv4hi (__a
, __b
, __c
);
9605 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
9606 vqdmulh_laneq_s32 (int32x2_t __a
, int32x4_t __b
, const int __c
)
9608 return __builtin_aarch64_sqdmulh_laneqv2si (__a
, __b
, __c
);
9611 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
9612 vqdmulhq_laneq_s16 (int16x8_t __a
, int16x8_t __b
, const int __c
)
9614 return __builtin_aarch64_sqdmulh_laneqv8hi (__a
, __b
, __c
);
9617 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
9618 vqdmulhq_laneq_s32 (int32x4_t __a
, int32x4_t __b
, const int __c
)
9620 return __builtin_aarch64_sqdmulh_laneqv4si (__a
, __b
, __c
);
9623 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
9624 vqrdmulh_laneq_s16 (int16x4_t __a
, int16x8_t __b
, const int __c
)
9626 return __builtin_aarch64_sqrdmulh_laneqv4hi (__a
, __b
, __c
);
9629 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
9630 vqrdmulh_laneq_s32 (int32x2_t __a
, int32x4_t __b
, const int __c
)
9632 return __builtin_aarch64_sqrdmulh_laneqv2si (__a
, __b
, __c
);
9635 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
9636 vqrdmulhq_laneq_s16 (int16x8_t __a
, int16x8_t __b
, const int __c
)
9638 return __builtin_aarch64_sqrdmulh_laneqv8hi (__a
, __b
, __c
);
9641 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
9642 vqrdmulhq_laneq_s32 (int32x4_t __a
, int32x4_t __b
, const int __c
)
9644 return __builtin_aarch64_sqrdmulh_laneqv4si (__a
, __b
, __c
);
9647 /* Table intrinsics. */
9649 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
9650 vqtbl1_p8 (poly8x16_t a
, uint8x8_t b
)
9653 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9656 : /* No clobbers */);
9660 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
9661 vqtbl1_s8 (int8x16_t a
, uint8x8_t b
)
9664 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9667 : /* No clobbers */);
9671 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
9672 vqtbl1_u8 (uint8x16_t a
, uint8x8_t b
)
9675 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9678 : /* No clobbers */);
9682 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
9683 vqtbl1q_p8 (poly8x16_t a
, uint8x16_t b
)
9686 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
9689 : /* No clobbers */);
9693 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
9694 vqtbl1q_s8 (int8x16_t a
, uint8x16_t b
)
9697 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
9700 : /* No clobbers */);
9704 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
9705 vqtbl1q_u8 (uint8x16_t a
, uint8x16_t b
)
9708 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
9711 : /* No clobbers */);
9715 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
9716 vqtbx1_s8 (int8x8_t r
, int8x16_t tab
, uint8x8_t idx
)
9718 int8x8_t result
= r
;
9719 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
9721 : "w"(tab
), "w"(idx
)
9722 : /* No clobbers */);
9726 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
9727 vqtbx1_u8 (uint8x8_t r
, uint8x16_t tab
, uint8x8_t idx
)
9729 uint8x8_t result
= r
;
9730 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
9732 : "w"(tab
), "w"(idx
)
9733 : /* No clobbers */);
9737 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
9738 vqtbx1_p8 (poly8x8_t r
, poly8x16_t tab
, uint8x8_t idx
)
9740 poly8x8_t result
= r
;
9741 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
9743 : "w"(tab
), "w"(idx
)
9744 : /* No clobbers */);
9748 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
9749 vqtbx1q_s8 (int8x16_t r
, int8x16_t tab
, uint8x16_t idx
)
9751 int8x16_t result
= r
;
9752 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
9754 : "w"(tab
), "w"(idx
)
9755 : /* No clobbers */);
9759 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
9760 vqtbx1q_u8 (uint8x16_t r
, uint8x16_t tab
, uint8x16_t idx
)
9762 uint8x16_t result
= r
;
9763 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
9765 : "w"(tab
), "w"(idx
)
9766 : /* No clobbers */);
9770 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
9771 vqtbx1q_p8 (poly8x16_t r
, poly8x16_t tab
, uint8x16_t idx
)
9773 poly8x16_t result
= r
;
9774 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
9776 : "w"(tab
), "w"(idx
)
9777 : /* No clobbers */);
9781 /* V7 legacy table intrinsics. */
9783 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
9784 vtbl1_s8 (int8x8_t tab
, int8x8_t idx
)
9787 int8x16_t temp
= vcombine_s8 (tab
, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9788 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9790 : "w"(temp
), "w"(idx
)
9791 : /* No clobbers */);
9795 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
9796 vtbl1_u8 (uint8x8_t tab
, uint8x8_t idx
)
9799 uint8x16_t temp
= vcombine_u8 (tab
, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9800 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9802 : "w"(temp
), "w"(idx
)
9803 : /* No clobbers */);
9807 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
9808 vtbl1_p8 (poly8x8_t tab
, uint8x8_t idx
)
9811 poly8x16_t temp
= vcombine_p8 (tab
, vcreate_p8 (__AARCH64_UINT64_C (0x0)));
9812 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9814 : "w"(temp
), "w"(idx
)
9815 : /* No clobbers */);
9819 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
9820 vtbl2_s8 (int8x8x2_t tab
, int8x8_t idx
)
9823 int8x16_t temp
= vcombine_s8 (tab
.val
[0], tab
.val
[1]);
9824 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9826 : "w"(temp
), "w"(idx
)
9827 : /* No clobbers */);
9831 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
9832 vtbl2_u8 (uint8x8x2_t tab
, uint8x8_t idx
)
9835 uint8x16_t temp
= vcombine_u8 (tab
.val
[0], tab
.val
[1]);
9836 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9838 : "w"(temp
), "w"(idx
)
9839 : /* No clobbers */);
9843 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
9844 vtbl2_p8 (poly8x8x2_t tab
, uint8x8_t idx
)
9847 poly8x16_t temp
= vcombine_p8 (tab
.val
[0], tab
.val
[1]);
9848 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
9850 : "w"(temp
), "w"(idx
)
9851 : /* No clobbers */);
9855 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
9856 vtbl3_s8 (int8x8x3_t tab
, int8x8_t idx
)
9860 __builtin_aarch64_simd_oi __o
;
9861 temp
.val
[0] = vcombine_s8 (tab
.val
[0], tab
.val
[1]);
9862 temp
.val
[1] = vcombine_s8 (tab
.val
[2], vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9863 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9864 (int8x16_t
) temp
.val
[0], 0);
9865 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9866 (int8x16_t
) temp
.val
[1], 1);
9867 result
= __builtin_aarch64_tbl3v8qi (__o
, idx
);
9871 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
9872 vtbl3_u8 (uint8x8x3_t tab
, uint8x8_t idx
)
9876 __builtin_aarch64_simd_oi __o
;
9877 temp
.val
[0] = vcombine_u8 (tab
.val
[0], tab
.val
[1]);
9878 temp
.val
[1] = vcombine_u8 (tab
.val
[2], vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9879 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9880 (int8x16_t
) temp
.val
[0], 0);
9881 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9882 (int8x16_t
) temp
.val
[1], 1);
9883 result
= (uint8x8_t
)__builtin_aarch64_tbl3v8qi (__o
, (int8x8_t
)idx
);
9887 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
9888 vtbl3_p8 (poly8x8x3_t tab
, uint8x8_t idx
)
9892 __builtin_aarch64_simd_oi __o
;
9893 temp
.val
[0] = vcombine_p8 (tab
.val
[0], tab
.val
[1]);
9894 temp
.val
[1] = vcombine_p8 (tab
.val
[2], vcreate_p8 (__AARCH64_UINT64_C (0x0)));
9895 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9896 (int8x16_t
) temp
.val
[0], 0);
9897 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9898 (int8x16_t
) temp
.val
[1], 1);
9899 result
= (poly8x8_t
)__builtin_aarch64_tbl3v8qi (__o
, (int8x8_t
)idx
);
9903 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
9904 vtbl4_s8 (int8x8x4_t tab
, int8x8_t idx
)
9908 __builtin_aarch64_simd_oi __o
;
9909 temp
.val
[0] = vcombine_s8 (tab
.val
[0], tab
.val
[1]);
9910 temp
.val
[1] = vcombine_s8 (tab
.val
[2], tab
.val
[3]);
9911 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9912 (int8x16_t
) temp
.val
[0], 0);
9913 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9914 (int8x16_t
) temp
.val
[1], 1);
9915 result
= __builtin_aarch64_tbl3v8qi (__o
, idx
);
9919 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
9920 vtbl4_u8 (uint8x8x4_t tab
, uint8x8_t idx
)
9924 __builtin_aarch64_simd_oi __o
;
9925 temp
.val
[0] = vcombine_u8 (tab
.val
[0], tab
.val
[1]);
9926 temp
.val
[1] = vcombine_u8 (tab
.val
[2], tab
.val
[3]);
9927 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9928 (int8x16_t
) temp
.val
[0], 0);
9929 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9930 (int8x16_t
) temp
.val
[1], 1);
9931 result
= (uint8x8_t
)__builtin_aarch64_tbl3v8qi (__o
, (int8x8_t
)idx
);
9935 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
9936 vtbl4_p8 (poly8x8x4_t tab
, uint8x8_t idx
)
9940 __builtin_aarch64_simd_oi __o
;
9941 temp
.val
[0] = vcombine_p8 (tab
.val
[0], tab
.val
[1]);
9942 temp
.val
[1] = vcombine_p8 (tab
.val
[2], tab
.val
[3]);
9943 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9944 (int8x16_t
) temp
.val
[0], 0);
9945 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
9946 (int8x16_t
) temp
.val
[1], 1);
9947 result
= (poly8x8_t
)__builtin_aarch64_tbl3v8qi (__o
, (int8x8_t
)idx
);
9951 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
9952 vtbx2_s8 (int8x8_t r
, int8x8x2_t tab
, int8x8_t idx
)
9954 int8x8_t result
= r
;
9955 int8x16_t temp
= vcombine_s8 (tab
.val
[0], tab
.val
[1]);
9956 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
9958 : "w"(temp
), "w"(idx
)
9959 : /* No clobbers */);
9963 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
9964 vtbx2_u8 (uint8x8_t r
, uint8x8x2_t tab
, uint8x8_t idx
)
9966 uint8x8_t result
= r
;
9967 uint8x16_t temp
= vcombine_u8 (tab
.val
[0], tab
.val
[1]);
9968 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
9970 : "w"(temp
), "w"(idx
)
9971 : /* No clobbers */);
9975 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
9976 vtbx2_p8 (poly8x8_t r
, poly8x8x2_t tab
, uint8x8_t idx
)
9978 poly8x8_t result
= r
;
9979 poly8x16_t temp
= vcombine_p8 (tab
.val
[0], tab
.val
[1]);
9980 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
9982 : "w"(temp
), "w"(idx
)
9983 : /* No clobbers */);
9987 /* End of temporary inline asm. */
9989 /* Start of optimal implementations in approved order. */
9993 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
9994 vabds_f32 (float32_t __a
, float32_t __b
)
9996 return __builtin_aarch64_fabdsf (__a
, __b
);
9999 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
10000 vabdd_f64 (float64_t __a
, float64_t __b
)
10002 return __builtin_aarch64_fabddf (__a
, __b
);
10005 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
10006 vabd_f32 (float32x2_t __a
, float32x2_t __b
)
10008 return __builtin_aarch64_fabdv2sf (__a
, __b
);
10011 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
10012 vabd_f64 (float64x1_t __a
, float64x1_t __b
)
10014 return (float64x1_t
) {vabdd_f64 (vget_lane_f64 (__a
, 0),
10015 vget_lane_f64 (__b
, 0))};
10018 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
10019 vabdq_f32 (float32x4_t __a
, float32x4_t __b
)
10021 return __builtin_aarch64_fabdv4sf (__a
, __b
);
10024 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
10025 vabdq_f64 (float64x2_t __a
, float64x2_t __b
)
10027 return __builtin_aarch64_fabdv2df (__a
, __b
);
10032 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
10033 vabs_f32 (float32x2_t __a
)
10035 return __builtin_aarch64_absv2sf (__a
);
10038 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
10039 vabs_f64 (float64x1_t __a
)
10041 return (float64x1_t
) {__builtin_fabs (__a
[0])};
10044 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
10045 vabs_s8 (int8x8_t __a
)
10047 return __builtin_aarch64_absv8qi (__a
);
10050 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
10051 vabs_s16 (int16x4_t __a
)
10053 return __builtin_aarch64_absv4hi (__a
);
10056 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
10057 vabs_s32 (int32x2_t __a
)
10059 return __builtin_aarch64_absv2si (__a
);
10062 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
10063 vabs_s64 (int64x1_t __a
)
10065 return (int64x1_t
) {__builtin_aarch64_absdi (__a
[0])};
10068 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
10069 vabsq_f32 (float32x4_t __a
)
10071 return __builtin_aarch64_absv4sf (__a
);
10074 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
10075 vabsq_f64 (float64x2_t __a
)
10077 return __builtin_aarch64_absv2df (__a
);
10080 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
10081 vabsq_s8 (int8x16_t __a
)
10083 return __builtin_aarch64_absv16qi (__a
);
10086 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
10087 vabsq_s16 (int16x8_t __a
)
10089 return __builtin_aarch64_absv8hi (__a
);
10092 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
10093 vabsq_s32 (int32x4_t __a
)
10095 return __builtin_aarch64_absv4si (__a
);
10098 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
10099 vabsq_s64 (int64x2_t __a
)
10101 return __builtin_aarch64_absv2di (__a
);
10106 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
10107 vaddd_s64 (int64_t __a
, int64_t __b
)
10112 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10113 vaddd_u64 (uint64_t __a
, uint64_t __b
)
10120 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
10121 vaddv_s8 (int8x8_t __a
)
10123 return __builtin_aarch64_reduc_plus_scal_v8qi (__a
);
10126 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
10127 vaddv_s16 (int16x4_t __a
)
10129 return __builtin_aarch64_reduc_plus_scal_v4hi (__a
);
10132 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
10133 vaddv_s32 (int32x2_t __a
)
10135 return __builtin_aarch64_reduc_plus_scal_v2si (__a
);
10138 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
10139 vaddv_u8 (uint8x8_t __a
)
10141 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v8qi ((int8x8_t
) __a
);
10144 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
10145 vaddv_u16 (uint16x4_t __a
)
10147 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v4hi ((int16x4_t
) __a
);
10150 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
10151 vaddv_u32 (uint32x2_t __a
)
10153 return (int32_t) __builtin_aarch64_reduc_plus_scal_v2si ((int32x2_t
) __a
);
10156 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
10157 vaddvq_s8 (int8x16_t __a
)
10159 return __builtin_aarch64_reduc_plus_scal_v16qi (__a
);
10162 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
10163 vaddvq_s16 (int16x8_t __a
)
10165 return __builtin_aarch64_reduc_plus_scal_v8hi (__a
);
10168 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
10169 vaddvq_s32 (int32x4_t __a
)
10171 return __builtin_aarch64_reduc_plus_scal_v4si (__a
);
10174 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
10175 vaddvq_s64 (int64x2_t __a
)
10177 return __builtin_aarch64_reduc_plus_scal_v2di (__a
);
10180 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
10181 vaddvq_u8 (uint8x16_t __a
)
10183 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v16qi ((int8x16_t
) __a
);
10186 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
10187 vaddvq_u16 (uint16x8_t __a
)
10189 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v8hi ((int16x8_t
) __a
);
10192 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
10193 vaddvq_u32 (uint32x4_t __a
)
10195 return (uint32_t) __builtin_aarch64_reduc_plus_scal_v4si ((int32x4_t
) __a
);
10198 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10199 vaddvq_u64 (uint64x2_t __a
)
10201 return (uint64_t) __builtin_aarch64_reduc_plus_scal_v2di ((int64x2_t
) __a
);
10204 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
10205 vaddv_f32 (float32x2_t __a
)
10207 return __builtin_aarch64_reduc_plus_scal_v2sf (__a
);
10210 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
10211 vaddvq_f32 (float32x4_t __a
)
10213 return __builtin_aarch64_reduc_plus_scal_v4sf (__a
);
10216 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
10217 vaddvq_f64 (float64x2_t __a
)
10219 return __builtin_aarch64_reduc_plus_scal_v2df (__a
);
10224 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
10225 vbsl_f16 (uint16x4_t __a
, float16x4_t __b
, float16x4_t __c
)
10227 return __builtin_aarch64_simd_bslv4hf_suss (__a
, __b
, __c
);
10230 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
10231 vbsl_f32 (uint32x2_t __a
, float32x2_t __b
, float32x2_t __c
)
10233 return __builtin_aarch64_simd_bslv2sf_suss (__a
, __b
, __c
);
10236 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
10237 vbsl_f64 (uint64x1_t __a
, float64x1_t __b
, float64x1_t __c
)
10239 return (float64x1_t
)
10240 { __builtin_aarch64_simd_bsldf_suss (__a
[0], __b
[0], __c
[0]) };
10243 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
10244 vbsl_p8 (uint8x8_t __a
, poly8x8_t __b
, poly8x8_t __c
)
10246 return __builtin_aarch64_simd_bslv8qi_pupp (__a
, __b
, __c
);
10249 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
10250 vbsl_p16 (uint16x4_t __a
, poly16x4_t __b
, poly16x4_t __c
)
10252 return __builtin_aarch64_simd_bslv4hi_pupp (__a
, __b
, __c
);
10255 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
10256 vbsl_s8 (uint8x8_t __a
, int8x8_t __b
, int8x8_t __c
)
10258 return __builtin_aarch64_simd_bslv8qi_suss (__a
, __b
, __c
);
10261 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
10262 vbsl_s16 (uint16x4_t __a
, int16x4_t __b
, int16x4_t __c
)
10264 return __builtin_aarch64_simd_bslv4hi_suss (__a
, __b
, __c
);
10267 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
10268 vbsl_s32 (uint32x2_t __a
, int32x2_t __b
, int32x2_t __c
)
10270 return __builtin_aarch64_simd_bslv2si_suss (__a
, __b
, __c
);
10273 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
10274 vbsl_s64 (uint64x1_t __a
, int64x1_t __b
, int64x1_t __c
)
10277 {__builtin_aarch64_simd_bsldi_suss (__a
[0], __b
[0], __c
[0])};
10280 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
10281 vbsl_u8 (uint8x8_t __a
, uint8x8_t __b
, uint8x8_t __c
)
10283 return __builtin_aarch64_simd_bslv8qi_uuuu (__a
, __b
, __c
);
10286 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
10287 vbsl_u16 (uint16x4_t __a
, uint16x4_t __b
, uint16x4_t __c
)
10289 return __builtin_aarch64_simd_bslv4hi_uuuu (__a
, __b
, __c
);
10292 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10293 vbsl_u32 (uint32x2_t __a
, uint32x2_t __b
, uint32x2_t __c
)
10295 return __builtin_aarch64_simd_bslv2si_uuuu (__a
, __b
, __c
);
10298 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10299 vbsl_u64 (uint64x1_t __a
, uint64x1_t __b
, uint64x1_t __c
)
10301 return (uint64x1_t
)
10302 {__builtin_aarch64_simd_bsldi_uuuu (__a
[0], __b
[0], __c
[0])};
10305 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
10306 vbslq_f16 (uint16x8_t __a
, float16x8_t __b
, float16x8_t __c
)
10308 return __builtin_aarch64_simd_bslv8hf_suss (__a
, __b
, __c
);
10311 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
10312 vbslq_f32 (uint32x4_t __a
, float32x4_t __b
, float32x4_t __c
)
10314 return __builtin_aarch64_simd_bslv4sf_suss (__a
, __b
, __c
);
10317 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
10318 vbslq_f64 (uint64x2_t __a
, float64x2_t __b
, float64x2_t __c
)
10320 return __builtin_aarch64_simd_bslv2df_suss (__a
, __b
, __c
);
10323 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
10324 vbslq_p8 (uint8x16_t __a
, poly8x16_t __b
, poly8x16_t __c
)
10326 return __builtin_aarch64_simd_bslv16qi_pupp (__a
, __b
, __c
);
10329 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
10330 vbslq_p16 (uint16x8_t __a
, poly16x8_t __b
, poly16x8_t __c
)
10332 return __builtin_aarch64_simd_bslv8hi_pupp (__a
, __b
, __c
);
10335 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
10336 vbslq_s8 (uint8x16_t __a
, int8x16_t __b
, int8x16_t __c
)
10338 return __builtin_aarch64_simd_bslv16qi_suss (__a
, __b
, __c
);
10341 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
10342 vbslq_s16 (uint16x8_t __a
, int16x8_t __b
, int16x8_t __c
)
10344 return __builtin_aarch64_simd_bslv8hi_suss (__a
, __b
, __c
);
10347 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
10348 vbslq_s32 (uint32x4_t __a
, int32x4_t __b
, int32x4_t __c
)
10350 return __builtin_aarch64_simd_bslv4si_suss (__a
, __b
, __c
);
10353 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
10354 vbslq_s64 (uint64x2_t __a
, int64x2_t __b
, int64x2_t __c
)
10356 return __builtin_aarch64_simd_bslv2di_suss (__a
, __b
, __c
);
10359 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
10360 vbslq_u8 (uint8x16_t __a
, uint8x16_t __b
, uint8x16_t __c
)
10362 return __builtin_aarch64_simd_bslv16qi_uuuu (__a
, __b
, __c
);
10365 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
10366 vbslq_u16 (uint16x8_t __a
, uint16x8_t __b
, uint16x8_t __c
)
10368 return __builtin_aarch64_simd_bslv8hi_uuuu (__a
, __b
, __c
);
10371 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
10372 vbslq_u32 (uint32x4_t __a
, uint32x4_t __b
, uint32x4_t __c
)
10374 return __builtin_aarch64_simd_bslv4si_uuuu (__a
, __b
, __c
);
10377 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
10378 vbslq_u64 (uint64x2_t __a
, uint64x2_t __b
, uint64x2_t __c
)
10380 return __builtin_aarch64_simd_bslv2di_uuuu (__a
, __b
, __c
);
10383 /* ARMv8.1-A instrinsics. */
10384 #pragma GCC push_options
10385 #pragma GCC target ("arch=armv8.1-a")
10387 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
10388 vqrdmlah_s16 (int16x4_t __a
, int16x4_t __b
, int16x4_t __c
)
10390 return __builtin_aarch64_sqrdmlahv4hi (__a
, __b
, __c
);
10393 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
10394 vqrdmlah_s32 (int32x2_t __a
, int32x2_t __b
, int32x2_t __c
)
10396 return __builtin_aarch64_sqrdmlahv2si (__a
, __b
, __c
);
10399 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
10400 vqrdmlahq_s16 (int16x8_t __a
, int16x8_t __b
, int16x8_t __c
)
10402 return __builtin_aarch64_sqrdmlahv8hi (__a
, __b
, __c
);
10405 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
10406 vqrdmlahq_s32 (int32x4_t __a
, int32x4_t __b
, int32x4_t __c
)
10408 return __builtin_aarch64_sqrdmlahv4si (__a
, __b
, __c
);
10411 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
10412 vqrdmlsh_s16 (int16x4_t __a
, int16x4_t __b
, int16x4_t __c
)
10414 return __builtin_aarch64_sqrdmlshv4hi (__a
, __b
, __c
);
10417 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
10418 vqrdmlsh_s32 (int32x2_t __a
, int32x2_t __b
, int32x2_t __c
)
10420 return __builtin_aarch64_sqrdmlshv2si (__a
, __b
, __c
);
10423 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
10424 vqrdmlshq_s16 (int16x8_t __a
, int16x8_t __b
, int16x8_t __c
)
10426 return __builtin_aarch64_sqrdmlshv8hi (__a
, __b
, __c
);
10429 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
10430 vqrdmlshq_s32 (int32x4_t __a
, int32x4_t __b
, int32x4_t __c
)
10432 return __builtin_aarch64_sqrdmlshv4si (__a
, __b
, __c
);
10435 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
10436 vqrdmlah_laneq_s16 (int16x4_t __a
, int16x4_t __b
, int16x8_t __c
, const int __d
)
10438 return __builtin_aarch64_sqrdmlah_laneqv4hi (__a
, __b
, __c
, __d
);
10441 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
10442 vqrdmlah_laneq_s32 (int32x2_t __a
, int32x2_t __b
, int32x4_t __c
, const int __d
)
10444 return __builtin_aarch64_sqrdmlah_laneqv2si (__a
, __b
, __c
, __d
);
10447 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
10448 vqrdmlahq_laneq_s16 (int16x8_t __a
, int16x8_t __b
, int16x8_t __c
, const int __d
)
10450 return __builtin_aarch64_sqrdmlah_laneqv8hi (__a
, __b
, __c
, __d
);
10453 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
10454 vqrdmlahq_laneq_s32 (int32x4_t __a
, int32x4_t __b
, int32x4_t __c
, const int __d
)
10456 return __builtin_aarch64_sqrdmlah_laneqv4si (__a
, __b
, __c
, __d
);
10459 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
10460 vqrdmlsh_laneq_s16 (int16x4_t __a
, int16x4_t __b
, int16x8_t __c
, const int __d
)
10462 return __builtin_aarch64_sqrdmlsh_laneqv4hi (__a
, __b
, __c
, __d
);
10465 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
10466 vqrdmlsh_laneq_s32 (int32x2_t __a
, int32x2_t __b
, int32x4_t __c
, const int __d
)
10468 return __builtin_aarch64_sqrdmlsh_laneqv2si (__a
, __b
, __c
, __d
);
10471 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
10472 vqrdmlshq_laneq_s16 (int16x8_t __a
, int16x8_t __b
, int16x8_t __c
, const int __d
)
10474 return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a
, __b
, __c
, __d
);
10477 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
10478 vqrdmlshq_laneq_s32 (int32x4_t __a
, int32x4_t __b
, int32x4_t __c
, const int __d
)
10480 return __builtin_aarch64_sqrdmlsh_laneqv4si (__a
, __b
, __c
, __d
);
10483 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
10484 vqrdmlah_lane_s16 (int16x4_t __a
, int16x4_t __b
, int16x4_t __c
, const int __d
)
10486 return __builtin_aarch64_sqrdmlah_lanev4hi (__a
, __b
, __c
, __d
);
10489 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
10490 vqrdmlah_lane_s32 (int32x2_t __a
, int32x2_t __b
, int32x2_t __c
, const int __d
)
10492 return __builtin_aarch64_sqrdmlah_lanev2si (__a
, __b
, __c
, __d
);
10495 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
10496 vqrdmlahq_lane_s16 (int16x8_t __a
, int16x8_t __b
, int16x4_t __c
, const int __d
)
10498 return __builtin_aarch64_sqrdmlah_lanev8hi (__a
, __b
, __c
, __d
);
10501 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
10502 vqrdmlahq_lane_s32 (int32x4_t __a
, int32x4_t __b
, int32x2_t __c
, const int __d
)
10504 return __builtin_aarch64_sqrdmlah_lanev4si (__a
, __b
, __c
, __d
);
10507 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
10508 vqrdmlahh_s16 (int16_t __a
, int16_t __b
, int16_t __c
)
10510 return (int16_t) __builtin_aarch64_sqrdmlahhi (__a
, __b
, __c
);
10513 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
10514 vqrdmlahh_lane_s16 (int16_t __a
, int16_t __b
, int16x4_t __c
, const int __d
)
10516 return __builtin_aarch64_sqrdmlah_lanehi (__a
, __b
, __c
, __d
);
10519 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
10520 vqrdmlahh_laneq_s16 (int16_t __a
, int16_t __b
, int16x8_t __c
, const int __d
)
10522 return __builtin_aarch64_sqrdmlah_laneqhi (__a
, __b
, __c
, __d
);
10525 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
10526 vqrdmlahs_s32 (int32_t __a
, int32_t __b
, int32_t __c
)
10528 return (int32_t) __builtin_aarch64_sqrdmlahsi (__a
, __b
, __c
);
10531 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
10532 vqrdmlahs_lane_s32 (int32_t __a
, int32_t __b
, int32x2_t __c
, const int __d
)
10534 return __builtin_aarch64_sqrdmlah_lanesi (__a
, __b
, __c
, __d
);
10537 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
10538 vqrdmlahs_laneq_s32 (int32_t __a
, int32_t __b
, int32x4_t __c
, const int __d
)
10540 return __builtin_aarch64_sqrdmlah_laneqsi (__a
, __b
, __c
, __d
);
10543 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
10544 vqrdmlsh_lane_s16 (int16x4_t __a
, int16x4_t __b
, int16x4_t __c
, const int __d
)
10546 return __builtin_aarch64_sqrdmlsh_lanev4hi (__a
, __b
, __c
, __d
);
10549 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
10550 vqrdmlsh_lane_s32 (int32x2_t __a
, int32x2_t __b
, int32x2_t __c
, const int __d
)
10552 return __builtin_aarch64_sqrdmlsh_lanev2si (__a
, __b
, __c
, __d
);
10555 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
10556 vqrdmlshq_lane_s16 (int16x8_t __a
, int16x8_t __b
, int16x4_t __c
, const int __d
)
10558 return __builtin_aarch64_sqrdmlsh_lanev8hi (__a
, __b
, __c
, __d
);
10561 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
10562 vqrdmlshq_lane_s32 (int32x4_t __a
, int32x4_t __b
, int32x2_t __c
, const int __d
)
10564 return __builtin_aarch64_sqrdmlsh_lanev4si (__a
, __b
, __c
, __d
);
10567 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
10568 vqrdmlshh_s16 (int16_t __a
, int16_t __b
, int16_t __c
)
10570 return (int16_t) __builtin_aarch64_sqrdmlshhi (__a
, __b
, __c
);
10573 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
10574 vqrdmlshh_lane_s16 (int16_t __a
, int16_t __b
, int16x4_t __c
, const int __d
)
10576 return __builtin_aarch64_sqrdmlsh_lanehi (__a
, __b
, __c
, __d
);
10579 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
10580 vqrdmlshh_laneq_s16 (int16_t __a
, int16_t __b
, int16x8_t __c
, const int __d
)
10582 return __builtin_aarch64_sqrdmlsh_laneqhi (__a
, __b
, __c
, __d
);
10585 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
10586 vqrdmlshs_s32 (int32_t __a
, int32_t __b
, int32_t __c
)
10588 return (int32_t) __builtin_aarch64_sqrdmlshsi (__a
, __b
, __c
);
10591 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
10592 vqrdmlshs_lane_s32 (int32_t __a
, int32_t __b
, int32x2_t __c
, const int __d
)
10594 return __builtin_aarch64_sqrdmlsh_lanesi (__a
, __b
, __c
, __d
);
10597 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
10598 vqrdmlshs_laneq_s32 (int32_t __a
, int32_t __b
, int32x4_t __c
, const int __d
)
10600 return __builtin_aarch64_sqrdmlsh_laneqsi (__a
, __b
, __c
, __d
);
10602 #pragma GCC pop_options
10604 #pragma GCC push_options
10605 #pragma GCC target ("+nothing+crypto")
10608 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
10609 vaeseq_u8 (uint8x16_t data
, uint8x16_t key
)
10611 return __builtin_aarch64_crypto_aesev16qi_uuu (data
, key
);
10614 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
10615 vaesdq_u8 (uint8x16_t data
, uint8x16_t key
)
10617 return __builtin_aarch64_crypto_aesdv16qi_uuu (data
, key
);
10620 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
10621 vaesmcq_u8 (uint8x16_t data
)
10623 return __builtin_aarch64_crypto_aesmcv16qi_uu (data
);
10626 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
10627 vaesimcq_u8 (uint8x16_t data
)
10629 return __builtin_aarch64_crypto_aesimcv16qi_uu (data
);
10631 #pragma GCC pop_options
10635 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10636 vcage_f64 (float64x1_t __a
, float64x1_t __b
)
10638 return vabs_f64 (__a
) >= vabs_f64 (__b
);
10641 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
10642 vcages_f32 (float32_t __a
, float32_t __b
)
10644 return __builtin_fabsf (__a
) >= __builtin_fabsf (__b
) ? -1 : 0;
10647 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10648 vcage_f32 (float32x2_t __a
, float32x2_t __b
)
10650 return vabs_f32 (__a
) >= vabs_f32 (__b
);
10653 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
10654 vcageq_f32 (float32x4_t __a
, float32x4_t __b
)
10656 return vabsq_f32 (__a
) >= vabsq_f32 (__b
);
10659 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10660 vcaged_f64 (float64_t __a
, float64_t __b
)
10662 return __builtin_fabs (__a
) >= __builtin_fabs (__b
) ? -1 : 0;
10665 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
10666 vcageq_f64 (float64x2_t __a
, float64x2_t __b
)
10668 return vabsq_f64 (__a
) >= vabsq_f64 (__b
);
10673 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
10674 vcagts_f32 (float32_t __a
, float32_t __b
)
10676 return __builtin_fabsf (__a
) > __builtin_fabsf (__b
) ? -1 : 0;
10679 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10680 vcagt_f32 (float32x2_t __a
, float32x2_t __b
)
10682 return vabs_f32 (__a
) > vabs_f32 (__b
);
10685 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10686 vcagt_f64 (float64x1_t __a
, float64x1_t __b
)
10688 return vabs_f64 (__a
) > vabs_f64 (__b
);
10691 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
10692 vcagtq_f32 (float32x4_t __a
, float32x4_t __b
)
10694 return vabsq_f32 (__a
) > vabsq_f32 (__b
);
10697 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10698 vcagtd_f64 (float64_t __a
, float64_t __b
)
10700 return __builtin_fabs (__a
) > __builtin_fabs (__b
) ? -1 : 0;
10703 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
10704 vcagtq_f64 (float64x2_t __a
, float64x2_t __b
)
10706 return vabsq_f64 (__a
) > vabsq_f64 (__b
);
10711 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10712 vcale_f32 (float32x2_t __a
, float32x2_t __b
)
10714 return vabs_f32 (__a
) <= vabs_f32 (__b
);
10717 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10718 vcale_f64 (float64x1_t __a
, float64x1_t __b
)
10720 return vabs_f64 (__a
) <= vabs_f64 (__b
);
10723 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10724 vcaled_f64 (float64_t __a
, float64_t __b
)
10726 return __builtin_fabs (__a
) <= __builtin_fabs (__b
) ? -1 : 0;
10729 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
10730 vcales_f32 (float32_t __a
, float32_t __b
)
10732 return __builtin_fabsf (__a
) <= __builtin_fabsf (__b
) ? -1 : 0;
10735 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
10736 vcaleq_f32 (float32x4_t __a
, float32x4_t __b
)
10738 return vabsq_f32 (__a
) <= vabsq_f32 (__b
);
10741 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
10742 vcaleq_f64 (float64x2_t __a
, float64x2_t __b
)
10744 return vabsq_f64 (__a
) <= vabsq_f64 (__b
);
10749 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10750 vcalt_f32 (float32x2_t __a
, float32x2_t __b
)
10752 return vabs_f32 (__a
) < vabs_f32 (__b
);
10755 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10756 vcalt_f64 (float64x1_t __a
, float64x1_t __b
)
10758 return vabs_f64 (__a
) < vabs_f64 (__b
);
10761 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10762 vcaltd_f64 (float64_t __a
, float64_t __b
)
10764 return __builtin_fabs (__a
) < __builtin_fabs (__b
) ? -1 : 0;
10767 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
10768 vcaltq_f32 (float32x4_t __a
, float32x4_t __b
)
10770 return vabsq_f32 (__a
) < vabsq_f32 (__b
);
10773 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
10774 vcaltq_f64 (float64x2_t __a
, float64x2_t __b
)
10776 return vabsq_f64 (__a
) < vabsq_f64 (__b
);
10779 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
10780 vcalts_f32 (float32_t __a
, float32_t __b
)
10782 return __builtin_fabsf (__a
) < __builtin_fabsf (__b
) ? -1 : 0;
10785 /* vceq - vector. */
10787 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10788 vceq_f32 (float32x2_t __a
, float32x2_t __b
)
10790 return (uint32x2_t
) (__a
== __b
);
10793 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10794 vceq_f64 (float64x1_t __a
, float64x1_t __b
)
10796 return (uint64x1_t
) (__a
== __b
);
10799 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
10800 vceq_p8 (poly8x8_t __a
, poly8x8_t __b
)
10802 return (uint8x8_t
) (__a
== __b
);
10805 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
10806 vceq_s8 (int8x8_t __a
, int8x8_t __b
)
10808 return (uint8x8_t
) (__a
== __b
);
10811 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
10812 vceq_s16 (int16x4_t __a
, int16x4_t __b
)
10814 return (uint16x4_t
) (__a
== __b
);
10817 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10818 vceq_s32 (int32x2_t __a
, int32x2_t __b
)
10820 return (uint32x2_t
) (__a
== __b
);
10823 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10824 vceq_s64 (int64x1_t __a
, int64x1_t __b
)
10826 return (uint64x1_t
) (__a
== __b
);
10829 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
10830 vceq_u8 (uint8x8_t __a
, uint8x8_t __b
)
10832 return (__a
== __b
);
10835 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
10836 vceq_u16 (uint16x4_t __a
, uint16x4_t __b
)
10838 return (__a
== __b
);
10841 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10842 vceq_u32 (uint32x2_t __a
, uint32x2_t __b
)
10844 return (__a
== __b
);
10847 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10848 vceq_u64 (uint64x1_t __a
, uint64x1_t __b
)
10850 return (__a
== __b
);
10853 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
10854 vceqq_f32 (float32x4_t __a
, float32x4_t __b
)
10856 return (uint32x4_t
) (__a
== __b
);
10859 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
10860 vceqq_f64 (float64x2_t __a
, float64x2_t __b
)
10862 return (uint64x2_t
) (__a
== __b
);
10865 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
10866 vceqq_p8 (poly8x16_t __a
, poly8x16_t __b
)
10868 return (uint8x16_t
) (__a
== __b
);
10871 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
10872 vceqq_s8 (int8x16_t __a
, int8x16_t __b
)
10874 return (uint8x16_t
) (__a
== __b
);
10877 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
10878 vceqq_s16 (int16x8_t __a
, int16x8_t __b
)
10880 return (uint16x8_t
) (__a
== __b
);
10883 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
10884 vceqq_s32 (int32x4_t __a
, int32x4_t __b
)
10886 return (uint32x4_t
) (__a
== __b
);
10889 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
10890 vceqq_s64 (int64x2_t __a
, int64x2_t __b
)
10892 return (uint64x2_t
) (__a
== __b
);
10895 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
10896 vceqq_u8 (uint8x16_t __a
, uint8x16_t __b
)
10898 return (__a
== __b
);
10901 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
10902 vceqq_u16 (uint16x8_t __a
, uint16x8_t __b
)
10904 return (__a
== __b
);
10907 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
10908 vceqq_u32 (uint32x4_t __a
, uint32x4_t __b
)
10910 return (__a
== __b
);
10913 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
10914 vceqq_u64 (uint64x2_t __a
, uint64x2_t __b
)
10916 return (__a
== __b
);
10919 /* vceq - scalar. */
10921 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
10922 vceqs_f32 (float32_t __a
, float32_t __b
)
10924 return __a
== __b
? -1 : 0;
10927 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10928 vceqd_s64 (int64_t __a
, int64_t __b
)
10930 return __a
== __b
? -1ll : 0ll;
10933 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10934 vceqd_u64 (uint64_t __a
, uint64_t __b
)
10936 return __a
== __b
? -1ll : 0ll;
10939 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
10940 vceqd_f64 (float64_t __a
, float64_t __b
)
10942 return __a
== __b
? -1ll : 0ll;
10945 /* vceqz - vector. */
10947 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10948 vceqz_f32 (float32x2_t __a
)
10950 return (uint32x2_t
) (__a
== 0.0f
);
10953 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10954 vceqz_f64 (float64x1_t __a
)
10956 return (uint64x1_t
) (__a
== (float64x1_t
) {0.0});
10959 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
10960 vceqz_p8 (poly8x8_t __a
)
10962 return (uint8x8_t
) (__a
== 0);
10965 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
10966 vceqz_s8 (int8x8_t __a
)
10968 return (uint8x8_t
) (__a
== 0);
10971 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
10972 vceqz_s16 (int16x4_t __a
)
10974 return (uint16x4_t
) (__a
== 0);
10977 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
10978 vceqz_s32 (int32x2_t __a
)
10980 return (uint32x2_t
) (__a
== 0);
10983 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
10984 vceqz_s64 (int64x1_t __a
)
10986 return (uint64x1_t
) (__a
== __AARCH64_INT64_C (0));
10989 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
10990 vceqz_u8 (uint8x8_t __a
)
10995 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
10996 vceqz_u16 (uint16x4_t __a
)
11001 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11002 vceqz_u32 (uint32x2_t __a
)
11007 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11008 vceqz_u64 (uint64x1_t __a
)
11010 return (__a
== __AARCH64_UINT64_C (0));
11013 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11014 vceqzq_f32 (float32x4_t __a
)
11016 return (uint32x4_t
) (__a
== 0.0f
);
11019 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11020 vceqzq_f64 (float64x2_t __a
)
11022 return (uint64x2_t
) (__a
== 0.0f
);
11025 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11026 vceqzq_p8 (poly8x16_t __a
)
11028 return (uint8x16_t
) (__a
== 0);
11031 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11032 vceqzq_s8 (int8x16_t __a
)
11034 return (uint8x16_t
) (__a
== 0);
11037 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11038 vceqzq_s16 (int16x8_t __a
)
11040 return (uint16x8_t
) (__a
== 0);
11043 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11044 vceqzq_s32 (int32x4_t __a
)
11046 return (uint32x4_t
) (__a
== 0);
11049 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11050 vceqzq_s64 (int64x2_t __a
)
11052 return (uint64x2_t
) (__a
== __AARCH64_INT64_C (0));
11055 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11056 vceqzq_u8 (uint8x16_t __a
)
11061 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11062 vceqzq_u16 (uint16x8_t __a
)
11067 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11068 vceqzq_u32 (uint32x4_t __a
)
11073 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11074 vceqzq_u64 (uint64x2_t __a
)
11076 return (__a
== __AARCH64_UINT64_C (0));
11079 /* vceqz - scalar. */
11081 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
11082 vceqzs_f32 (float32_t __a
)
11084 return __a
== 0.0f
? -1 : 0;
11087 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11088 vceqzd_s64 (int64_t __a
)
11090 return __a
== 0 ? -1ll : 0ll;
11093 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11094 vceqzd_u64 (uint64_t __a
)
11096 return __a
== 0 ? -1ll : 0ll;
11099 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11100 vceqzd_f64 (float64_t __a
)
11102 return __a
== 0.0 ? -1ll : 0ll;
11105 /* vcge - vector. */
11107 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11108 vcge_f32 (float32x2_t __a
, float32x2_t __b
)
11110 return (uint32x2_t
) (__a
>= __b
);
11113 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11114 vcge_f64 (float64x1_t __a
, float64x1_t __b
)
11116 return (uint64x1_t
) (__a
>= __b
);
11119 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11120 vcge_s8 (int8x8_t __a
, int8x8_t __b
)
11122 return (uint8x8_t
) (__a
>= __b
);
11125 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11126 vcge_s16 (int16x4_t __a
, int16x4_t __b
)
11128 return (uint16x4_t
) (__a
>= __b
);
11131 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11132 vcge_s32 (int32x2_t __a
, int32x2_t __b
)
11134 return (uint32x2_t
) (__a
>= __b
);
11137 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11138 vcge_s64 (int64x1_t __a
, int64x1_t __b
)
11140 return (uint64x1_t
) (__a
>= __b
);
11143 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11144 vcge_u8 (uint8x8_t __a
, uint8x8_t __b
)
11146 return (__a
>= __b
);
11149 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11150 vcge_u16 (uint16x4_t __a
, uint16x4_t __b
)
11152 return (__a
>= __b
);
11155 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11156 vcge_u32 (uint32x2_t __a
, uint32x2_t __b
)
11158 return (__a
>= __b
);
11161 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11162 vcge_u64 (uint64x1_t __a
, uint64x1_t __b
)
11164 return (__a
>= __b
);
11167 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11168 vcgeq_f32 (float32x4_t __a
, float32x4_t __b
)
11170 return (uint32x4_t
) (__a
>= __b
);
11173 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11174 vcgeq_f64 (float64x2_t __a
, float64x2_t __b
)
11176 return (uint64x2_t
) (__a
>= __b
);
11179 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11180 vcgeq_s8 (int8x16_t __a
, int8x16_t __b
)
11182 return (uint8x16_t
) (__a
>= __b
);
11185 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11186 vcgeq_s16 (int16x8_t __a
, int16x8_t __b
)
11188 return (uint16x8_t
) (__a
>= __b
);
11191 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11192 vcgeq_s32 (int32x4_t __a
, int32x4_t __b
)
11194 return (uint32x4_t
) (__a
>= __b
);
11197 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11198 vcgeq_s64 (int64x2_t __a
, int64x2_t __b
)
11200 return (uint64x2_t
) (__a
>= __b
);
11203 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11204 vcgeq_u8 (uint8x16_t __a
, uint8x16_t __b
)
11206 return (__a
>= __b
);
11209 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11210 vcgeq_u16 (uint16x8_t __a
, uint16x8_t __b
)
11212 return (__a
>= __b
);
11215 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11216 vcgeq_u32 (uint32x4_t __a
, uint32x4_t __b
)
11218 return (__a
>= __b
);
11221 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11222 vcgeq_u64 (uint64x2_t __a
, uint64x2_t __b
)
11224 return (__a
>= __b
);
11227 /* vcge - scalar. */
11229 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
11230 vcges_f32 (float32_t __a
, float32_t __b
)
11232 return __a
>= __b
? -1 : 0;
11235 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11236 vcged_s64 (int64_t __a
, int64_t __b
)
11238 return __a
>= __b
? -1ll : 0ll;
11241 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11242 vcged_u64 (uint64_t __a
, uint64_t __b
)
11244 return __a
>= __b
? -1ll : 0ll;
11247 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11248 vcged_f64 (float64_t __a
, float64_t __b
)
11250 return __a
>= __b
? -1ll : 0ll;
11253 /* vcgez - vector. */
11255 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11256 vcgez_f32 (float32x2_t __a
)
11258 return (uint32x2_t
) (__a
>= 0.0f
);
11261 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11262 vcgez_f64 (float64x1_t __a
)
11264 return (uint64x1_t
) (__a
[0] >= (float64x1_t
) {0.0});
11267 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11268 vcgez_s8 (int8x8_t __a
)
11270 return (uint8x8_t
) (__a
>= 0);
11273 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11274 vcgez_s16 (int16x4_t __a
)
11276 return (uint16x4_t
) (__a
>= 0);
11279 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11280 vcgez_s32 (int32x2_t __a
)
11282 return (uint32x2_t
) (__a
>= 0);
11285 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11286 vcgez_s64 (int64x1_t __a
)
11288 return (uint64x1_t
) (__a
>= __AARCH64_INT64_C (0));
11291 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11292 vcgezq_f32 (float32x4_t __a
)
11294 return (uint32x4_t
) (__a
>= 0.0f
);
11297 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11298 vcgezq_f64 (float64x2_t __a
)
11300 return (uint64x2_t
) (__a
>= 0.0);
11303 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11304 vcgezq_s8 (int8x16_t __a
)
11306 return (uint8x16_t
) (__a
>= 0);
11309 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11310 vcgezq_s16 (int16x8_t __a
)
11312 return (uint16x8_t
) (__a
>= 0);
11315 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11316 vcgezq_s32 (int32x4_t __a
)
11318 return (uint32x4_t
) (__a
>= 0);
11321 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11322 vcgezq_s64 (int64x2_t __a
)
11324 return (uint64x2_t
) (__a
>= __AARCH64_INT64_C (0));
11327 /* vcgez - scalar. */
11329 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
11330 vcgezs_f32 (float32_t __a
)
11332 return __a
>= 0.0f
? -1 : 0;
11335 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11336 vcgezd_s64 (int64_t __a
)
11338 return __a
>= 0 ? -1ll : 0ll;
11341 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11342 vcgezd_f64 (float64_t __a
)
11344 return __a
>= 0.0 ? -1ll : 0ll;
11347 /* vcgt - vector. */
11349 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11350 vcgt_f32 (float32x2_t __a
, float32x2_t __b
)
11352 return (uint32x2_t
) (__a
> __b
);
11355 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11356 vcgt_f64 (float64x1_t __a
, float64x1_t __b
)
11358 return (uint64x1_t
) (__a
> __b
);
11361 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11362 vcgt_s8 (int8x8_t __a
, int8x8_t __b
)
11364 return (uint8x8_t
) (__a
> __b
);
11367 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11368 vcgt_s16 (int16x4_t __a
, int16x4_t __b
)
11370 return (uint16x4_t
) (__a
> __b
);
11373 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11374 vcgt_s32 (int32x2_t __a
, int32x2_t __b
)
11376 return (uint32x2_t
) (__a
> __b
);
11379 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11380 vcgt_s64 (int64x1_t __a
, int64x1_t __b
)
11382 return (uint64x1_t
) (__a
> __b
);
11385 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11386 vcgt_u8 (uint8x8_t __a
, uint8x8_t __b
)
11388 return (__a
> __b
);
11391 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11392 vcgt_u16 (uint16x4_t __a
, uint16x4_t __b
)
11394 return (__a
> __b
);
11397 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11398 vcgt_u32 (uint32x2_t __a
, uint32x2_t __b
)
11400 return (__a
> __b
);
11403 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11404 vcgt_u64 (uint64x1_t __a
, uint64x1_t __b
)
11406 return (__a
> __b
);
11409 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11410 vcgtq_f32 (float32x4_t __a
, float32x4_t __b
)
11412 return (uint32x4_t
) (__a
> __b
);
11415 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11416 vcgtq_f64 (float64x2_t __a
, float64x2_t __b
)
11418 return (uint64x2_t
) (__a
> __b
);
11421 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11422 vcgtq_s8 (int8x16_t __a
, int8x16_t __b
)
11424 return (uint8x16_t
) (__a
> __b
);
11427 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11428 vcgtq_s16 (int16x8_t __a
, int16x8_t __b
)
11430 return (uint16x8_t
) (__a
> __b
);
11433 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11434 vcgtq_s32 (int32x4_t __a
, int32x4_t __b
)
11436 return (uint32x4_t
) (__a
> __b
);
11439 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11440 vcgtq_s64 (int64x2_t __a
, int64x2_t __b
)
11442 return (uint64x2_t
) (__a
> __b
);
11445 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11446 vcgtq_u8 (uint8x16_t __a
, uint8x16_t __b
)
11448 return (__a
> __b
);
11451 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11452 vcgtq_u16 (uint16x8_t __a
, uint16x8_t __b
)
11454 return (__a
> __b
);
11457 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11458 vcgtq_u32 (uint32x4_t __a
, uint32x4_t __b
)
11460 return (__a
> __b
);
11463 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11464 vcgtq_u64 (uint64x2_t __a
, uint64x2_t __b
)
11466 return (__a
> __b
);
11469 /* vcgt - scalar. */
11471 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
11472 vcgts_f32 (float32_t __a
, float32_t __b
)
11474 return __a
> __b
? -1 : 0;
11477 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11478 vcgtd_s64 (int64_t __a
, int64_t __b
)
11480 return __a
> __b
? -1ll : 0ll;
11483 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11484 vcgtd_u64 (uint64_t __a
, uint64_t __b
)
11486 return __a
> __b
? -1ll : 0ll;
11489 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11490 vcgtd_f64 (float64_t __a
, float64_t __b
)
11492 return __a
> __b
? -1ll : 0ll;
11495 /* vcgtz - vector. */
11497 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11498 vcgtz_f32 (float32x2_t __a
)
11500 return (uint32x2_t
) (__a
> 0.0f
);
11503 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11504 vcgtz_f64 (float64x1_t __a
)
11506 return (uint64x1_t
) (__a
> (float64x1_t
) {0.0});
11509 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11510 vcgtz_s8 (int8x8_t __a
)
11512 return (uint8x8_t
) (__a
> 0);
11515 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11516 vcgtz_s16 (int16x4_t __a
)
11518 return (uint16x4_t
) (__a
> 0);
11521 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11522 vcgtz_s32 (int32x2_t __a
)
11524 return (uint32x2_t
) (__a
> 0);
11527 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11528 vcgtz_s64 (int64x1_t __a
)
11530 return (uint64x1_t
) (__a
> __AARCH64_INT64_C (0));
11533 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11534 vcgtzq_f32 (float32x4_t __a
)
11536 return (uint32x4_t
) (__a
> 0.0f
);
11539 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11540 vcgtzq_f64 (float64x2_t __a
)
11542 return (uint64x2_t
) (__a
> 0.0);
11545 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11546 vcgtzq_s8 (int8x16_t __a
)
11548 return (uint8x16_t
) (__a
> 0);
11551 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11552 vcgtzq_s16 (int16x8_t __a
)
11554 return (uint16x8_t
) (__a
> 0);
11557 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11558 vcgtzq_s32 (int32x4_t __a
)
11560 return (uint32x4_t
) (__a
> 0);
11563 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11564 vcgtzq_s64 (int64x2_t __a
)
11566 return (uint64x2_t
) (__a
> __AARCH64_INT64_C (0));
11569 /* vcgtz - scalar. */
11571 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
11572 vcgtzs_f32 (float32_t __a
)
11574 return __a
> 0.0f
? -1 : 0;
11577 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11578 vcgtzd_s64 (int64_t __a
)
11580 return __a
> 0 ? -1ll : 0ll;
11583 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11584 vcgtzd_f64 (float64_t __a
)
11586 return __a
> 0.0 ? -1ll : 0ll;
11589 /* vcle - vector. */
11591 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11592 vcle_f32 (float32x2_t __a
, float32x2_t __b
)
11594 return (uint32x2_t
) (__a
<= __b
);
11597 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11598 vcle_f64 (float64x1_t __a
, float64x1_t __b
)
11600 return (uint64x1_t
) (__a
<= __b
);
11603 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11604 vcle_s8 (int8x8_t __a
, int8x8_t __b
)
11606 return (uint8x8_t
) (__a
<= __b
);
11609 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11610 vcle_s16 (int16x4_t __a
, int16x4_t __b
)
11612 return (uint16x4_t
) (__a
<= __b
);
11615 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11616 vcle_s32 (int32x2_t __a
, int32x2_t __b
)
11618 return (uint32x2_t
) (__a
<= __b
);
11621 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11622 vcle_s64 (int64x1_t __a
, int64x1_t __b
)
11624 return (uint64x1_t
) (__a
<= __b
);
11627 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11628 vcle_u8 (uint8x8_t __a
, uint8x8_t __b
)
11630 return (__a
<= __b
);
11633 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11634 vcle_u16 (uint16x4_t __a
, uint16x4_t __b
)
11636 return (__a
<= __b
);
11639 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11640 vcle_u32 (uint32x2_t __a
, uint32x2_t __b
)
11642 return (__a
<= __b
);
11645 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11646 vcle_u64 (uint64x1_t __a
, uint64x1_t __b
)
11648 return (__a
<= __b
);
11651 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11652 vcleq_f32 (float32x4_t __a
, float32x4_t __b
)
11654 return (uint32x4_t
) (__a
<= __b
);
11657 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11658 vcleq_f64 (float64x2_t __a
, float64x2_t __b
)
11660 return (uint64x2_t
) (__a
<= __b
);
11663 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11664 vcleq_s8 (int8x16_t __a
, int8x16_t __b
)
11666 return (uint8x16_t
) (__a
<= __b
);
11669 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11670 vcleq_s16 (int16x8_t __a
, int16x8_t __b
)
11672 return (uint16x8_t
) (__a
<= __b
);
11675 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11676 vcleq_s32 (int32x4_t __a
, int32x4_t __b
)
11678 return (uint32x4_t
) (__a
<= __b
);
11681 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11682 vcleq_s64 (int64x2_t __a
, int64x2_t __b
)
11684 return (uint64x2_t
) (__a
<= __b
);
11687 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11688 vcleq_u8 (uint8x16_t __a
, uint8x16_t __b
)
11690 return (__a
<= __b
);
11693 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11694 vcleq_u16 (uint16x8_t __a
, uint16x8_t __b
)
11696 return (__a
<= __b
);
11699 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11700 vcleq_u32 (uint32x4_t __a
, uint32x4_t __b
)
11702 return (__a
<= __b
);
11705 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11706 vcleq_u64 (uint64x2_t __a
, uint64x2_t __b
)
11708 return (__a
<= __b
);
11711 /* vcle - scalar. */
11713 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
11714 vcles_f32 (float32_t __a
, float32_t __b
)
11716 return __a
<= __b
? -1 : 0;
11719 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11720 vcled_s64 (int64_t __a
, int64_t __b
)
11722 return __a
<= __b
? -1ll : 0ll;
11725 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11726 vcled_u64 (uint64_t __a
, uint64_t __b
)
11728 return __a
<= __b
? -1ll : 0ll;
11731 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11732 vcled_f64 (float64_t __a
, float64_t __b
)
11734 return __a
<= __b
? -1ll : 0ll;
11737 /* vclez - vector. */
11739 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11740 vclez_f32 (float32x2_t __a
)
11742 return (uint32x2_t
) (__a
<= 0.0f
);
11745 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11746 vclez_f64 (float64x1_t __a
)
11748 return (uint64x1_t
) (__a
<= (float64x1_t
) {0.0});
11751 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11752 vclez_s8 (int8x8_t __a
)
11754 return (uint8x8_t
) (__a
<= 0);
11757 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11758 vclez_s16 (int16x4_t __a
)
11760 return (uint16x4_t
) (__a
<= 0);
11763 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11764 vclez_s32 (int32x2_t __a
)
11766 return (uint32x2_t
) (__a
<= 0);
11769 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11770 vclez_s64 (int64x1_t __a
)
11772 return (uint64x1_t
) (__a
<= __AARCH64_INT64_C (0));
11775 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11776 vclezq_f32 (float32x4_t __a
)
11778 return (uint32x4_t
) (__a
<= 0.0f
);
11781 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11782 vclezq_f64 (float64x2_t __a
)
11784 return (uint64x2_t
) (__a
<= 0.0);
11787 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11788 vclezq_s8 (int8x16_t __a
)
11790 return (uint8x16_t
) (__a
<= 0);
11793 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11794 vclezq_s16 (int16x8_t __a
)
11796 return (uint16x8_t
) (__a
<= 0);
11799 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11800 vclezq_s32 (int32x4_t __a
)
11802 return (uint32x4_t
) (__a
<= 0);
11805 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11806 vclezq_s64 (int64x2_t __a
)
11808 return (uint64x2_t
) (__a
<= __AARCH64_INT64_C (0));
11811 /* vclez - scalar. */
11813 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
11814 vclezs_f32 (float32_t __a
)
11816 return __a
<= 0.0f
? -1 : 0;
11819 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11820 vclezd_s64 (int64_t __a
)
11822 return __a
<= 0 ? -1ll : 0ll;
11825 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11826 vclezd_f64 (float64_t __a
)
11828 return __a
<= 0.0 ? -1ll : 0ll;
11831 /* vclt - vector. */
11833 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11834 vclt_f32 (float32x2_t __a
, float32x2_t __b
)
11836 return (uint32x2_t
) (__a
< __b
);
11839 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11840 vclt_f64 (float64x1_t __a
, float64x1_t __b
)
11842 return (uint64x1_t
) (__a
< __b
);
11845 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11846 vclt_s8 (int8x8_t __a
, int8x8_t __b
)
11848 return (uint8x8_t
) (__a
< __b
);
11851 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11852 vclt_s16 (int16x4_t __a
, int16x4_t __b
)
11854 return (uint16x4_t
) (__a
< __b
);
11857 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11858 vclt_s32 (int32x2_t __a
, int32x2_t __b
)
11860 return (uint32x2_t
) (__a
< __b
);
11863 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11864 vclt_s64 (int64x1_t __a
, int64x1_t __b
)
11866 return (uint64x1_t
) (__a
< __b
);
11869 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11870 vclt_u8 (uint8x8_t __a
, uint8x8_t __b
)
11872 return (__a
< __b
);
11875 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
11876 vclt_u16 (uint16x4_t __a
, uint16x4_t __b
)
11878 return (__a
< __b
);
11881 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11882 vclt_u32 (uint32x2_t __a
, uint32x2_t __b
)
11884 return (__a
< __b
);
11887 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11888 vclt_u64 (uint64x1_t __a
, uint64x1_t __b
)
11890 return (__a
< __b
);
11893 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11894 vcltq_f32 (float32x4_t __a
, float32x4_t __b
)
11896 return (uint32x4_t
) (__a
< __b
);
11899 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11900 vcltq_f64 (float64x2_t __a
, float64x2_t __b
)
11902 return (uint64x2_t
) (__a
< __b
);
11905 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11906 vcltq_s8 (int8x16_t __a
, int8x16_t __b
)
11908 return (uint8x16_t
) (__a
< __b
);
11911 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11912 vcltq_s16 (int16x8_t __a
, int16x8_t __b
)
11914 return (uint16x8_t
) (__a
< __b
);
11917 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11918 vcltq_s32 (int32x4_t __a
, int32x4_t __b
)
11920 return (uint32x4_t
) (__a
< __b
);
11923 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11924 vcltq_s64 (int64x2_t __a
, int64x2_t __b
)
11926 return (uint64x2_t
) (__a
< __b
);
11929 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
11930 vcltq_u8 (uint8x16_t __a
, uint8x16_t __b
)
11932 return (__a
< __b
);
11935 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
11936 vcltq_u16 (uint16x8_t __a
, uint16x8_t __b
)
11938 return (__a
< __b
);
11941 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
11942 vcltq_u32 (uint32x4_t __a
, uint32x4_t __b
)
11944 return (__a
< __b
);
11947 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
11948 vcltq_u64 (uint64x2_t __a
, uint64x2_t __b
)
11950 return (__a
< __b
);
11953 /* vclt - scalar. */
11955 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
11956 vclts_f32 (float32_t __a
, float32_t __b
)
11958 return __a
< __b
? -1 : 0;
11961 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11962 vcltd_s64 (int64_t __a
, int64_t __b
)
11964 return __a
< __b
? -1ll : 0ll;
11967 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11968 vcltd_u64 (uint64_t __a
, uint64_t __b
)
11970 return __a
< __b
? -1ll : 0ll;
11973 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
11974 vcltd_f64 (float64_t __a
, float64_t __b
)
11976 return __a
< __b
? -1ll : 0ll;
11979 /* vcltz - vector. */
11981 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
11982 vcltz_f32 (float32x2_t __a
)
11984 return (uint32x2_t
) (__a
< 0.0f
);
11987 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
11988 vcltz_f64 (float64x1_t __a
)
11990 return (uint64x1_t
) (__a
< (float64x1_t
) {0.0});
11993 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
11994 vcltz_s8 (int8x8_t __a
)
11996 return (uint8x8_t
) (__a
< 0);
11999 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
12000 vcltz_s16 (int16x4_t __a
)
12002 return (uint16x4_t
) (__a
< 0);
12005 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
12006 vcltz_s32 (int32x2_t __a
)
12008 return (uint32x2_t
) (__a
< 0);
12011 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
12012 vcltz_s64 (int64x1_t __a
)
12014 return (uint64x1_t
) (__a
< __AARCH64_INT64_C (0));
12017 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
12018 vcltzq_f32 (float32x4_t __a
)
12020 return (uint32x4_t
) (__a
< 0.0f
);
12023 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
12024 vcltzq_f64 (float64x2_t __a
)
12026 return (uint64x2_t
) (__a
< 0.0);
12029 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
12030 vcltzq_s8 (int8x16_t __a
)
12032 return (uint8x16_t
) (__a
< 0);
12035 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
12036 vcltzq_s16 (int16x8_t __a
)
12038 return (uint16x8_t
) (__a
< 0);
12041 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
12042 vcltzq_s32 (int32x4_t __a
)
12044 return (uint32x4_t
) (__a
< 0);
12047 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
12048 vcltzq_s64 (int64x2_t __a
)
12050 return (uint64x2_t
) (__a
< __AARCH64_INT64_C (0));
12053 /* vcltz - scalar. */
12055 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
12056 vcltzs_f32 (float32_t __a
)
12058 return __a
< 0.0f
? -1 : 0;
12061 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
12062 vcltzd_s64 (int64_t __a
)
12064 return __a
< 0 ? -1ll : 0ll;
12067 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
12068 vcltzd_f64 (float64_t __a
)
12070 return __a
< 0.0 ? -1ll : 0ll;
12075 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
12076 vcls_s8 (int8x8_t __a
)
12078 return __builtin_aarch64_clrsbv8qi (__a
);
12081 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
12082 vcls_s16 (int16x4_t __a
)
12084 return __builtin_aarch64_clrsbv4hi (__a
);
12087 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
12088 vcls_s32 (int32x2_t __a
)
12090 return __builtin_aarch64_clrsbv2si (__a
);
12093 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
12094 vclsq_s8 (int8x16_t __a
)
12096 return __builtin_aarch64_clrsbv16qi (__a
);
12099 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
12100 vclsq_s16 (int16x8_t __a
)
12102 return __builtin_aarch64_clrsbv8hi (__a
);
12105 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
12106 vclsq_s32 (int32x4_t __a
)
12108 return __builtin_aarch64_clrsbv4si (__a
);
12113 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
12114 vclz_s8 (int8x8_t __a
)
12116 return __builtin_aarch64_clzv8qi (__a
);
12119 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
12120 vclz_s16 (int16x4_t __a
)
12122 return __builtin_aarch64_clzv4hi (__a
);
12125 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
12126 vclz_s32 (int32x2_t __a
)
12128 return __builtin_aarch64_clzv2si (__a
);
12131 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
12132 vclz_u8 (uint8x8_t __a
)
12134 return (uint8x8_t
)__builtin_aarch64_clzv8qi ((int8x8_t
)__a
);
12137 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
12138 vclz_u16 (uint16x4_t __a
)
12140 return (uint16x4_t
)__builtin_aarch64_clzv4hi ((int16x4_t
)__a
);
12143 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
12144 vclz_u32 (uint32x2_t __a
)
12146 return (uint32x2_t
)__builtin_aarch64_clzv2si ((int32x2_t
)__a
);
12149 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
12150 vclzq_s8 (int8x16_t __a
)
12152 return __builtin_aarch64_clzv16qi (__a
);
12155 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
12156 vclzq_s16 (int16x8_t __a
)
12158 return __builtin_aarch64_clzv8hi (__a
);
12161 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
12162 vclzq_s32 (int32x4_t __a
)
12164 return __builtin_aarch64_clzv4si (__a
);
12167 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
12168 vclzq_u8 (uint8x16_t __a
)
12170 return (uint8x16_t
)__builtin_aarch64_clzv16qi ((int8x16_t
)__a
);
12173 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
12174 vclzq_u16 (uint16x8_t __a
)
12176 return (uint16x8_t
)__builtin_aarch64_clzv8hi ((int16x8_t
)__a
);
12179 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
12180 vclzq_u32 (uint32x4_t __a
)
12182 return (uint32x4_t
)__builtin_aarch64_clzv4si ((int32x4_t
)__a
);
12187 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
12188 vcnt_p8 (poly8x8_t __a
)
12190 return (poly8x8_t
) __builtin_aarch64_popcountv8qi ((int8x8_t
) __a
);
12193 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
12194 vcnt_s8 (int8x8_t __a
)
12196 return __builtin_aarch64_popcountv8qi (__a
);
12199 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
12200 vcnt_u8 (uint8x8_t __a
)
12202 return (uint8x8_t
) __builtin_aarch64_popcountv8qi ((int8x8_t
) __a
);
12205 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
12206 vcntq_p8 (poly8x16_t __a
)
12208 return (poly8x16_t
) __builtin_aarch64_popcountv16qi ((int8x16_t
) __a
);
12211 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
12212 vcntq_s8 (int8x16_t __a
)
12214 return __builtin_aarch64_popcountv16qi (__a
);
12217 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
12218 vcntq_u8 (uint8x16_t __a
)
12220 return (uint8x16_t
) __builtin_aarch64_popcountv16qi ((int8x16_t
) __a
);
12225 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
12226 vcopy_lane_f32 (float32x2_t __a
, const int __lane1
,
12227 float32x2_t __b
, const int __lane2
)
12229 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12233 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
12234 vcopy_lane_f64 (float64x1_t __a
, const int __lane1
,
12235 float64x1_t __b
, const int __lane2
)
12237 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12241 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
12242 vcopy_lane_p8 (poly8x8_t __a
, const int __lane1
,
12243 poly8x8_t __b
, const int __lane2
)
12245 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12249 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
12250 vcopy_lane_p16 (poly16x4_t __a
, const int __lane1
,
12251 poly16x4_t __b
, const int __lane2
)
12253 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12257 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
12258 vcopy_lane_s8 (int8x8_t __a
, const int __lane1
,
12259 int8x8_t __b
, const int __lane2
)
12261 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12265 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
12266 vcopy_lane_s16 (int16x4_t __a
, const int __lane1
,
12267 int16x4_t __b
, const int __lane2
)
12269 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12273 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
12274 vcopy_lane_s32 (int32x2_t __a
, const int __lane1
,
12275 int32x2_t __b
, const int __lane2
)
12277 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12281 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
12282 vcopy_lane_s64 (int64x1_t __a
, const int __lane1
,
12283 int64x1_t __b
, const int __lane2
)
12285 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12289 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
12290 vcopy_lane_u8 (uint8x8_t __a
, const int __lane1
,
12291 uint8x8_t __b
, const int __lane2
)
12293 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12297 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
12298 vcopy_lane_u16 (uint16x4_t __a
, const int __lane1
,
12299 uint16x4_t __b
, const int __lane2
)
12301 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12305 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
12306 vcopy_lane_u32 (uint32x2_t __a
, const int __lane1
,
12307 uint32x2_t __b
, const int __lane2
)
12309 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12313 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
12314 vcopy_lane_u64 (uint64x1_t __a
, const int __lane1
,
12315 uint64x1_t __b
, const int __lane2
)
12317 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12323 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
12324 vcopy_laneq_f32 (float32x2_t __a
, const int __lane1
,
12325 float32x4_t __b
, const int __lane2
)
12327 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12331 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
12332 vcopy_laneq_f64 (float64x1_t __a
, const int __lane1
,
12333 float64x2_t __b
, const int __lane2
)
12335 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12339 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
12340 vcopy_laneq_p8 (poly8x8_t __a
, const int __lane1
,
12341 poly8x16_t __b
, const int __lane2
)
12343 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12347 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
12348 vcopy_laneq_p16 (poly16x4_t __a
, const int __lane1
,
12349 poly16x8_t __b
, const int __lane2
)
12351 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12355 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
12356 vcopy_laneq_s8 (int8x8_t __a
, const int __lane1
,
12357 int8x16_t __b
, const int __lane2
)
12359 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12363 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
12364 vcopy_laneq_s16 (int16x4_t __a
, const int __lane1
,
12365 int16x8_t __b
, const int __lane2
)
12367 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12371 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
12372 vcopy_laneq_s32 (int32x2_t __a
, const int __lane1
,
12373 int32x4_t __b
, const int __lane2
)
12375 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12379 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
12380 vcopy_laneq_s64 (int64x1_t __a
, const int __lane1
,
12381 int64x2_t __b
, const int __lane2
)
12383 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12387 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
12388 vcopy_laneq_u8 (uint8x8_t __a
, const int __lane1
,
12389 uint8x16_t __b
, const int __lane2
)
12391 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12395 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
12396 vcopy_laneq_u16 (uint16x4_t __a
, const int __lane1
,
12397 uint16x8_t __b
, const int __lane2
)
12399 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12403 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
12404 vcopy_laneq_u32 (uint32x2_t __a
, const int __lane1
,
12405 uint32x4_t __b
, const int __lane2
)
12407 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12411 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
12412 vcopy_laneq_u64 (uint64x1_t __a
, const int __lane1
,
12413 uint64x2_t __b
, const int __lane2
)
12415 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12421 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12422 vcopyq_lane_f32 (float32x4_t __a
, const int __lane1
,
12423 float32x2_t __b
, const int __lane2
)
12425 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12429 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
12430 vcopyq_lane_f64 (float64x2_t __a
, const int __lane1
,
12431 float64x1_t __b
, const int __lane2
)
12433 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12437 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
12438 vcopyq_lane_p8 (poly8x16_t __a
, const int __lane1
,
12439 poly8x8_t __b
, const int __lane2
)
12441 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12445 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
12446 vcopyq_lane_p16 (poly16x8_t __a
, const int __lane1
,
12447 poly16x4_t __b
, const int __lane2
)
12449 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12453 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
12454 vcopyq_lane_s8 (int8x16_t __a
, const int __lane1
,
12455 int8x8_t __b
, const int __lane2
)
12457 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12461 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
12462 vcopyq_lane_s16 (int16x8_t __a
, const int __lane1
,
12463 int16x4_t __b
, const int __lane2
)
12465 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12469 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
12470 vcopyq_lane_s32 (int32x4_t __a
, const int __lane1
,
12471 int32x2_t __b
, const int __lane2
)
12473 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12477 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
12478 vcopyq_lane_s64 (int64x2_t __a
, const int __lane1
,
12479 int64x1_t __b
, const int __lane2
)
12481 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12485 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
12486 vcopyq_lane_u8 (uint8x16_t __a
, const int __lane1
,
12487 uint8x8_t __b
, const int __lane2
)
12489 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12493 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
12494 vcopyq_lane_u16 (uint16x8_t __a
, const int __lane1
,
12495 uint16x4_t __b
, const int __lane2
)
12497 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12501 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
12502 vcopyq_lane_u32 (uint32x4_t __a
, const int __lane1
,
12503 uint32x2_t __b
, const int __lane2
)
12505 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12509 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
12510 vcopyq_lane_u64 (uint64x2_t __a
, const int __lane1
,
12511 uint64x1_t __b
, const int __lane2
)
12513 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12517 /* vcopyq_laneq. */
12519 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12520 vcopyq_laneq_f32 (float32x4_t __a
, const int __lane1
,
12521 float32x4_t __b
, const int __lane2
)
12523 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12527 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
12528 vcopyq_laneq_f64 (float64x2_t __a
, const int __lane1
,
12529 float64x2_t __b
, const int __lane2
)
12531 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12535 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
12536 vcopyq_laneq_p8 (poly8x16_t __a
, const int __lane1
,
12537 poly8x16_t __b
, const int __lane2
)
12539 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12543 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
12544 vcopyq_laneq_p16 (poly16x8_t __a
, const int __lane1
,
12545 poly16x8_t __b
, const int __lane2
)
12547 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12551 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
12552 vcopyq_laneq_s8 (int8x16_t __a
, const int __lane1
,
12553 int8x16_t __b
, const int __lane2
)
12555 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12559 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
12560 vcopyq_laneq_s16 (int16x8_t __a
, const int __lane1
,
12561 int16x8_t __b
, const int __lane2
)
12563 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12567 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
12568 vcopyq_laneq_s32 (int32x4_t __a
, const int __lane1
,
12569 int32x4_t __b
, const int __lane2
)
12571 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12575 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
12576 vcopyq_laneq_s64 (int64x2_t __a
, const int __lane1
,
12577 int64x2_t __b
, const int __lane2
)
12579 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12583 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
12584 vcopyq_laneq_u8 (uint8x16_t __a
, const int __lane1
,
12585 uint8x16_t __b
, const int __lane2
)
12587 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12591 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
12592 vcopyq_laneq_u16 (uint16x8_t __a
, const int __lane1
,
12593 uint16x8_t __b
, const int __lane2
)
12595 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12599 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
12600 vcopyq_laneq_u32 (uint32x4_t __a
, const int __lane1
,
12601 uint32x4_t __b
, const int __lane2
)
12603 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12607 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
12608 vcopyq_laneq_u64 (uint64x2_t __a
, const int __lane1
,
12609 uint64x2_t __b
, const int __lane2
)
12611 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b
, __lane2
),
12615 /* vcvt (double -> float). */
12617 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
12618 vcvt_f16_f32 (float32x4_t __a
)
12620 return __builtin_aarch64_float_truncate_lo_v4hf (__a
);
12623 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
12624 vcvt_high_f16_f32 (float16x4_t __a
, float32x4_t __b
)
12626 return __builtin_aarch64_float_truncate_hi_v8hf (__a
, __b
);
12629 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
12630 vcvt_f32_f64 (float64x2_t __a
)
12632 return __builtin_aarch64_float_truncate_lo_v2sf (__a
);
12635 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12636 vcvt_high_f32_f64 (float32x2_t __a
, float64x2_t __b
)
12638 return __builtin_aarch64_float_truncate_hi_v4sf (__a
, __b
);
12641 /* vcvt (float -> double). */
12643 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12644 vcvt_f32_f16 (float16x4_t __a
)
12646 return __builtin_aarch64_float_extend_lo_v4sf (__a
);
12649 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
12650 vcvt_f64_f32 (float32x2_t __a
)
12653 return __builtin_aarch64_float_extend_lo_v2df (__a
);
12656 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12657 vcvt_high_f32_f16 (float16x8_t __a
)
12659 return __builtin_aarch64_vec_unpacks_hi_v8hf (__a
);
12662 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
12663 vcvt_high_f64_f32 (float32x4_t __a
)
12665 return __builtin_aarch64_vec_unpacks_hi_v4sf (__a
);
12668 /* vcvt (<u>fixed-point -> float). */
12670 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
12671 vcvtd_n_f64_s64 (int64_t __a
, const int __b
)
12673 return __builtin_aarch64_scvtfdi (__a
, __b
);
12676 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
12677 vcvtd_n_f64_u64 (uint64_t __a
, const int __b
)
12679 return __builtin_aarch64_ucvtfdi_sus (__a
, __b
);
12682 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
12683 vcvts_n_f32_s32 (int32_t __a
, const int __b
)
12685 return __builtin_aarch64_scvtfsi (__a
, __b
);
12688 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
12689 vcvts_n_f32_u32 (uint32_t __a
, const int __b
)
12691 return __builtin_aarch64_ucvtfsi_sus (__a
, __b
);
12694 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
12695 vcvt_n_f32_s32 (int32x2_t __a
, const int __b
)
12697 return __builtin_aarch64_scvtfv2si (__a
, __b
);
12700 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
12701 vcvt_n_f32_u32 (uint32x2_t __a
, const int __b
)
12703 return __builtin_aarch64_ucvtfv2si_sus (__a
, __b
);
12706 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
12707 vcvt_n_f64_s64 (int64x1_t __a
, const int __b
)
12709 return (float64x1_t
)
12710 { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a
, 0), __b
) };
12713 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
12714 vcvt_n_f64_u64 (uint64x1_t __a
, const int __b
)
12716 return (float64x1_t
)
12717 { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a
, 0), __b
) };
12720 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12721 vcvtq_n_f32_s32 (int32x4_t __a
, const int __b
)
12723 return __builtin_aarch64_scvtfv4si (__a
, __b
);
12726 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12727 vcvtq_n_f32_u32 (uint32x4_t __a
, const int __b
)
12729 return __builtin_aarch64_ucvtfv4si_sus (__a
, __b
);
12732 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
12733 vcvtq_n_f64_s64 (int64x2_t __a
, const int __b
)
12735 return __builtin_aarch64_scvtfv2di (__a
, __b
);
12738 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
12739 vcvtq_n_f64_u64 (uint64x2_t __a
, const int __b
)
12741 return __builtin_aarch64_ucvtfv2di_sus (__a
, __b
);
12744 /* vcvt (float -> <u>fixed-point). */
12746 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
12747 vcvtd_n_s64_f64 (float64_t __a
, const int __b
)
12749 return __builtin_aarch64_fcvtzsdf (__a
, __b
);
12752 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
12753 vcvtd_n_u64_f64 (float64_t __a
, const int __b
)
12755 return __builtin_aarch64_fcvtzudf_uss (__a
, __b
);
12758 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
12759 vcvts_n_s32_f32 (float32_t __a
, const int __b
)
12761 return __builtin_aarch64_fcvtzssf (__a
, __b
);
12764 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
12765 vcvts_n_u32_f32 (float32_t __a
, const int __b
)
12767 return __builtin_aarch64_fcvtzusf_uss (__a
, __b
);
12770 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
12771 vcvt_n_s32_f32 (float32x2_t __a
, const int __b
)
12773 return __builtin_aarch64_fcvtzsv2sf (__a
, __b
);
12776 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
12777 vcvt_n_u32_f32 (float32x2_t __a
, const int __b
)
12779 return __builtin_aarch64_fcvtzuv2sf_uss (__a
, __b
);
12782 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
12783 vcvt_n_s64_f64 (float64x1_t __a
, const int __b
)
12786 { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a
, 0), __b
) };
12789 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
12790 vcvt_n_u64_f64 (float64x1_t __a
, const int __b
)
12792 return (uint64x1_t
)
12793 { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a
, 0), __b
) };
12796 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
12797 vcvtq_n_s32_f32 (float32x4_t __a
, const int __b
)
12799 return __builtin_aarch64_fcvtzsv4sf (__a
, __b
);
12802 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
12803 vcvtq_n_u32_f32 (float32x4_t __a
, const int __b
)
12805 return __builtin_aarch64_fcvtzuv4sf_uss (__a
, __b
);
12808 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
12809 vcvtq_n_s64_f64 (float64x2_t __a
, const int __b
)
12811 return __builtin_aarch64_fcvtzsv2df (__a
, __b
);
12814 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
12815 vcvtq_n_u64_f64 (float64x2_t __a
, const int __b
)
12817 return __builtin_aarch64_fcvtzuv2df_uss (__a
, __b
);
12820 /* vcvt (<u>int -> float) */
12822 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
12823 vcvtd_f64_s64 (int64_t __a
)
12825 return (float64_t
) __a
;
12828 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
12829 vcvtd_f64_u64 (uint64_t __a
)
12831 return (float64_t
) __a
;
12834 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
12835 vcvts_f32_s32 (int32_t __a
)
12837 return (float32_t
) __a
;
12840 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
12841 vcvts_f32_u32 (uint32_t __a
)
12843 return (float32_t
) __a
;
12846 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
12847 vcvt_f32_s32 (int32x2_t __a
)
12849 return __builtin_aarch64_floatv2siv2sf (__a
);
12852 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
12853 vcvt_f32_u32 (uint32x2_t __a
)
12855 return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t
) __a
);
12858 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
12859 vcvt_f64_s64 (int64x1_t __a
)
12861 return (float64x1_t
) { vget_lane_s64 (__a
, 0) };
12864 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
12865 vcvt_f64_u64 (uint64x1_t __a
)
12867 return (float64x1_t
) { vget_lane_u64 (__a
, 0) };
12870 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12871 vcvtq_f32_s32 (int32x4_t __a
)
12873 return __builtin_aarch64_floatv4siv4sf (__a
);
12876 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
12877 vcvtq_f32_u32 (uint32x4_t __a
)
12879 return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t
) __a
);
12882 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
12883 vcvtq_f64_s64 (int64x2_t __a
)
12885 return __builtin_aarch64_floatv2div2df (__a
);
12888 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
12889 vcvtq_f64_u64 (uint64x2_t __a
)
12891 return __builtin_aarch64_floatunsv2div2df ((int64x2_t
) __a
);
12894 /* vcvt (float -> <u>int) */
12896 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
12897 vcvtd_s64_f64 (float64_t __a
)
12899 return (int64_t) __a
;
12902 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
12903 vcvtd_u64_f64 (float64_t __a
)
12905 return (uint64_t) __a
;
12908 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
12909 vcvts_s32_f32 (float32_t __a
)
12911 return (int32_t) __a
;
12914 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
12915 vcvts_u32_f32 (float32_t __a
)
12917 return (uint32_t) __a
;
12920 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
12921 vcvt_s32_f32 (float32x2_t __a
)
12923 return __builtin_aarch64_lbtruncv2sfv2si (__a
);
12926 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
12927 vcvt_u32_f32 (float32x2_t __a
)
12929 return __builtin_aarch64_lbtruncuv2sfv2si_us (__a
);
12932 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
12933 vcvtq_s32_f32 (float32x4_t __a
)
12935 return __builtin_aarch64_lbtruncv4sfv4si (__a
);
12938 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
12939 vcvtq_u32_f32 (float32x4_t __a
)
12941 return __builtin_aarch64_lbtruncuv4sfv4si_us (__a
);
12944 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
12945 vcvt_s64_f64 (float64x1_t __a
)
12947 return (int64x1_t
) {vcvtd_s64_f64 (__a
[0])};
12950 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
12951 vcvt_u64_f64 (float64x1_t __a
)
12953 return (uint64x1_t
) {vcvtd_u64_f64 (__a
[0])};
12956 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
12957 vcvtq_s64_f64 (float64x2_t __a
)
12959 return __builtin_aarch64_lbtruncv2dfv2di (__a
);
12962 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
12963 vcvtq_u64_f64 (float64x2_t __a
)
12965 return __builtin_aarch64_lbtruncuv2dfv2di_us (__a
);
12970 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
12971 vcvtad_s64_f64 (float64_t __a
)
12973 return __builtin_aarch64_lrounddfdi (__a
);
12976 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
12977 vcvtad_u64_f64 (float64_t __a
)
12979 return __builtin_aarch64_lroundudfdi_us (__a
);
12982 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
12983 vcvtas_s32_f32 (float32_t __a
)
12985 return __builtin_aarch64_lroundsfsi (__a
);
12988 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
12989 vcvtas_u32_f32 (float32_t __a
)
12991 return __builtin_aarch64_lroundusfsi_us (__a
);
12994 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
12995 vcvta_s32_f32 (float32x2_t __a
)
12997 return __builtin_aarch64_lroundv2sfv2si (__a
);
13000 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
13001 vcvta_u32_f32 (float32x2_t __a
)
13003 return __builtin_aarch64_lrounduv2sfv2si_us (__a
);
13006 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
13007 vcvtaq_s32_f32 (float32x4_t __a
)
13009 return __builtin_aarch64_lroundv4sfv4si (__a
);
13012 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
13013 vcvtaq_u32_f32 (float32x4_t __a
)
13015 return __builtin_aarch64_lrounduv4sfv4si_us (__a
);
13018 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
13019 vcvta_s64_f64 (float64x1_t __a
)
13021 return (int64x1_t
) {vcvtad_s64_f64 (__a
[0])};
13024 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
13025 vcvta_u64_f64 (float64x1_t __a
)
13027 return (uint64x1_t
) {vcvtad_u64_f64 (__a
[0])};
13030 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
13031 vcvtaq_s64_f64 (float64x2_t __a
)
13033 return __builtin_aarch64_lroundv2dfv2di (__a
);
13036 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
13037 vcvtaq_u64_f64 (float64x2_t __a
)
13039 return __builtin_aarch64_lrounduv2dfv2di_us (__a
);
13044 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
13045 vcvtmd_s64_f64 (float64_t __a
)
13047 return __builtin_llfloor (__a
);
13050 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
13051 vcvtmd_u64_f64 (float64_t __a
)
13053 return __builtin_aarch64_lfloorudfdi_us (__a
);
13056 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
13057 vcvtms_s32_f32 (float32_t __a
)
13059 return __builtin_ifloorf (__a
);
13062 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
13063 vcvtms_u32_f32 (float32_t __a
)
13065 return __builtin_aarch64_lfloorusfsi_us (__a
);
13068 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
13069 vcvtm_s32_f32 (float32x2_t __a
)
13071 return __builtin_aarch64_lfloorv2sfv2si (__a
);
13074 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
13075 vcvtm_u32_f32 (float32x2_t __a
)
13077 return __builtin_aarch64_lflooruv2sfv2si_us (__a
);
13080 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
13081 vcvtmq_s32_f32 (float32x4_t __a
)
13083 return __builtin_aarch64_lfloorv4sfv4si (__a
);
13086 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
13087 vcvtmq_u32_f32 (float32x4_t __a
)
13089 return __builtin_aarch64_lflooruv4sfv4si_us (__a
);
13092 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
13093 vcvtm_s64_f64 (float64x1_t __a
)
13095 return (int64x1_t
) {vcvtmd_s64_f64 (__a
[0])};
13098 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
13099 vcvtm_u64_f64 (float64x1_t __a
)
13101 return (uint64x1_t
) {vcvtmd_u64_f64 (__a
[0])};
13104 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
13105 vcvtmq_s64_f64 (float64x2_t __a
)
13107 return __builtin_aarch64_lfloorv2dfv2di (__a
);
13110 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
13111 vcvtmq_u64_f64 (float64x2_t __a
)
13113 return __builtin_aarch64_lflooruv2dfv2di_us (__a
);
13118 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
13119 vcvtnd_s64_f64 (float64_t __a
)
13121 return __builtin_aarch64_lfrintndfdi (__a
);
13124 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
13125 vcvtnd_u64_f64 (float64_t __a
)
13127 return __builtin_aarch64_lfrintnudfdi_us (__a
);
13130 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
13131 vcvtns_s32_f32 (float32_t __a
)
13133 return __builtin_aarch64_lfrintnsfsi (__a
);
13136 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
13137 vcvtns_u32_f32 (float32_t __a
)
13139 return __builtin_aarch64_lfrintnusfsi_us (__a
);
13142 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
13143 vcvtn_s32_f32 (float32x2_t __a
)
13145 return __builtin_aarch64_lfrintnv2sfv2si (__a
);
13148 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
13149 vcvtn_u32_f32 (float32x2_t __a
)
13151 return __builtin_aarch64_lfrintnuv2sfv2si_us (__a
);
13154 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
13155 vcvtnq_s32_f32 (float32x4_t __a
)
13157 return __builtin_aarch64_lfrintnv4sfv4si (__a
);
13160 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
13161 vcvtnq_u32_f32 (float32x4_t __a
)
13163 return __builtin_aarch64_lfrintnuv4sfv4si_us (__a
);
13166 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
13167 vcvtn_s64_f64 (float64x1_t __a
)
13169 return (int64x1_t
) {vcvtnd_s64_f64 (__a
[0])};
13172 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
13173 vcvtn_u64_f64 (float64x1_t __a
)
13175 return (uint64x1_t
) {vcvtnd_u64_f64 (__a
[0])};
13178 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
13179 vcvtnq_s64_f64 (float64x2_t __a
)
13181 return __builtin_aarch64_lfrintnv2dfv2di (__a
);
13184 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
13185 vcvtnq_u64_f64 (float64x2_t __a
)
13187 return __builtin_aarch64_lfrintnuv2dfv2di_us (__a
);
13192 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
13193 vcvtpd_s64_f64 (float64_t __a
)
13195 return __builtin_llceil (__a
);
13198 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
13199 vcvtpd_u64_f64 (float64_t __a
)
13201 return __builtin_aarch64_lceiludfdi_us (__a
);
13204 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
13205 vcvtps_s32_f32 (float32_t __a
)
13207 return __builtin_iceilf (__a
);
13210 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
13211 vcvtps_u32_f32 (float32_t __a
)
13213 return __builtin_aarch64_lceilusfsi_us (__a
);
13216 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
13217 vcvtp_s32_f32 (float32x2_t __a
)
13219 return __builtin_aarch64_lceilv2sfv2si (__a
);
13222 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
13223 vcvtp_u32_f32 (float32x2_t __a
)
13225 return __builtin_aarch64_lceiluv2sfv2si_us (__a
);
13228 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
13229 vcvtpq_s32_f32 (float32x4_t __a
)
13231 return __builtin_aarch64_lceilv4sfv4si (__a
);
13234 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
13235 vcvtpq_u32_f32 (float32x4_t __a
)
13237 return __builtin_aarch64_lceiluv4sfv4si_us (__a
);
13240 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
13241 vcvtp_s64_f64 (float64x1_t __a
)
13243 return (int64x1_t
) {vcvtpd_s64_f64 (__a
[0])};
13246 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
13247 vcvtp_u64_f64 (float64x1_t __a
)
13249 return (uint64x1_t
) {vcvtpd_u64_f64 (__a
[0])};
13252 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
13253 vcvtpq_s64_f64 (float64x2_t __a
)
13255 return __builtin_aarch64_lceilv2dfv2di (__a
);
13258 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
13259 vcvtpq_u64_f64 (float64x2_t __a
)
13261 return __builtin_aarch64_lceiluv2dfv2di_us (__a
);
13266 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
13267 vdup_n_f16 (float16_t __a
)
13269 return (float16x4_t
) {__a
, __a
, __a
, __a
};
13272 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
13273 vdup_n_f32 (float32_t __a
)
13275 return (float32x2_t
) {__a
, __a
};
13278 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
13279 vdup_n_f64 (float64_t __a
)
13281 return (float64x1_t
) {__a
};
13284 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
13285 vdup_n_p8 (poly8_t __a
)
13287 return (poly8x8_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13290 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
13291 vdup_n_p16 (poly16_t __a
)
13293 return (poly16x4_t
) {__a
, __a
, __a
, __a
};
13296 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
13297 vdup_n_s8 (int8_t __a
)
13299 return (int8x8_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13302 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
13303 vdup_n_s16 (int16_t __a
)
13305 return (int16x4_t
) {__a
, __a
, __a
, __a
};
13308 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
13309 vdup_n_s32 (int32_t __a
)
13311 return (int32x2_t
) {__a
, __a
};
13314 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
13315 vdup_n_s64 (int64_t __a
)
13317 return (int64x1_t
) {__a
};
13320 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
13321 vdup_n_u8 (uint8_t __a
)
13323 return (uint8x8_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13326 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
13327 vdup_n_u16 (uint16_t __a
)
13329 return (uint16x4_t
) {__a
, __a
, __a
, __a
};
13332 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
13333 vdup_n_u32 (uint32_t __a
)
13335 return (uint32x2_t
) {__a
, __a
};
13338 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
13339 vdup_n_u64 (uint64_t __a
)
13341 return (uint64x1_t
) {__a
};
13346 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
13347 vdupq_n_f16 (float16_t __a
)
13349 return (float16x8_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13352 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
13353 vdupq_n_f32 (float32_t __a
)
13355 return (float32x4_t
) {__a
, __a
, __a
, __a
};
13358 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
13359 vdupq_n_f64 (float64_t __a
)
13361 return (float64x2_t
) {__a
, __a
};
13364 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
13365 vdupq_n_p8 (uint32_t __a
)
13367 return (poly8x16_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
,
13368 __a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13371 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
13372 vdupq_n_p16 (uint32_t __a
)
13374 return (poly16x8_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13377 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
13378 vdupq_n_s8 (int32_t __a
)
13380 return (int8x16_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
,
13381 __a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13384 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
13385 vdupq_n_s16 (int32_t __a
)
13387 return (int16x8_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13390 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
13391 vdupq_n_s32 (int32_t __a
)
13393 return (int32x4_t
) {__a
, __a
, __a
, __a
};
13396 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
13397 vdupq_n_s64 (int64_t __a
)
13399 return (int64x2_t
) {__a
, __a
};
13402 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
13403 vdupq_n_u8 (uint32_t __a
)
13405 return (uint8x16_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
,
13406 __a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13409 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
13410 vdupq_n_u16 (uint32_t __a
)
13412 return (uint16x8_t
) {__a
, __a
, __a
, __a
, __a
, __a
, __a
, __a
};
13415 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
13416 vdupq_n_u32 (uint32_t __a
)
13418 return (uint32x4_t
) {__a
, __a
, __a
, __a
};
13421 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
13422 vdupq_n_u64 (uint64_t __a
)
13424 return (uint64x2_t
) {__a
, __a
};
13429 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
13430 vdup_lane_f16 (float16x4_t __a
, const int __b
)
13432 return __aarch64_vdup_lane_f16 (__a
, __b
);
13435 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
13436 vdup_lane_f32 (float32x2_t __a
, const int __b
)
13438 return __aarch64_vdup_lane_f32 (__a
, __b
);
13441 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
13442 vdup_lane_f64 (float64x1_t __a
, const int __b
)
13444 return __aarch64_vdup_lane_f64 (__a
, __b
);
13447 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
13448 vdup_lane_p8 (poly8x8_t __a
, const int __b
)
13450 return __aarch64_vdup_lane_p8 (__a
, __b
);
13453 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
13454 vdup_lane_p16 (poly16x4_t __a
, const int __b
)
13456 return __aarch64_vdup_lane_p16 (__a
, __b
);
13459 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
13460 vdup_lane_s8 (int8x8_t __a
, const int __b
)
13462 return __aarch64_vdup_lane_s8 (__a
, __b
);
13465 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
13466 vdup_lane_s16 (int16x4_t __a
, const int __b
)
13468 return __aarch64_vdup_lane_s16 (__a
, __b
);
13471 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
13472 vdup_lane_s32 (int32x2_t __a
, const int __b
)
13474 return __aarch64_vdup_lane_s32 (__a
, __b
);
13477 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
13478 vdup_lane_s64 (int64x1_t __a
, const int __b
)
13480 return __aarch64_vdup_lane_s64 (__a
, __b
);
13483 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
13484 vdup_lane_u8 (uint8x8_t __a
, const int __b
)
13486 return __aarch64_vdup_lane_u8 (__a
, __b
);
13489 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
13490 vdup_lane_u16 (uint16x4_t __a
, const int __b
)
13492 return __aarch64_vdup_lane_u16 (__a
, __b
);
13495 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
13496 vdup_lane_u32 (uint32x2_t __a
, const int __b
)
13498 return __aarch64_vdup_lane_u32 (__a
, __b
);
13501 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
13502 vdup_lane_u64 (uint64x1_t __a
, const int __b
)
13504 return __aarch64_vdup_lane_u64 (__a
, __b
);
13509 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
13510 vdup_laneq_f16 (float16x8_t __a
, const int __b
)
13512 return __aarch64_vdup_laneq_f16 (__a
, __b
);
13515 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
13516 vdup_laneq_f32 (float32x4_t __a
, const int __b
)
13518 return __aarch64_vdup_laneq_f32 (__a
, __b
);
13521 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
13522 vdup_laneq_f64 (float64x2_t __a
, const int __b
)
13524 return __aarch64_vdup_laneq_f64 (__a
, __b
);
13527 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
13528 vdup_laneq_p8 (poly8x16_t __a
, const int __b
)
13530 return __aarch64_vdup_laneq_p8 (__a
, __b
);
13533 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
13534 vdup_laneq_p16 (poly16x8_t __a
, const int __b
)
13536 return __aarch64_vdup_laneq_p16 (__a
, __b
);
13539 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
13540 vdup_laneq_s8 (int8x16_t __a
, const int __b
)
13542 return __aarch64_vdup_laneq_s8 (__a
, __b
);
13545 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
13546 vdup_laneq_s16 (int16x8_t __a
, const int __b
)
13548 return __aarch64_vdup_laneq_s16 (__a
, __b
);
13551 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
13552 vdup_laneq_s32 (int32x4_t __a
, const int __b
)
13554 return __aarch64_vdup_laneq_s32 (__a
, __b
);
13557 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
13558 vdup_laneq_s64 (int64x2_t __a
, const int __b
)
13560 return __aarch64_vdup_laneq_s64 (__a
, __b
);
13563 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
13564 vdup_laneq_u8 (uint8x16_t __a
, const int __b
)
13566 return __aarch64_vdup_laneq_u8 (__a
, __b
);
13569 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
13570 vdup_laneq_u16 (uint16x8_t __a
, const int __b
)
13572 return __aarch64_vdup_laneq_u16 (__a
, __b
);
13575 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
13576 vdup_laneq_u32 (uint32x4_t __a
, const int __b
)
13578 return __aarch64_vdup_laneq_u32 (__a
, __b
);
13581 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
13582 vdup_laneq_u64 (uint64x2_t __a
, const int __b
)
13584 return __aarch64_vdup_laneq_u64 (__a
, __b
);
13589 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
13590 vdupq_lane_f16 (float16x4_t __a
, const int __b
)
13592 return __aarch64_vdupq_lane_f16 (__a
, __b
);
13595 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
13596 vdupq_lane_f32 (float32x2_t __a
, const int __b
)
13598 return __aarch64_vdupq_lane_f32 (__a
, __b
);
13601 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
13602 vdupq_lane_f64 (float64x1_t __a
, const int __b
)
13604 return __aarch64_vdupq_lane_f64 (__a
, __b
);
13607 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
13608 vdupq_lane_p8 (poly8x8_t __a
, const int __b
)
13610 return __aarch64_vdupq_lane_p8 (__a
, __b
);
13613 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
13614 vdupq_lane_p16 (poly16x4_t __a
, const int __b
)
13616 return __aarch64_vdupq_lane_p16 (__a
, __b
);
13619 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
13620 vdupq_lane_s8 (int8x8_t __a
, const int __b
)
13622 return __aarch64_vdupq_lane_s8 (__a
, __b
);
13625 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
13626 vdupq_lane_s16 (int16x4_t __a
, const int __b
)
13628 return __aarch64_vdupq_lane_s16 (__a
, __b
);
13631 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
13632 vdupq_lane_s32 (int32x2_t __a
, const int __b
)
13634 return __aarch64_vdupq_lane_s32 (__a
, __b
);
13637 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
13638 vdupq_lane_s64 (int64x1_t __a
, const int __b
)
13640 return __aarch64_vdupq_lane_s64 (__a
, __b
);
13643 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
13644 vdupq_lane_u8 (uint8x8_t __a
, const int __b
)
13646 return __aarch64_vdupq_lane_u8 (__a
, __b
);
13649 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
13650 vdupq_lane_u16 (uint16x4_t __a
, const int __b
)
13652 return __aarch64_vdupq_lane_u16 (__a
, __b
);
13655 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
13656 vdupq_lane_u32 (uint32x2_t __a
, const int __b
)
13658 return __aarch64_vdupq_lane_u32 (__a
, __b
);
13661 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
13662 vdupq_lane_u64 (uint64x1_t __a
, const int __b
)
13664 return __aarch64_vdupq_lane_u64 (__a
, __b
);
13669 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
13670 vdupq_laneq_f16 (float16x8_t __a
, const int __b
)
13672 return __aarch64_vdupq_laneq_f16 (__a
, __b
);
13675 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
13676 vdupq_laneq_f32 (float32x4_t __a
, const int __b
)
13678 return __aarch64_vdupq_laneq_f32 (__a
, __b
);
13681 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
13682 vdupq_laneq_f64 (float64x2_t __a
, const int __b
)
13684 return __aarch64_vdupq_laneq_f64 (__a
, __b
);
13687 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
13688 vdupq_laneq_p8 (poly8x16_t __a
, const int __b
)
13690 return __aarch64_vdupq_laneq_p8 (__a
, __b
);
13693 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
13694 vdupq_laneq_p16 (poly16x8_t __a
, const int __b
)
13696 return __aarch64_vdupq_laneq_p16 (__a
, __b
);
13699 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
13700 vdupq_laneq_s8 (int8x16_t __a
, const int __b
)
13702 return __aarch64_vdupq_laneq_s8 (__a
, __b
);
13705 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
13706 vdupq_laneq_s16 (int16x8_t __a
, const int __b
)
13708 return __aarch64_vdupq_laneq_s16 (__a
, __b
);
13711 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
13712 vdupq_laneq_s32 (int32x4_t __a
, const int __b
)
13714 return __aarch64_vdupq_laneq_s32 (__a
, __b
);
13717 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
13718 vdupq_laneq_s64 (int64x2_t __a
, const int __b
)
13720 return __aarch64_vdupq_laneq_s64 (__a
, __b
);
13723 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
13724 vdupq_laneq_u8 (uint8x16_t __a
, const int __b
)
13726 return __aarch64_vdupq_laneq_u8 (__a
, __b
);
13729 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
13730 vdupq_laneq_u16 (uint16x8_t __a
, const int __b
)
13732 return __aarch64_vdupq_laneq_u16 (__a
, __b
);
13735 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
13736 vdupq_laneq_u32 (uint32x4_t __a
, const int __b
)
13738 return __aarch64_vdupq_laneq_u32 (__a
, __b
);
13741 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
13742 vdupq_laneq_u64 (uint64x2_t __a
, const int __b
)
13744 return __aarch64_vdupq_laneq_u64 (__a
, __b
);
13748 __extension__
static __inline poly8_t
__attribute__ ((__always_inline__
))
13749 vdupb_lane_p8 (poly8x8_t __a
, const int __b
)
13751 return __aarch64_vget_lane_any (__a
, __b
);
13754 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
13755 vdupb_lane_s8 (int8x8_t __a
, const int __b
)
13757 return __aarch64_vget_lane_any (__a
, __b
);
13760 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
13761 vdupb_lane_u8 (uint8x8_t __a
, const int __b
)
13763 return __aarch64_vget_lane_any (__a
, __b
);
13768 __extension__
static __inline float16_t
__attribute__ ((__always_inline__
))
13769 vduph_lane_f16 (float16x4_t __a
, const int __b
)
13771 return __aarch64_vget_lane_any (__a
, __b
);
13774 __extension__
static __inline poly16_t
__attribute__ ((__always_inline__
))
13775 vduph_lane_p16 (poly16x4_t __a
, const int __b
)
13777 return __aarch64_vget_lane_any (__a
, __b
);
13780 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
13781 vduph_lane_s16 (int16x4_t __a
, const int __b
)
13783 return __aarch64_vget_lane_any (__a
, __b
);
13786 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
13787 vduph_lane_u16 (uint16x4_t __a
, const int __b
)
13789 return __aarch64_vget_lane_any (__a
, __b
);
13794 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
13795 vdups_lane_f32 (float32x2_t __a
, const int __b
)
13797 return __aarch64_vget_lane_any (__a
, __b
);
13800 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
13801 vdups_lane_s32 (int32x2_t __a
, const int __b
)
13803 return __aarch64_vget_lane_any (__a
, __b
);
13806 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
13807 vdups_lane_u32 (uint32x2_t __a
, const int __b
)
13809 return __aarch64_vget_lane_any (__a
, __b
);
13813 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
13814 vdupd_lane_f64 (float64x1_t __a
, const int __b
)
13816 __AARCH64_LANE_CHECK (__a
, __b
);
13820 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
13821 vdupd_lane_s64 (int64x1_t __a
, const int __b
)
13823 __AARCH64_LANE_CHECK (__a
, __b
);
13827 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
13828 vdupd_lane_u64 (uint64x1_t __a
, const int __b
)
13830 __AARCH64_LANE_CHECK (__a
, __b
);
13835 __extension__
static __inline poly8_t
__attribute__ ((__always_inline__
))
13836 vdupb_laneq_p8 (poly8x16_t __a
, const int __b
)
13838 return __aarch64_vget_lane_any (__a
, __b
);
13841 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
13842 vdupb_laneq_s8 (int8x16_t __a
, const int __b
)
13844 return __aarch64_vget_lane_any (__a
, __b
);
13847 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
13848 vdupb_laneq_u8 (uint8x16_t __a
, const int __b
)
13850 return __aarch64_vget_lane_any (__a
, __b
);
13855 __extension__
static __inline float16_t
__attribute__ ((__always_inline__
))
13856 vduph_laneq_f16 (float16x8_t __a
, const int __b
)
13858 return __aarch64_vget_lane_any (__a
, __b
);
13861 __extension__
static __inline poly16_t
__attribute__ ((__always_inline__
))
13862 vduph_laneq_p16 (poly16x8_t __a
, const int __b
)
13864 return __aarch64_vget_lane_any (__a
, __b
);
13867 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
13868 vduph_laneq_s16 (int16x8_t __a
, const int __b
)
13870 return __aarch64_vget_lane_any (__a
, __b
);
13873 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
13874 vduph_laneq_u16 (uint16x8_t __a
, const int __b
)
13876 return __aarch64_vget_lane_any (__a
, __b
);
13881 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
13882 vdups_laneq_f32 (float32x4_t __a
, const int __b
)
13884 return __aarch64_vget_lane_any (__a
, __b
);
13887 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
13888 vdups_laneq_s32 (int32x4_t __a
, const int __b
)
13890 return __aarch64_vget_lane_any (__a
, __b
);
13893 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
13894 vdups_laneq_u32 (uint32x4_t __a
, const int __b
)
13896 return __aarch64_vget_lane_any (__a
, __b
);
13900 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
13901 vdupd_laneq_f64 (float64x2_t __a
, const int __b
)
13903 return __aarch64_vget_lane_any (__a
, __b
);
13906 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
13907 vdupd_laneq_s64 (int64x2_t __a
, const int __b
)
13909 return __aarch64_vget_lane_any (__a
, __b
);
13912 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
13913 vdupd_laneq_u64 (uint64x2_t __a
, const int __b
)
13915 return __aarch64_vget_lane_any (__a
, __b
);
13920 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
13921 vext_f16 (float16x4_t __a
, float16x4_t __b
, __const
int __c
)
13923 __AARCH64_LANE_CHECK (__a
, __c
);
13924 #ifdef __AARCH64EB__
13925 return __builtin_shuffle (__b
, __a
,
13926 (uint16x4_t
) {4 - __c
, 5 - __c
, 6 - __c
, 7 - __c
});
13928 return __builtin_shuffle (__a
, __b
,
13929 (uint16x4_t
) {__c
, __c
+ 1, __c
+ 2, __c
+ 3});
13933 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
13934 vext_f32 (float32x2_t __a
, float32x2_t __b
, __const
int __c
)
13936 __AARCH64_LANE_CHECK (__a
, __c
);
13937 #ifdef __AARCH64EB__
13938 return __builtin_shuffle (__b
, __a
, (uint32x2_t
) {2-__c
, 3-__c
});
13940 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {__c
, __c
+1});
13944 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
13945 vext_f64 (float64x1_t __a
, float64x1_t __b
, __const
int __c
)
13947 __AARCH64_LANE_CHECK (__a
, __c
);
13948 /* The only possible index to the assembler instruction returns element 0. */
13951 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
13952 vext_p8 (poly8x8_t __a
, poly8x8_t __b
, __const
int __c
)
13954 __AARCH64_LANE_CHECK (__a
, __c
);
13955 #ifdef __AARCH64EB__
13956 return __builtin_shuffle (__b
, __a
, (uint8x8_t
)
13957 {8-__c
, 9-__c
, 10-__c
, 11-__c
, 12-__c
, 13-__c
, 14-__c
, 15-__c
});
13959 return __builtin_shuffle (__a
, __b
,
13960 (uint8x8_t
) {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7});
13964 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
13965 vext_p16 (poly16x4_t __a
, poly16x4_t __b
, __const
int __c
)
13967 __AARCH64_LANE_CHECK (__a
, __c
);
13968 #ifdef __AARCH64EB__
13969 return __builtin_shuffle (__b
, __a
,
13970 (uint16x4_t
) {4-__c
, 5-__c
, 6-__c
, 7-__c
});
13972 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {__c
, __c
+1, __c
+2, __c
+3});
13976 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
13977 vext_s8 (int8x8_t __a
, int8x8_t __b
, __const
int __c
)
13979 __AARCH64_LANE_CHECK (__a
, __c
);
13980 #ifdef __AARCH64EB__
13981 return __builtin_shuffle (__b
, __a
, (uint8x8_t
)
13982 {8-__c
, 9-__c
, 10-__c
, 11-__c
, 12-__c
, 13-__c
, 14-__c
, 15-__c
});
13984 return __builtin_shuffle (__a
, __b
,
13985 (uint8x8_t
) {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7});
13989 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
13990 vext_s16 (int16x4_t __a
, int16x4_t __b
, __const
int __c
)
13992 __AARCH64_LANE_CHECK (__a
, __c
);
13993 #ifdef __AARCH64EB__
13994 return __builtin_shuffle (__b
, __a
,
13995 (uint16x4_t
) {4-__c
, 5-__c
, 6-__c
, 7-__c
});
13997 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {__c
, __c
+1, __c
+2, __c
+3});
14001 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
14002 vext_s32 (int32x2_t __a
, int32x2_t __b
, __const
int __c
)
14004 __AARCH64_LANE_CHECK (__a
, __c
);
14005 #ifdef __AARCH64EB__
14006 return __builtin_shuffle (__b
, __a
, (uint32x2_t
) {2-__c
, 3-__c
});
14008 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {__c
, __c
+1});
14012 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
14013 vext_s64 (int64x1_t __a
, int64x1_t __b
, __const
int __c
)
14015 __AARCH64_LANE_CHECK (__a
, __c
);
14016 /* The only possible index to the assembler instruction returns element 0. */
14020 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
14021 vext_u8 (uint8x8_t __a
, uint8x8_t __b
, __const
int __c
)
14023 __AARCH64_LANE_CHECK (__a
, __c
);
14024 #ifdef __AARCH64EB__
14025 return __builtin_shuffle (__b
, __a
, (uint8x8_t
)
14026 {8-__c
, 9-__c
, 10-__c
, 11-__c
, 12-__c
, 13-__c
, 14-__c
, 15-__c
});
14028 return __builtin_shuffle (__a
, __b
,
14029 (uint8x8_t
) {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7});
14033 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
14034 vext_u16 (uint16x4_t __a
, uint16x4_t __b
, __const
int __c
)
14036 __AARCH64_LANE_CHECK (__a
, __c
);
14037 #ifdef __AARCH64EB__
14038 return __builtin_shuffle (__b
, __a
,
14039 (uint16x4_t
) {4-__c
, 5-__c
, 6-__c
, 7-__c
});
14041 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {__c
, __c
+1, __c
+2, __c
+3});
14045 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
14046 vext_u32 (uint32x2_t __a
, uint32x2_t __b
, __const
int __c
)
14048 __AARCH64_LANE_CHECK (__a
, __c
);
14049 #ifdef __AARCH64EB__
14050 return __builtin_shuffle (__b
, __a
, (uint32x2_t
) {2-__c
, 3-__c
});
14052 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {__c
, __c
+1});
14056 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
14057 vext_u64 (uint64x1_t __a
, uint64x1_t __b
, __const
int __c
)
14059 __AARCH64_LANE_CHECK (__a
, __c
);
14060 /* The only possible index to the assembler instruction returns element 0. */
14064 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
14065 vextq_f16 (float16x8_t __a
, float16x8_t __b
, __const
int __c
)
14067 __AARCH64_LANE_CHECK (__a
, __c
);
14068 #ifdef __AARCH64EB__
14069 return __builtin_shuffle (__b
, __a
,
14070 (uint16x8_t
) {8 - __c
, 9 - __c
, 10 - __c
, 11 - __c
,
14071 12 - __c
, 13 - __c
, 14 - __c
,
14074 return __builtin_shuffle (__a
, __b
,
14075 (uint16x8_t
) {__c
, __c
+ 1, __c
+ 2, __c
+ 3,
14076 __c
+ 4, __c
+ 5, __c
+ 6, __c
+ 7});
14080 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14081 vextq_f32 (float32x4_t __a
, float32x4_t __b
, __const
int __c
)
14083 __AARCH64_LANE_CHECK (__a
, __c
);
14084 #ifdef __AARCH64EB__
14085 return __builtin_shuffle (__b
, __a
,
14086 (uint32x4_t
) {4-__c
, 5-__c
, 6-__c
, 7-__c
});
14088 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {__c
, __c
+1, __c
+2, __c
+3});
14092 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14093 vextq_f64 (float64x2_t __a
, float64x2_t __b
, __const
int __c
)
14095 __AARCH64_LANE_CHECK (__a
, __c
);
14096 #ifdef __AARCH64EB__
14097 return __builtin_shuffle (__b
, __a
, (uint64x2_t
) {2-__c
, 3-__c
});
14099 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {__c
, __c
+1});
14103 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
14104 vextq_p8 (poly8x16_t __a
, poly8x16_t __b
, __const
int __c
)
14106 __AARCH64_LANE_CHECK (__a
, __c
);
14107 #ifdef __AARCH64EB__
14108 return __builtin_shuffle (__b
, __a
, (uint8x16_t
)
14109 {16-__c
, 17-__c
, 18-__c
, 19-__c
, 20-__c
, 21-__c
, 22-__c
, 23-__c
,
14110 24-__c
, 25-__c
, 26-__c
, 27-__c
, 28-__c
, 29-__c
, 30-__c
, 31-__c
});
14112 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
14113 {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7,
14114 __c
+8, __c
+9, __c
+10, __c
+11, __c
+12, __c
+13, __c
+14, __c
+15});
14118 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
14119 vextq_p16 (poly16x8_t __a
, poly16x8_t __b
, __const
int __c
)
14121 __AARCH64_LANE_CHECK (__a
, __c
);
14122 #ifdef __AARCH64EB__
14123 return __builtin_shuffle (__b
, __a
, (uint16x8_t
)
14124 {8-__c
, 9-__c
, 10-__c
, 11-__c
, 12-__c
, 13-__c
, 14-__c
, 15-__c
});
14126 return __builtin_shuffle (__a
, __b
,
14127 (uint16x8_t
) {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7});
14131 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
14132 vextq_s8 (int8x16_t __a
, int8x16_t __b
, __const
int __c
)
14134 __AARCH64_LANE_CHECK (__a
, __c
);
14135 #ifdef __AARCH64EB__
14136 return __builtin_shuffle (__b
, __a
, (uint8x16_t
)
14137 {16-__c
, 17-__c
, 18-__c
, 19-__c
, 20-__c
, 21-__c
, 22-__c
, 23-__c
,
14138 24-__c
, 25-__c
, 26-__c
, 27-__c
, 28-__c
, 29-__c
, 30-__c
, 31-__c
});
14140 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
14141 {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7,
14142 __c
+8, __c
+9, __c
+10, __c
+11, __c
+12, __c
+13, __c
+14, __c
+15});
14146 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
14147 vextq_s16 (int16x8_t __a
, int16x8_t __b
, __const
int __c
)
14149 __AARCH64_LANE_CHECK (__a
, __c
);
14150 #ifdef __AARCH64EB__
14151 return __builtin_shuffle (__b
, __a
, (uint16x8_t
)
14152 {8-__c
, 9-__c
, 10-__c
, 11-__c
, 12-__c
, 13-__c
, 14-__c
, 15-__c
});
14154 return __builtin_shuffle (__a
, __b
,
14155 (uint16x8_t
) {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7});
14159 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
14160 vextq_s32 (int32x4_t __a
, int32x4_t __b
, __const
int __c
)
14162 __AARCH64_LANE_CHECK (__a
, __c
);
14163 #ifdef __AARCH64EB__
14164 return __builtin_shuffle (__b
, __a
,
14165 (uint32x4_t
) {4-__c
, 5-__c
, 6-__c
, 7-__c
});
14167 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {__c
, __c
+1, __c
+2, __c
+3});
14171 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
14172 vextq_s64 (int64x2_t __a
, int64x2_t __b
, __const
int __c
)
14174 __AARCH64_LANE_CHECK (__a
, __c
);
14175 #ifdef __AARCH64EB__
14176 return __builtin_shuffle (__b
, __a
, (uint64x2_t
) {2-__c
, 3-__c
});
14178 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {__c
, __c
+1});
14182 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
14183 vextq_u8 (uint8x16_t __a
, uint8x16_t __b
, __const
int __c
)
14185 __AARCH64_LANE_CHECK (__a
, __c
);
14186 #ifdef __AARCH64EB__
14187 return __builtin_shuffle (__b
, __a
, (uint8x16_t
)
14188 {16-__c
, 17-__c
, 18-__c
, 19-__c
, 20-__c
, 21-__c
, 22-__c
, 23-__c
,
14189 24-__c
, 25-__c
, 26-__c
, 27-__c
, 28-__c
, 29-__c
, 30-__c
, 31-__c
});
14191 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
14192 {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7,
14193 __c
+8, __c
+9, __c
+10, __c
+11, __c
+12, __c
+13, __c
+14, __c
+15});
14197 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
14198 vextq_u16 (uint16x8_t __a
, uint16x8_t __b
, __const
int __c
)
14200 __AARCH64_LANE_CHECK (__a
, __c
);
14201 #ifdef __AARCH64EB__
14202 return __builtin_shuffle (__b
, __a
, (uint16x8_t
)
14203 {8-__c
, 9-__c
, 10-__c
, 11-__c
, 12-__c
, 13-__c
, 14-__c
, 15-__c
});
14205 return __builtin_shuffle (__a
, __b
,
14206 (uint16x8_t
) {__c
, __c
+1, __c
+2, __c
+3, __c
+4, __c
+5, __c
+6, __c
+7});
14210 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
14211 vextq_u32 (uint32x4_t __a
, uint32x4_t __b
, __const
int __c
)
14213 __AARCH64_LANE_CHECK (__a
, __c
);
14214 #ifdef __AARCH64EB__
14215 return __builtin_shuffle (__b
, __a
,
14216 (uint32x4_t
) {4-__c
, 5-__c
, 6-__c
, 7-__c
});
14218 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {__c
, __c
+1, __c
+2, __c
+3});
14222 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
14223 vextq_u64 (uint64x2_t __a
, uint64x2_t __b
, __const
int __c
)
14225 __AARCH64_LANE_CHECK (__a
, __c
);
14226 #ifdef __AARCH64EB__
14227 return __builtin_shuffle (__b
, __a
, (uint64x2_t
) {2-__c
, 3-__c
});
14229 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {__c
, __c
+1});
14235 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14236 vfma_f64 (float64x1_t __a
, float64x1_t __b
, float64x1_t __c
)
14238 return (float64x1_t
) {__builtin_fma (__b
[0], __c
[0], __a
[0])};
14241 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14242 vfma_f32 (float32x2_t __a
, float32x2_t __b
, float32x2_t __c
)
14244 return __builtin_aarch64_fmav2sf (__b
, __c
, __a
);
14247 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14248 vfmaq_f32 (float32x4_t __a
, float32x4_t __b
, float32x4_t __c
)
14250 return __builtin_aarch64_fmav4sf (__b
, __c
, __a
);
14253 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14254 vfmaq_f64 (float64x2_t __a
, float64x2_t __b
, float64x2_t __c
)
14256 return __builtin_aarch64_fmav2df (__b
, __c
, __a
);
14259 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14260 vfma_n_f32 (float32x2_t __a
, float32x2_t __b
, float32_t __c
)
14262 return __builtin_aarch64_fmav2sf (__b
, vdup_n_f32 (__c
), __a
);
14265 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14266 vfma_n_f64 (float64x1_t __a
, float64x1_t __b
, float64_t __c
)
14268 return (float64x1_t
) {__b
[0] * __c
+ __a
[0]};
14271 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14272 vfmaq_n_f32 (float32x4_t __a
, float32x4_t __b
, float32_t __c
)
14274 return __builtin_aarch64_fmav4sf (__b
, vdupq_n_f32 (__c
), __a
);
14277 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14278 vfmaq_n_f64 (float64x2_t __a
, float64x2_t __b
, float64_t __c
)
14280 return __builtin_aarch64_fmav2df (__b
, vdupq_n_f64 (__c
), __a
);
14285 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14286 vfma_lane_f32 (float32x2_t __a
, float32x2_t __b
,
14287 float32x2_t __c
, const int __lane
)
14289 return __builtin_aarch64_fmav2sf (__b
,
14290 __aarch64_vdup_lane_f32 (__c
, __lane
),
14294 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14295 vfma_lane_f64 (float64x1_t __a
, float64x1_t __b
,
14296 float64x1_t __c
, const int __lane
)
14298 return (float64x1_t
) {__builtin_fma (__b
[0], __c
[0], __a
[0])};
14301 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
14302 vfmad_lane_f64 (float64_t __a
, float64_t __b
,
14303 float64x1_t __c
, const int __lane
)
14305 return __builtin_fma (__b
, __c
[0], __a
);
14308 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
14309 vfmas_lane_f32 (float32_t __a
, float32_t __b
,
14310 float32x2_t __c
, const int __lane
)
14312 return __builtin_fmaf (__b
, __aarch64_vget_lane_any (__c
, __lane
), __a
);
14317 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14318 vfma_laneq_f32 (float32x2_t __a
, float32x2_t __b
,
14319 float32x4_t __c
, const int __lane
)
14321 return __builtin_aarch64_fmav2sf (__b
,
14322 __aarch64_vdup_laneq_f32 (__c
, __lane
),
14326 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14327 vfma_laneq_f64 (float64x1_t __a
, float64x1_t __b
,
14328 float64x2_t __c
, const int __lane
)
14330 float64_t __c0
= __aarch64_vget_lane_any (__c
, __lane
);
14331 return (float64x1_t
) {__builtin_fma (__b
[0], __c0
, __a
[0])};
14334 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
14335 vfmad_laneq_f64 (float64_t __a
, float64_t __b
,
14336 float64x2_t __c
, const int __lane
)
14338 return __builtin_fma (__b
, __aarch64_vget_lane_any (__c
, __lane
), __a
);
14341 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
14342 vfmas_laneq_f32 (float32_t __a
, float32_t __b
,
14343 float32x4_t __c
, const int __lane
)
14345 return __builtin_fmaf (__b
, __aarch64_vget_lane_any (__c
, __lane
), __a
);
14350 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14351 vfmaq_lane_f32 (float32x4_t __a
, float32x4_t __b
,
14352 float32x2_t __c
, const int __lane
)
14354 return __builtin_aarch64_fmav4sf (__b
,
14355 __aarch64_vdupq_lane_f32 (__c
, __lane
),
14359 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14360 vfmaq_lane_f64 (float64x2_t __a
, float64x2_t __b
,
14361 float64x1_t __c
, const int __lane
)
14363 return __builtin_aarch64_fmav2df (__b
, vdupq_n_f64 (__c
[0]), __a
);
14368 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14369 vfmaq_laneq_f32 (float32x4_t __a
, float32x4_t __b
,
14370 float32x4_t __c
, const int __lane
)
14372 return __builtin_aarch64_fmav4sf (__b
,
14373 __aarch64_vdupq_laneq_f32 (__c
, __lane
),
14377 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14378 vfmaq_laneq_f64 (float64x2_t __a
, float64x2_t __b
,
14379 float64x2_t __c
, const int __lane
)
14381 return __builtin_aarch64_fmav2df (__b
,
14382 __aarch64_vdupq_laneq_f64 (__c
, __lane
),
14388 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14389 vfms_f64 (float64x1_t __a
, float64x1_t __b
, float64x1_t __c
)
14391 return (float64x1_t
) {__builtin_fma (-__b
[0], __c
[0], __a
[0])};
14394 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14395 vfms_f32 (float32x2_t __a
, float32x2_t __b
, float32x2_t __c
)
14397 return __builtin_aarch64_fmav2sf (-__b
, __c
, __a
);
14400 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14401 vfmsq_f32 (float32x4_t __a
, float32x4_t __b
, float32x4_t __c
)
14403 return __builtin_aarch64_fmav4sf (-__b
, __c
, __a
);
14406 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14407 vfmsq_f64 (float64x2_t __a
, float64x2_t __b
, float64x2_t __c
)
14409 return __builtin_aarch64_fmav2df (-__b
, __c
, __a
);
14412 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14413 vfms_n_f32 (float32x2_t __a
, float32x2_t __b
, float32_t __c
)
14415 return __builtin_aarch64_fmav2sf (-__b
, vdup_n_f32 (__c
), __a
);
14418 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14419 vfms_n_f64 (float64x1_t __a
, float64x1_t __b
, float64_t __c
)
14421 return (float64x1_t
) {-__b
[0] * __c
+ __a
[0]};
14424 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14425 vfmsq_n_f32 (float32x4_t __a
, float32x4_t __b
, float32_t __c
)
14427 return __builtin_aarch64_fmav4sf (-__b
, vdupq_n_f32 (__c
), __a
);
14430 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14431 vfmsq_n_f64 (float64x2_t __a
, float64x2_t __b
, float64_t __c
)
14433 return __builtin_aarch64_fmav2df (-__b
, vdupq_n_f64 (__c
), __a
);
14438 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14439 vfms_lane_f32 (float32x2_t __a
, float32x2_t __b
,
14440 float32x2_t __c
, const int __lane
)
14442 return __builtin_aarch64_fmav2sf (-__b
,
14443 __aarch64_vdup_lane_f32 (__c
, __lane
),
14447 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14448 vfms_lane_f64 (float64x1_t __a
, float64x1_t __b
,
14449 float64x1_t __c
, const int __lane
)
14451 return (float64x1_t
) {__builtin_fma (-__b
[0], __c
[0], __a
[0])};
14454 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
14455 vfmsd_lane_f64 (float64_t __a
, float64_t __b
,
14456 float64x1_t __c
, const int __lane
)
14458 return __builtin_fma (-__b
, __c
[0], __a
);
14461 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
14462 vfmss_lane_f32 (float32_t __a
, float32_t __b
,
14463 float32x2_t __c
, const int __lane
)
14465 return __builtin_fmaf (-__b
, __aarch64_vget_lane_any (__c
, __lane
), __a
);
14470 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14471 vfms_laneq_f32 (float32x2_t __a
, float32x2_t __b
,
14472 float32x4_t __c
, const int __lane
)
14474 return __builtin_aarch64_fmav2sf (-__b
,
14475 __aarch64_vdup_laneq_f32 (__c
, __lane
),
14479 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14480 vfms_laneq_f64 (float64x1_t __a
, float64x1_t __b
,
14481 float64x2_t __c
, const int __lane
)
14483 float64_t __c0
= __aarch64_vget_lane_any (__c
, __lane
);
14484 return (float64x1_t
) {__builtin_fma (-__b
[0], __c0
, __a
[0])};
14487 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
14488 vfmsd_laneq_f64 (float64_t __a
, float64_t __b
,
14489 float64x2_t __c
, const int __lane
)
14491 return __builtin_fma (-__b
, __aarch64_vget_lane_any (__c
, __lane
), __a
);
14494 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
14495 vfmss_laneq_f32 (float32_t __a
, float32_t __b
,
14496 float32x4_t __c
, const int __lane
)
14498 return __builtin_fmaf (-__b
, __aarch64_vget_lane_any (__c
, __lane
), __a
);
14503 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14504 vfmsq_lane_f32 (float32x4_t __a
, float32x4_t __b
,
14505 float32x2_t __c
, const int __lane
)
14507 return __builtin_aarch64_fmav4sf (-__b
,
14508 __aarch64_vdupq_lane_f32 (__c
, __lane
),
14512 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14513 vfmsq_lane_f64 (float64x2_t __a
, float64x2_t __b
,
14514 float64x1_t __c
, const int __lane
)
14516 return __builtin_aarch64_fmav2df (-__b
, vdupq_n_f64 (__c
[0]), __a
);
14521 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14522 vfmsq_laneq_f32 (float32x4_t __a
, float32x4_t __b
,
14523 float32x4_t __c
, const int __lane
)
14525 return __builtin_aarch64_fmav4sf (-__b
,
14526 __aarch64_vdupq_laneq_f32 (__c
, __lane
),
14530 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14531 vfmsq_laneq_f64 (float64x2_t __a
, float64x2_t __b
,
14532 float64x2_t __c
, const int __lane
)
14534 return __builtin_aarch64_fmav2df (-__b
,
14535 __aarch64_vdupq_laneq_f64 (__c
, __lane
),
14541 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
14542 vld1_f16 (const float16_t
*__a
)
14544 return __builtin_aarch64_ld1v4hf (__a
);
14547 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14548 vld1_f32 (const float32_t
*a
)
14550 return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf
*) a
);
14553 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14554 vld1_f64 (const float64_t
*a
)
14556 return (float64x1_t
) {*a
};
14559 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
14560 vld1_p8 (const poly8_t
*a
)
14563 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi
*) a
);
14566 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
14567 vld1_p16 (const poly16_t
*a
)
14569 return (poly16x4_t
)
14570 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi
*) a
);
14573 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
14574 vld1_s8 (const int8_t *a
)
14576 return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi
*) a
);
14579 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
14580 vld1_s16 (const int16_t *a
)
14582 return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi
*) a
);
14585 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
14586 vld1_s32 (const int32_t *a
)
14588 return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si
*) a
);
14591 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
14592 vld1_s64 (const int64_t *a
)
14594 return (int64x1_t
) {*a
};
14597 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
14598 vld1_u8 (const uint8_t *a
)
14601 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi
*) a
);
14604 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
14605 vld1_u16 (const uint16_t *a
)
14607 return (uint16x4_t
)
14608 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi
*) a
);
14611 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
14612 vld1_u32 (const uint32_t *a
)
14614 return (uint32x2_t
)
14615 __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si
*) a
);
14618 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
14619 vld1_u64 (const uint64_t *a
)
14621 return (uint64x1_t
) {*a
};
14626 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
14627 vld1q_f16 (const float16_t
*__a
)
14629 return __builtin_aarch64_ld1v8hf (__a
);
14632 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14633 vld1q_f32 (const float32_t
*a
)
14635 return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf
*) a
);
14638 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14639 vld1q_f64 (const float64_t
*a
)
14641 return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df
*) a
);
14644 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
14645 vld1q_p8 (const poly8_t
*a
)
14647 return (poly8x16_t
)
14648 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi
*) a
);
14651 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
14652 vld1q_p16 (const poly16_t
*a
)
14654 return (poly16x8_t
)
14655 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi
*) a
);
14658 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
14659 vld1q_s8 (const int8_t *a
)
14661 return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi
*) a
);
14664 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
14665 vld1q_s16 (const int16_t *a
)
14667 return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi
*) a
);
14670 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
14671 vld1q_s32 (const int32_t *a
)
14673 return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si
*) a
);
14676 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
14677 vld1q_s64 (const int64_t *a
)
14679 return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di
*) a
);
14682 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
14683 vld1q_u8 (const uint8_t *a
)
14685 return (uint8x16_t
)
14686 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi
*) a
);
14689 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
14690 vld1q_u16 (const uint16_t *a
)
14692 return (uint16x8_t
)
14693 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi
*) a
);
14696 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
14697 vld1q_u32 (const uint32_t *a
)
14699 return (uint32x4_t
)
14700 __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si
*) a
);
14703 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
14704 vld1q_u64 (const uint64_t *a
)
14706 return (uint64x2_t
)
14707 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di
*) a
);
14712 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
14713 vld1_dup_f16 (const float16_t
* __a
)
14715 return vdup_n_f16 (*__a
);
14718 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14719 vld1_dup_f32 (const float32_t
* __a
)
14721 return vdup_n_f32 (*__a
);
14724 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14725 vld1_dup_f64 (const float64_t
* __a
)
14727 return vdup_n_f64 (*__a
);
14730 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
14731 vld1_dup_p8 (const poly8_t
* __a
)
14733 return vdup_n_p8 (*__a
);
14736 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
14737 vld1_dup_p16 (const poly16_t
* __a
)
14739 return vdup_n_p16 (*__a
);
14742 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
14743 vld1_dup_s8 (const int8_t* __a
)
14745 return vdup_n_s8 (*__a
);
14748 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
14749 vld1_dup_s16 (const int16_t* __a
)
14751 return vdup_n_s16 (*__a
);
14754 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
14755 vld1_dup_s32 (const int32_t* __a
)
14757 return vdup_n_s32 (*__a
);
14760 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
14761 vld1_dup_s64 (const int64_t* __a
)
14763 return vdup_n_s64 (*__a
);
14766 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
14767 vld1_dup_u8 (const uint8_t* __a
)
14769 return vdup_n_u8 (*__a
);
14772 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
14773 vld1_dup_u16 (const uint16_t* __a
)
14775 return vdup_n_u16 (*__a
);
14778 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
14779 vld1_dup_u32 (const uint32_t* __a
)
14781 return vdup_n_u32 (*__a
);
14784 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
14785 vld1_dup_u64 (const uint64_t* __a
)
14787 return vdup_n_u64 (*__a
);
14792 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
14793 vld1q_dup_f16 (const float16_t
* __a
)
14795 return vdupq_n_f16 (*__a
);
14798 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14799 vld1q_dup_f32 (const float32_t
* __a
)
14801 return vdupq_n_f32 (*__a
);
14804 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14805 vld1q_dup_f64 (const float64_t
* __a
)
14807 return vdupq_n_f64 (*__a
);
14810 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
14811 vld1q_dup_p8 (const poly8_t
* __a
)
14813 return vdupq_n_p8 (*__a
);
14816 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
14817 vld1q_dup_p16 (const poly16_t
* __a
)
14819 return vdupq_n_p16 (*__a
);
14822 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
14823 vld1q_dup_s8 (const int8_t* __a
)
14825 return vdupq_n_s8 (*__a
);
14828 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
14829 vld1q_dup_s16 (const int16_t* __a
)
14831 return vdupq_n_s16 (*__a
);
14834 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
14835 vld1q_dup_s32 (const int32_t* __a
)
14837 return vdupq_n_s32 (*__a
);
14840 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
14841 vld1q_dup_s64 (const int64_t* __a
)
14843 return vdupq_n_s64 (*__a
);
14846 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
14847 vld1q_dup_u8 (const uint8_t* __a
)
14849 return vdupq_n_u8 (*__a
);
14852 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
14853 vld1q_dup_u16 (const uint16_t* __a
)
14855 return vdupq_n_u16 (*__a
);
14858 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
14859 vld1q_dup_u32 (const uint32_t* __a
)
14861 return vdupq_n_u32 (*__a
);
14864 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
14865 vld1q_dup_u64 (const uint64_t* __a
)
14867 return vdupq_n_u64 (*__a
);
14872 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
14873 vld1_lane_f16 (const float16_t
*__src
, float16x4_t __vec
, const int __lane
)
14875 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14878 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
14879 vld1_lane_f32 (const float32_t
*__src
, float32x2_t __vec
, const int __lane
)
14881 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14884 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
14885 vld1_lane_f64 (const float64_t
*__src
, float64x1_t __vec
, const int __lane
)
14887 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14890 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
14891 vld1_lane_p8 (const poly8_t
*__src
, poly8x8_t __vec
, const int __lane
)
14893 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14896 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
14897 vld1_lane_p16 (const poly16_t
*__src
, poly16x4_t __vec
, const int __lane
)
14899 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14902 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
14903 vld1_lane_s8 (const int8_t *__src
, int8x8_t __vec
, const int __lane
)
14905 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14908 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
14909 vld1_lane_s16 (const int16_t *__src
, int16x4_t __vec
, const int __lane
)
14911 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14914 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
14915 vld1_lane_s32 (const int32_t *__src
, int32x2_t __vec
, const int __lane
)
14917 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14920 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
14921 vld1_lane_s64 (const int64_t *__src
, int64x1_t __vec
, const int __lane
)
14923 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14926 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
14927 vld1_lane_u8 (const uint8_t *__src
, uint8x8_t __vec
, const int __lane
)
14929 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14932 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
14933 vld1_lane_u16 (const uint16_t *__src
, uint16x4_t __vec
, const int __lane
)
14935 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14938 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
14939 vld1_lane_u32 (const uint32_t *__src
, uint32x2_t __vec
, const int __lane
)
14941 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14944 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
14945 vld1_lane_u64 (const uint64_t *__src
, uint64x1_t __vec
, const int __lane
)
14947 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14952 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
14953 vld1q_lane_f16 (const float16_t
*__src
, float16x8_t __vec
, const int __lane
)
14955 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14958 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
14959 vld1q_lane_f32 (const float32_t
*__src
, float32x4_t __vec
, const int __lane
)
14961 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14964 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
14965 vld1q_lane_f64 (const float64_t
*__src
, float64x2_t __vec
, const int __lane
)
14967 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14970 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
14971 vld1q_lane_p8 (const poly8_t
*__src
, poly8x16_t __vec
, const int __lane
)
14973 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14976 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
14977 vld1q_lane_p16 (const poly16_t
*__src
, poly16x8_t __vec
, const int __lane
)
14979 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14982 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
14983 vld1q_lane_s8 (const int8_t *__src
, int8x16_t __vec
, const int __lane
)
14985 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14988 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
14989 vld1q_lane_s16 (const int16_t *__src
, int16x8_t __vec
, const int __lane
)
14991 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
14994 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
14995 vld1q_lane_s32 (const int32_t *__src
, int32x4_t __vec
, const int __lane
)
14997 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
15000 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
15001 vld1q_lane_s64 (const int64_t *__src
, int64x2_t __vec
, const int __lane
)
15003 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
15006 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
15007 vld1q_lane_u8 (const uint8_t *__src
, uint8x16_t __vec
, const int __lane
)
15009 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
15012 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
15013 vld1q_lane_u16 (const uint16_t *__src
, uint16x8_t __vec
, const int __lane
)
15015 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
15018 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
15019 vld1q_lane_u32 (const uint32_t *__src
, uint32x4_t __vec
, const int __lane
)
15021 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
15024 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
15025 vld1q_lane_u64 (const uint64_t *__src
, uint64x2_t __vec
, const int __lane
)
15027 return __aarch64_vset_lane_any (*__src
, __vec
, __lane
);
15032 __extension__
static __inline int64x1x2_t
__attribute__ ((__always_inline__
))
15033 vld2_s64 (const int64_t * __a
)
15036 __builtin_aarch64_simd_oi __o
;
15037 __o
= __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di
*) __a
);
15038 ret
.val
[0] = (int64x1_t
) __builtin_aarch64_get_dregoidi (__o
, 0);
15039 ret
.val
[1] = (int64x1_t
) __builtin_aarch64_get_dregoidi (__o
, 1);
15043 __extension__
static __inline uint64x1x2_t
__attribute__ ((__always_inline__
))
15044 vld2_u64 (const uint64_t * __a
)
15047 __builtin_aarch64_simd_oi __o
;
15048 __o
= __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di
*) __a
);
15049 ret
.val
[0] = (uint64x1_t
) __builtin_aarch64_get_dregoidi (__o
, 0);
15050 ret
.val
[1] = (uint64x1_t
) __builtin_aarch64_get_dregoidi (__o
, 1);
15054 __extension__
static __inline float64x1x2_t
__attribute__ ((__always_inline__
))
15055 vld2_f64 (const float64_t
* __a
)
15058 __builtin_aarch64_simd_oi __o
;
15059 __o
= __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df
*) __a
);
15060 ret
.val
[0] = (float64x1_t
) {__builtin_aarch64_get_dregoidf (__o
, 0)};
15061 ret
.val
[1] = (float64x1_t
) {__builtin_aarch64_get_dregoidf (__o
, 1)};
15065 __extension__
static __inline int8x8x2_t
__attribute__ ((__always_inline__
))
15066 vld2_s8 (const int8_t * __a
)
15069 __builtin_aarch64_simd_oi __o
;
15070 __o
= __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15071 ret
.val
[0] = (int8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 0);
15072 ret
.val
[1] = (int8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 1);
15076 __extension__
static __inline poly8x8x2_t
__attribute__ ((__always_inline__
))
15077 vld2_p8 (const poly8_t
* __a
)
15080 __builtin_aarch64_simd_oi __o
;
15081 __o
= __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15082 ret
.val
[0] = (poly8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 0);
15083 ret
.val
[1] = (poly8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 1);
15087 __extension__
static __inline int16x4x2_t
__attribute__ ((__always_inline__
))
15088 vld2_s16 (const int16_t * __a
)
15091 __builtin_aarch64_simd_oi __o
;
15092 __o
= __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15093 ret
.val
[0] = (int16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 0);
15094 ret
.val
[1] = (int16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 1);
15098 __extension__
static __inline poly16x4x2_t
__attribute__ ((__always_inline__
))
15099 vld2_p16 (const poly16_t
* __a
)
15102 __builtin_aarch64_simd_oi __o
;
15103 __o
= __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15104 ret
.val
[0] = (poly16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 0);
15105 ret
.val
[1] = (poly16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 1);
15109 __extension__
static __inline int32x2x2_t
__attribute__ ((__always_inline__
))
15110 vld2_s32 (const int32_t * __a
)
15113 __builtin_aarch64_simd_oi __o
;
15114 __o
= __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si
*) __a
);
15115 ret
.val
[0] = (int32x2_t
) __builtin_aarch64_get_dregoiv2si (__o
, 0);
15116 ret
.val
[1] = (int32x2_t
) __builtin_aarch64_get_dregoiv2si (__o
, 1);
15120 __extension__
static __inline uint8x8x2_t
__attribute__ ((__always_inline__
))
15121 vld2_u8 (const uint8_t * __a
)
15124 __builtin_aarch64_simd_oi __o
;
15125 __o
= __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15126 ret
.val
[0] = (uint8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 0);
15127 ret
.val
[1] = (uint8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 1);
15131 __extension__
static __inline uint16x4x2_t
__attribute__ ((__always_inline__
))
15132 vld2_u16 (const uint16_t * __a
)
15135 __builtin_aarch64_simd_oi __o
;
15136 __o
= __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15137 ret
.val
[0] = (uint16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 0);
15138 ret
.val
[1] = (uint16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 1);
15142 __extension__
static __inline uint32x2x2_t
__attribute__ ((__always_inline__
))
15143 vld2_u32 (const uint32_t * __a
)
15146 __builtin_aarch64_simd_oi __o
;
15147 __o
= __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si
*) __a
);
15148 ret
.val
[0] = (uint32x2_t
) __builtin_aarch64_get_dregoiv2si (__o
, 0);
15149 ret
.val
[1] = (uint32x2_t
) __builtin_aarch64_get_dregoiv2si (__o
, 1);
15153 __extension__
static __inline float16x4x2_t
__attribute__ ((__always_inline__
))
15154 vld2_f16 (const float16_t
* __a
)
15157 __builtin_aarch64_simd_oi __o
;
15158 __o
= __builtin_aarch64_ld2v4hf (__a
);
15159 ret
.val
[0] = __builtin_aarch64_get_dregoiv4hf (__o
, 0);
15160 ret
.val
[1] = __builtin_aarch64_get_dregoiv4hf (__o
, 1);
15164 __extension__
static __inline float32x2x2_t
__attribute__ ((__always_inline__
))
15165 vld2_f32 (const float32_t
* __a
)
15168 __builtin_aarch64_simd_oi __o
;
15169 __o
= __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf
*) __a
);
15170 ret
.val
[0] = (float32x2_t
) __builtin_aarch64_get_dregoiv2sf (__o
, 0);
15171 ret
.val
[1] = (float32x2_t
) __builtin_aarch64_get_dregoiv2sf (__o
, 1);
15175 __extension__
static __inline int8x16x2_t
__attribute__ ((__always_inline__
))
15176 vld2q_s8 (const int8_t * __a
)
15179 __builtin_aarch64_simd_oi __o
;
15180 __o
= __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15181 ret
.val
[0] = (int8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 0);
15182 ret
.val
[1] = (int8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 1);
15186 __extension__
static __inline poly8x16x2_t
__attribute__ ((__always_inline__
))
15187 vld2q_p8 (const poly8_t
* __a
)
15190 __builtin_aarch64_simd_oi __o
;
15191 __o
= __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15192 ret
.val
[0] = (poly8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 0);
15193 ret
.val
[1] = (poly8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 1);
15197 __extension__
static __inline int16x8x2_t
__attribute__ ((__always_inline__
))
15198 vld2q_s16 (const int16_t * __a
)
15201 __builtin_aarch64_simd_oi __o
;
15202 __o
= __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15203 ret
.val
[0] = (int16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 0);
15204 ret
.val
[1] = (int16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 1);
15208 __extension__
static __inline poly16x8x2_t
__attribute__ ((__always_inline__
))
15209 vld2q_p16 (const poly16_t
* __a
)
15212 __builtin_aarch64_simd_oi __o
;
15213 __o
= __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15214 ret
.val
[0] = (poly16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 0);
15215 ret
.val
[1] = (poly16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 1);
15219 __extension__
static __inline int32x4x2_t
__attribute__ ((__always_inline__
))
15220 vld2q_s32 (const int32_t * __a
)
15223 __builtin_aarch64_simd_oi __o
;
15224 __o
= __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si
*) __a
);
15225 ret
.val
[0] = (int32x4_t
) __builtin_aarch64_get_qregoiv4si (__o
, 0);
15226 ret
.val
[1] = (int32x4_t
) __builtin_aarch64_get_qregoiv4si (__o
, 1);
15230 __extension__
static __inline int64x2x2_t
__attribute__ ((__always_inline__
))
15231 vld2q_s64 (const int64_t * __a
)
15234 __builtin_aarch64_simd_oi __o
;
15235 __o
= __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di
*) __a
);
15236 ret
.val
[0] = (int64x2_t
) __builtin_aarch64_get_qregoiv2di (__o
, 0);
15237 ret
.val
[1] = (int64x2_t
) __builtin_aarch64_get_qregoiv2di (__o
, 1);
15241 __extension__
static __inline uint8x16x2_t
__attribute__ ((__always_inline__
))
15242 vld2q_u8 (const uint8_t * __a
)
15245 __builtin_aarch64_simd_oi __o
;
15246 __o
= __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15247 ret
.val
[0] = (uint8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 0);
15248 ret
.val
[1] = (uint8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 1);
15252 __extension__
static __inline uint16x8x2_t
__attribute__ ((__always_inline__
))
15253 vld2q_u16 (const uint16_t * __a
)
15256 __builtin_aarch64_simd_oi __o
;
15257 __o
= __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15258 ret
.val
[0] = (uint16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 0);
15259 ret
.val
[1] = (uint16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 1);
15263 __extension__
static __inline uint32x4x2_t
__attribute__ ((__always_inline__
))
15264 vld2q_u32 (const uint32_t * __a
)
15267 __builtin_aarch64_simd_oi __o
;
15268 __o
= __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si
*) __a
);
15269 ret
.val
[0] = (uint32x4_t
) __builtin_aarch64_get_qregoiv4si (__o
, 0);
15270 ret
.val
[1] = (uint32x4_t
) __builtin_aarch64_get_qregoiv4si (__o
, 1);
15274 __extension__
static __inline uint64x2x2_t
__attribute__ ((__always_inline__
))
15275 vld2q_u64 (const uint64_t * __a
)
15278 __builtin_aarch64_simd_oi __o
;
15279 __o
= __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di
*) __a
);
15280 ret
.val
[0] = (uint64x2_t
) __builtin_aarch64_get_qregoiv2di (__o
, 0);
15281 ret
.val
[1] = (uint64x2_t
) __builtin_aarch64_get_qregoiv2di (__o
, 1);
15285 __extension__
static __inline float16x8x2_t
__attribute__ ((__always_inline__
))
15286 vld2q_f16 (const float16_t
* __a
)
15289 __builtin_aarch64_simd_oi __o
;
15290 __o
= __builtin_aarch64_ld2v8hf (__a
);
15291 ret
.val
[0] = __builtin_aarch64_get_qregoiv8hf (__o
, 0);
15292 ret
.val
[1] = __builtin_aarch64_get_qregoiv8hf (__o
, 1);
15296 __extension__
static __inline float32x4x2_t
__attribute__ ((__always_inline__
))
15297 vld2q_f32 (const float32_t
* __a
)
15300 __builtin_aarch64_simd_oi __o
;
15301 __o
= __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf
*) __a
);
15302 ret
.val
[0] = (float32x4_t
) __builtin_aarch64_get_qregoiv4sf (__o
, 0);
15303 ret
.val
[1] = (float32x4_t
) __builtin_aarch64_get_qregoiv4sf (__o
, 1);
15307 __extension__
static __inline float64x2x2_t
__attribute__ ((__always_inline__
))
15308 vld2q_f64 (const float64_t
* __a
)
15311 __builtin_aarch64_simd_oi __o
;
15312 __o
= __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df
*) __a
);
15313 ret
.val
[0] = (float64x2_t
) __builtin_aarch64_get_qregoiv2df (__o
, 0);
15314 ret
.val
[1] = (float64x2_t
) __builtin_aarch64_get_qregoiv2df (__o
, 1);
15318 __extension__
static __inline int64x1x3_t
__attribute__ ((__always_inline__
))
15319 vld3_s64 (const int64_t * __a
)
15322 __builtin_aarch64_simd_ci __o
;
15323 __o
= __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di
*) __a
);
15324 ret
.val
[0] = (int64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 0);
15325 ret
.val
[1] = (int64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 1);
15326 ret
.val
[2] = (int64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 2);
15330 __extension__
static __inline uint64x1x3_t
__attribute__ ((__always_inline__
))
15331 vld3_u64 (const uint64_t * __a
)
15334 __builtin_aarch64_simd_ci __o
;
15335 __o
= __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di
*) __a
);
15336 ret
.val
[0] = (uint64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 0);
15337 ret
.val
[1] = (uint64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 1);
15338 ret
.val
[2] = (uint64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 2);
15342 __extension__
static __inline float64x1x3_t
__attribute__ ((__always_inline__
))
15343 vld3_f64 (const float64_t
* __a
)
15346 __builtin_aarch64_simd_ci __o
;
15347 __o
= __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df
*) __a
);
15348 ret
.val
[0] = (float64x1_t
) {__builtin_aarch64_get_dregcidf (__o
, 0)};
15349 ret
.val
[1] = (float64x1_t
) {__builtin_aarch64_get_dregcidf (__o
, 1)};
15350 ret
.val
[2] = (float64x1_t
) {__builtin_aarch64_get_dregcidf (__o
, 2)};
15354 __extension__
static __inline int8x8x3_t
__attribute__ ((__always_inline__
))
15355 vld3_s8 (const int8_t * __a
)
15358 __builtin_aarch64_simd_ci __o
;
15359 __o
= __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15360 ret
.val
[0] = (int8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 0);
15361 ret
.val
[1] = (int8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 1);
15362 ret
.val
[2] = (int8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 2);
15366 __extension__
static __inline poly8x8x3_t
__attribute__ ((__always_inline__
))
15367 vld3_p8 (const poly8_t
* __a
)
15370 __builtin_aarch64_simd_ci __o
;
15371 __o
= __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15372 ret
.val
[0] = (poly8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 0);
15373 ret
.val
[1] = (poly8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 1);
15374 ret
.val
[2] = (poly8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 2);
15378 __extension__
static __inline int16x4x3_t
__attribute__ ((__always_inline__
))
15379 vld3_s16 (const int16_t * __a
)
15382 __builtin_aarch64_simd_ci __o
;
15383 __o
= __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15384 ret
.val
[0] = (int16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 0);
15385 ret
.val
[1] = (int16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 1);
15386 ret
.val
[2] = (int16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 2);
15390 __extension__
static __inline poly16x4x3_t
__attribute__ ((__always_inline__
))
15391 vld3_p16 (const poly16_t
* __a
)
15394 __builtin_aarch64_simd_ci __o
;
15395 __o
= __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15396 ret
.val
[0] = (poly16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 0);
15397 ret
.val
[1] = (poly16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 1);
15398 ret
.val
[2] = (poly16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 2);
15402 __extension__
static __inline int32x2x3_t
__attribute__ ((__always_inline__
))
15403 vld3_s32 (const int32_t * __a
)
15406 __builtin_aarch64_simd_ci __o
;
15407 __o
= __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si
*) __a
);
15408 ret
.val
[0] = (int32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 0);
15409 ret
.val
[1] = (int32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 1);
15410 ret
.val
[2] = (int32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 2);
15414 __extension__
static __inline uint8x8x3_t
__attribute__ ((__always_inline__
))
15415 vld3_u8 (const uint8_t * __a
)
15418 __builtin_aarch64_simd_ci __o
;
15419 __o
= __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15420 ret
.val
[0] = (uint8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 0);
15421 ret
.val
[1] = (uint8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 1);
15422 ret
.val
[2] = (uint8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 2);
15426 __extension__
static __inline uint16x4x3_t
__attribute__ ((__always_inline__
))
15427 vld3_u16 (const uint16_t * __a
)
15430 __builtin_aarch64_simd_ci __o
;
15431 __o
= __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15432 ret
.val
[0] = (uint16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 0);
15433 ret
.val
[1] = (uint16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 1);
15434 ret
.val
[2] = (uint16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 2);
15438 __extension__
static __inline uint32x2x3_t
__attribute__ ((__always_inline__
))
15439 vld3_u32 (const uint32_t * __a
)
15442 __builtin_aarch64_simd_ci __o
;
15443 __o
= __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si
*) __a
);
15444 ret
.val
[0] = (uint32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 0);
15445 ret
.val
[1] = (uint32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 1);
15446 ret
.val
[2] = (uint32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 2);
15450 __extension__
static __inline float16x4x3_t
__attribute__ ((__always_inline__
))
15451 vld3_f16 (const float16_t
* __a
)
15454 __builtin_aarch64_simd_ci __o
;
15455 __o
= __builtin_aarch64_ld3v4hf (__a
);
15456 ret
.val
[0] = __builtin_aarch64_get_dregciv4hf (__o
, 0);
15457 ret
.val
[1] = __builtin_aarch64_get_dregciv4hf (__o
, 1);
15458 ret
.val
[2] = __builtin_aarch64_get_dregciv4hf (__o
, 2);
15462 __extension__
static __inline float32x2x3_t
__attribute__ ((__always_inline__
))
15463 vld3_f32 (const float32_t
* __a
)
15466 __builtin_aarch64_simd_ci __o
;
15467 __o
= __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf
*) __a
);
15468 ret
.val
[0] = (float32x2_t
) __builtin_aarch64_get_dregciv2sf (__o
, 0);
15469 ret
.val
[1] = (float32x2_t
) __builtin_aarch64_get_dregciv2sf (__o
, 1);
15470 ret
.val
[2] = (float32x2_t
) __builtin_aarch64_get_dregciv2sf (__o
, 2);
15474 __extension__
static __inline int8x16x3_t
__attribute__ ((__always_inline__
))
15475 vld3q_s8 (const int8_t * __a
)
15478 __builtin_aarch64_simd_ci __o
;
15479 __o
= __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15480 ret
.val
[0] = (int8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 0);
15481 ret
.val
[1] = (int8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 1);
15482 ret
.val
[2] = (int8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 2);
15486 __extension__
static __inline poly8x16x3_t
__attribute__ ((__always_inline__
))
15487 vld3q_p8 (const poly8_t
* __a
)
15490 __builtin_aarch64_simd_ci __o
;
15491 __o
= __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15492 ret
.val
[0] = (poly8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 0);
15493 ret
.val
[1] = (poly8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 1);
15494 ret
.val
[2] = (poly8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 2);
15498 __extension__
static __inline int16x8x3_t
__attribute__ ((__always_inline__
))
15499 vld3q_s16 (const int16_t * __a
)
15502 __builtin_aarch64_simd_ci __o
;
15503 __o
= __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15504 ret
.val
[0] = (int16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 0);
15505 ret
.val
[1] = (int16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 1);
15506 ret
.val
[2] = (int16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 2);
15510 __extension__
static __inline poly16x8x3_t
__attribute__ ((__always_inline__
))
15511 vld3q_p16 (const poly16_t
* __a
)
15514 __builtin_aarch64_simd_ci __o
;
15515 __o
= __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15516 ret
.val
[0] = (poly16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 0);
15517 ret
.val
[1] = (poly16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 1);
15518 ret
.val
[2] = (poly16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 2);
15522 __extension__
static __inline int32x4x3_t
__attribute__ ((__always_inline__
))
15523 vld3q_s32 (const int32_t * __a
)
15526 __builtin_aarch64_simd_ci __o
;
15527 __o
= __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si
*) __a
);
15528 ret
.val
[0] = (int32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 0);
15529 ret
.val
[1] = (int32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 1);
15530 ret
.val
[2] = (int32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 2);
15534 __extension__
static __inline int64x2x3_t
__attribute__ ((__always_inline__
))
15535 vld3q_s64 (const int64_t * __a
)
15538 __builtin_aarch64_simd_ci __o
;
15539 __o
= __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di
*) __a
);
15540 ret
.val
[0] = (int64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 0);
15541 ret
.val
[1] = (int64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 1);
15542 ret
.val
[2] = (int64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 2);
15546 __extension__
static __inline uint8x16x3_t
__attribute__ ((__always_inline__
))
15547 vld3q_u8 (const uint8_t * __a
)
15550 __builtin_aarch64_simd_ci __o
;
15551 __o
= __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15552 ret
.val
[0] = (uint8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 0);
15553 ret
.val
[1] = (uint8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 1);
15554 ret
.val
[2] = (uint8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 2);
15558 __extension__
static __inline uint16x8x3_t
__attribute__ ((__always_inline__
))
15559 vld3q_u16 (const uint16_t * __a
)
15562 __builtin_aarch64_simd_ci __o
;
15563 __o
= __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15564 ret
.val
[0] = (uint16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 0);
15565 ret
.val
[1] = (uint16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 1);
15566 ret
.val
[2] = (uint16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 2);
15570 __extension__
static __inline uint32x4x3_t
__attribute__ ((__always_inline__
))
15571 vld3q_u32 (const uint32_t * __a
)
15574 __builtin_aarch64_simd_ci __o
;
15575 __o
= __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si
*) __a
);
15576 ret
.val
[0] = (uint32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 0);
15577 ret
.val
[1] = (uint32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 1);
15578 ret
.val
[2] = (uint32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 2);
15582 __extension__
static __inline uint64x2x3_t
__attribute__ ((__always_inline__
))
15583 vld3q_u64 (const uint64_t * __a
)
15586 __builtin_aarch64_simd_ci __o
;
15587 __o
= __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di
*) __a
);
15588 ret
.val
[0] = (uint64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 0);
15589 ret
.val
[1] = (uint64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 1);
15590 ret
.val
[2] = (uint64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 2);
15594 __extension__
static __inline float16x8x3_t
__attribute__ ((__always_inline__
))
15595 vld3q_f16 (const float16_t
* __a
)
15598 __builtin_aarch64_simd_ci __o
;
15599 __o
= __builtin_aarch64_ld3v8hf (__a
);
15600 ret
.val
[0] = __builtin_aarch64_get_qregciv8hf (__o
, 0);
15601 ret
.val
[1] = __builtin_aarch64_get_qregciv8hf (__o
, 1);
15602 ret
.val
[2] = __builtin_aarch64_get_qregciv8hf (__o
, 2);
15606 __extension__
static __inline float32x4x3_t
__attribute__ ((__always_inline__
))
15607 vld3q_f32 (const float32_t
* __a
)
15610 __builtin_aarch64_simd_ci __o
;
15611 __o
= __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf
*) __a
);
15612 ret
.val
[0] = (float32x4_t
) __builtin_aarch64_get_qregciv4sf (__o
, 0);
15613 ret
.val
[1] = (float32x4_t
) __builtin_aarch64_get_qregciv4sf (__o
, 1);
15614 ret
.val
[2] = (float32x4_t
) __builtin_aarch64_get_qregciv4sf (__o
, 2);
15618 __extension__
static __inline float64x2x3_t
__attribute__ ((__always_inline__
))
15619 vld3q_f64 (const float64_t
* __a
)
15622 __builtin_aarch64_simd_ci __o
;
15623 __o
= __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df
*) __a
);
15624 ret
.val
[0] = (float64x2_t
) __builtin_aarch64_get_qregciv2df (__o
, 0);
15625 ret
.val
[1] = (float64x2_t
) __builtin_aarch64_get_qregciv2df (__o
, 1);
15626 ret
.val
[2] = (float64x2_t
) __builtin_aarch64_get_qregciv2df (__o
, 2);
15630 __extension__
static __inline int64x1x4_t
__attribute__ ((__always_inline__
))
15631 vld4_s64 (const int64_t * __a
)
15634 __builtin_aarch64_simd_xi __o
;
15635 __o
= __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di
*) __a
);
15636 ret
.val
[0] = (int64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 0);
15637 ret
.val
[1] = (int64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 1);
15638 ret
.val
[2] = (int64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 2);
15639 ret
.val
[3] = (int64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 3);
15643 __extension__
static __inline uint64x1x4_t
__attribute__ ((__always_inline__
))
15644 vld4_u64 (const uint64_t * __a
)
15647 __builtin_aarch64_simd_xi __o
;
15648 __o
= __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di
*) __a
);
15649 ret
.val
[0] = (uint64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 0);
15650 ret
.val
[1] = (uint64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 1);
15651 ret
.val
[2] = (uint64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 2);
15652 ret
.val
[3] = (uint64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 3);
15656 __extension__
static __inline float64x1x4_t
__attribute__ ((__always_inline__
))
15657 vld4_f64 (const float64_t
* __a
)
15660 __builtin_aarch64_simd_xi __o
;
15661 __o
= __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df
*) __a
);
15662 ret
.val
[0] = (float64x1_t
) {__builtin_aarch64_get_dregxidf (__o
, 0)};
15663 ret
.val
[1] = (float64x1_t
) {__builtin_aarch64_get_dregxidf (__o
, 1)};
15664 ret
.val
[2] = (float64x1_t
) {__builtin_aarch64_get_dregxidf (__o
, 2)};
15665 ret
.val
[3] = (float64x1_t
) {__builtin_aarch64_get_dregxidf (__o
, 3)};
15669 __extension__
static __inline int8x8x4_t
__attribute__ ((__always_inline__
))
15670 vld4_s8 (const int8_t * __a
)
15673 __builtin_aarch64_simd_xi __o
;
15674 __o
= __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15675 ret
.val
[0] = (int8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 0);
15676 ret
.val
[1] = (int8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 1);
15677 ret
.val
[2] = (int8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 2);
15678 ret
.val
[3] = (int8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 3);
15682 __extension__
static __inline poly8x8x4_t
__attribute__ ((__always_inline__
))
15683 vld4_p8 (const poly8_t
* __a
)
15686 __builtin_aarch64_simd_xi __o
;
15687 __o
= __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15688 ret
.val
[0] = (poly8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 0);
15689 ret
.val
[1] = (poly8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 1);
15690 ret
.val
[2] = (poly8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 2);
15691 ret
.val
[3] = (poly8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 3);
15695 __extension__
static __inline int16x4x4_t
__attribute__ ((__always_inline__
))
15696 vld4_s16 (const int16_t * __a
)
15699 __builtin_aarch64_simd_xi __o
;
15700 __o
= __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15701 ret
.val
[0] = (int16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 0);
15702 ret
.val
[1] = (int16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 1);
15703 ret
.val
[2] = (int16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 2);
15704 ret
.val
[3] = (int16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 3);
15708 __extension__
static __inline poly16x4x4_t
__attribute__ ((__always_inline__
))
15709 vld4_p16 (const poly16_t
* __a
)
15712 __builtin_aarch64_simd_xi __o
;
15713 __o
= __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15714 ret
.val
[0] = (poly16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 0);
15715 ret
.val
[1] = (poly16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 1);
15716 ret
.val
[2] = (poly16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 2);
15717 ret
.val
[3] = (poly16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 3);
15721 __extension__
static __inline int32x2x4_t
__attribute__ ((__always_inline__
))
15722 vld4_s32 (const int32_t * __a
)
15725 __builtin_aarch64_simd_xi __o
;
15726 __o
= __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si
*) __a
);
15727 ret
.val
[0] = (int32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 0);
15728 ret
.val
[1] = (int32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 1);
15729 ret
.val
[2] = (int32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 2);
15730 ret
.val
[3] = (int32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 3);
15734 __extension__
static __inline uint8x8x4_t
__attribute__ ((__always_inline__
))
15735 vld4_u8 (const uint8_t * __a
)
15738 __builtin_aarch64_simd_xi __o
;
15739 __o
= __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15740 ret
.val
[0] = (uint8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 0);
15741 ret
.val
[1] = (uint8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 1);
15742 ret
.val
[2] = (uint8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 2);
15743 ret
.val
[3] = (uint8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 3);
15747 __extension__
static __inline uint16x4x4_t
__attribute__ ((__always_inline__
))
15748 vld4_u16 (const uint16_t * __a
)
15751 __builtin_aarch64_simd_xi __o
;
15752 __o
= __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15753 ret
.val
[0] = (uint16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 0);
15754 ret
.val
[1] = (uint16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 1);
15755 ret
.val
[2] = (uint16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 2);
15756 ret
.val
[3] = (uint16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 3);
15760 __extension__
static __inline uint32x2x4_t
__attribute__ ((__always_inline__
))
15761 vld4_u32 (const uint32_t * __a
)
15764 __builtin_aarch64_simd_xi __o
;
15765 __o
= __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si
*) __a
);
15766 ret
.val
[0] = (uint32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 0);
15767 ret
.val
[1] = (uint32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 1);
15768 ret
.val
[2] = (uint32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 2);
15769 ret
.val
[3] = (uint32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 3);
15773 __extension__
static __inline float16x4x4_t
__attribute__ ((__always_inline__
))
15774 vld4_f16 (const float16_t
* __a
)
15777 __builtin_aarch64_simd_xi __o
;
15778 __o
= __builtin_aarch64_ld4v4hf (__a
);
15779 ret
.val
[0] = __builtin_aarch64_get_dregxiv4hf (__o
, 0);
15780 ret
.val
[1] = __builtin_aarch64_get_dregxiv4hf (__o
, 1);
15781 ret
.val
[2] = __builtin_aarch64_get_dregxiv4hf (__o
, 2);
15782 ret
.val
[3] = __builtin_aarch64_get_dregxiv4hf (__o
, 3);
15786 __extension__
static __inline float32x2x4_t
__attribute__ ((__always_inline__
))
15787 vld4_f32 (const float32_t
* __a
)
15790 __builtin_aarch64_simd_xi __o
;
15791 __o
= __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf
*) __a
);
15792 ret
.val
[0] = (float32x2_t
) __builtin_aarch64_get_dregxiv2sf (__o
, 0);
15793 ret
.val
[1] = (float32x2_t
) __builtin_aarch64_get_dregxiv2sf (__o
, 1);
15794 ret
.val
[2] = (float32x2_t
) __builtin_aarch64_get_dregxiv2sf (__o
, 2);
15795 ret
.val
[3] = (float32x2_t
) __builtin_aarch64_get_dregxiv2sf (__o
, 3);
15799 __extension__
static __inline int8x16x4_t
__attribute__ ((__always_inline__
))
15800 vld4q_s8 (const int8_t * __a
)
15803 __builtin_aarch64_simd_xi __o
;
15804 __o
= __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15805 ret
.val
[0] = (int8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 0);
15806 ret
.val
[1] = (int8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 1);
15807 ret
.val
[2] = (int8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 2);
15808 ret
.val
[3] = (int8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 3);
15812 __extension__
static __inline poly8x16x4_t
__attribute__ ((__always_inline__
))
15813 vld4q_p8 (const poly8_t
* __a
)
15816 __builtin_aarch64_simd_xi __o
;
15817 __o
= __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15818 ret
.val
[0] = (poly8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 0);
15819 ret
.val
[1] = (poly8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 1);
15820 ret
.val
[2] = (poly8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 2);
15821 ret
.val
[3] = (poly8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 3);
15825 __extension__
static __inline int16x8x4_t
__attribute__ ((__always_inline__
))
15826 vld4q_s16 (const int16_t * __a
)
15829 __builtin_aarch64_simd_xi __o
;
15830 __o
= __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15831 ret
.val
[0] = (int16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 0);
15832 ret
.val
[1] = (int16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 1);
15833 ret
.val
[2] = (int16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 2);
15834 ret
.val
[3] = (int16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 3);
15838 __extension__
static __inline poly16x8x4_t
__attribute__ ((__always_inline__
))
15839 vld4q_p16 (const poly16_t
* __a
)
15842 __builtin_aarch64_simd_xi __o
;
15843 __o
= __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15844 ret
.val
[0] = (poly16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 0);
15845 ret
.val
[1] = (poly16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 1);
15846 ret
.val
[2] = (poly16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 2);
15847 ret
.val
[3] = (poly16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 3);
15851 __extension__
static __inline int32x4x4_t
__attribute__ ((__always_inline__
))
15852 vld4q_s32 (const int32_t * __a
)
15855 __builtin_aarch64_simd_xi __o
;
15856 __o
= __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si
*) __a
);
15857 ret
.val
[0] = (int32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 0);
15858 ret
.val
[1] = (int32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 1);
15859 ret
.val
[2] = (int32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 2);
15860 ret
.val
[3] = (int32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 3);
15864 __extension__
static __inline int64x2x4_t
__attribute__ ((__always_inline__
))
15865 vld4q_s64 (const int64_t * __a
)
15868 __builtin_aarch64_simd_xi __o
;
15869 __o
= __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di
*) __a
);
15870 ret
.val
[0] = (int64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 0);
15871 ret
.val
[1] = (int64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 1);
15872 ret
.val
[2] = (int64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 2);
15873 ret
.val
[3] = (int64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 3);
15877 __extension__
static __inline uint8x16x4_t
__attribute__ ((__always_inline__
))
15878 vld4q_u8 (const uint8_t * __a
)
15881 __builtin_aarch64_simd_xi __o
;
15882 __o
= __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi
*) __a
);
15883 ret
.val
[0] = (uint8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 0);
15884 ret
.val
[1] = (uint8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 1);
15885 ret
.val
[2] = (uint8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 2);
15886 ret
.val
[3] = (uint8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 3);
15890 __extension__
static __inline uint16x8x4_t
__attribute__ ((__always_inline__
))
15891 vld4q_u16 (const uint16_t * __a
)
15894 __builtin_aarch64_simd_xi __o
;
15895 __o
= __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi
*) __a
);
15896 ret
.val
[0] = (uint16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 0);
15897 ret
.val
[1] = (uint16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 1);
15898 ret
.val
[2] = (uint16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 2);
15899 ret
.val
[3] = (uint16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 3);
15903 __extension__
static __inline uint32x4x4_t
__attribute__ ((__always_inline__
))
15904 vld4q_u32 (const uint32_t * __a
)
15907 __builtin_aarch64_simd_xi __o
;
15908 __o
= __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si
*) __a
);
15909 ret
.val
[0] = (uint32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 0);
15910 ret
.val
[1] = (uint32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 1);
15911 ret
.val
[2] = (uint32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 2);
15912 ret
.val
[3] = (uint32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 3);
15916 __extension__
static __inline uint64x2x4_t
__attribute__ ((__always_inline__
))
15917 vld4q_u64 (const uint64_t * __a
)
15920 __builtin_aarch64_simd_xi __o
;
15921 __o
= __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di
*) __a
);
15922 ret
.val
[0] = (uint64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 0);
15923 ret
.val
[1] = (uint64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 1);
15924 ret
.val
[2] = (uint64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 2);
15925 ret
.val
[3] = (uint64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 3);
15929 __extension__
static __inline float16x8x4_t
__attribute__ ((__always_inline__
))
15930 vld4q_f16 (const float16_t
* __a
)
15933 __builtin_aarch64_simd_xi __o
;
15934 __o
= __builtin_aarch64_ld4v8hf (__a
);
15935 ret
.val
[0] = __builtin_aarch64_get_qregxiv8hf (__o
, 0);
15936 ret
.val
[1] = __builtin_aarch64_get_qregxiv8hf (__o
, 1);
15937 ret
.val
[2] = __builtin_aarch64_get_qregxiv8hf (__o
, 2);
15938 ret
.val
[3] = __builtin_aarch64_get_qregxiv8hf (__o
, 3);
15942 __extension__
static __inline float32x4x4_t
__attribute__ ((__always_inline__
))
15943 vld4q_f32 (const float32_t
* __a
)
15946 __builtin_aarch64_simd_xi __o
;
15947 __o
= __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf
*) __a
);
15948 ret
.val
[0] = (float32x4_t
) __builtin_aarch64_get_qregxiv4sf (__o
, 0);
15949 ret
.val
[1] = (float32x4_t
) __builtin_aarch64_get_qregxiv4sf (__o
, 1);
15950 ret
.val
[2] = (float32x4_t
) __builtin_aarch64_get_qregxiv4sf (__o
, 2);
15951 ret
.val
[3] = (float32x4_t
) __builtin_aarch64_get_qregxiv4sf (__o
, 3);
15955 __extension__
static __inline float64x2x4_t
__attribute__ ((__always_inline__
))
15956 vld4q_f64 (const float64_t
* __a
)
15959 __builtin_aarch64_simd_xi __o
;
15960 __o
= __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df
*) __a
);
15961 ret
.val
[0] = (float64x2_t
) __builtin_aarch64_get_qregxiv2df (__o
, 0);
15962 ret
.val
[1] = (float64x2_t
) __builtin_aarch64_get_qregxiv2df (__o
, 1);
15963 ret
.val
[2] = (float64x2_t
) __builtin_aarch64_get_qregxiv2df (__o
, 2);
15964 ret
.val
[3] = (float64x2_t
) __builtin_aarch64_get_qregxiv2df (__o
, 3);
15970 __extension__
static __inline int8x8x2_t
__attribute__ ((__always_inline__
))
15971 vld2_dup_s8 (const int8_t * __a
)
15974 __builtin_aarch64_simd_oi __o
;
15975 __o
= __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
15976 ret
.val
[0] = (int8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 0);
15977 ret
.val
[1] = (int8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 1);
15981 __extension__
static __inline int16x4x2_t
__attribute__ ((__always_inline__
))
15982 vld2_dup_s16 (const int16_t * __a
)
15985 __builtin_aarch64_simd_oi __o
;
15986 __o
= __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
15987 ret
.val
[0] = (int16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 0);
15988 ret
.val
[1] = (int16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 1);
15992 __extension__
static __inline int32x2x2_t
__attribute__ ((__always_inline__
))
15993 vld2_dup_s32 (const int32_t * __a
)
15996 __builtin_aarch64_simd_oi __o
;
15997 __o
= __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si
*) __a
);
15998 ret
.val
[0] = (int32x2_t
) __builtin_aarch64_get_dregoiv2si (__o
, 0);
15999 ret
.val
[1] = (int32x2_t
) __builtin_aarch64_get_dregoiv2si (__o
, 1);
16003 __extension__
static __inline float16x4x2_t
__attribute__ ((__always_inline__
))
16004 vld2_dup_f16 (const float16_t
* __a
)
16007 __builtin_aarch64_simd_oi __o
;
16008 __o
= __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf
*) __a
);
16009 ret
.val
[0] = __builtin_aarch64_get_dregoiv4hf (__o
, 0);
16010 ret
.val
[1] = (float16x4_t
) __builtin_aarch64_get_dregoiv4hf (__o
, 1);
16014 __extension__
static __inline float32x2x2_t
__attribute__ ((__always_inline__
))
16015 vld2_dup_f32 (const float32_t
* __a
)
16018 __builtin_aarch64_simd_oi __o
;
16019 __o
= __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf
*) __a
);
16020 ret
.val
[0] = (float32x2_t
) __builtin_aarch64_get_dregoiv2sf (__o
, 0);
16021 ret
.val
[1] = (float32x2_t
) __builtin_aarch64_get_dregoiv2sf (__o
, 1);
16025 __extension__
static __inline float64x1x2_t
__attribute__ ((__always_inline__
))
16026 vld2_dup_f64 (const float64_t
* __a
)
16029 __builtin_aarch64_simd_oi __o
;
16030 __o
= __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df
*) __a
);
16031 ret
.val
[0] = (float64x1_t
) {__builtin_aarch64_get_dregoidf (__o
, 0)};
16032 ret
.val
[1] = (float64x1_t
) {__builtin_aarch64_get_dregoidf (__o
, 1)};
16036 __extension__
static __inline uint8x8x2_t
__attribute__ ((__always_inline__
))
16037 vld2_dup_u8 (const uint8_t * __a
)
16040 __builtin_aarch64_simd_oi __o
;
16041 __o
= __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
16042 ret
.val
[0] = (uint8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 0);
16043 ret
.val
[1] = (uint8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 1);
16047 __extension__
static __inline uint16x4x2_t
__attribute__ ((__always_inline__
))
16048 vld2_dup_u16 (const uint16_t * __a
)
16051 __builtin_aarch64_simd_oi __o
;
16052 __o
= __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
16053 ret
.val
[0] = (uint16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 0);
16054 ret
.val
[1] = (uint16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 1);
16058 __extension__
static __inline uint32x2x2_t
__attribute__ ((__always_inline__
))
16059 vld2_dup_u32 (const uint32_t * __a
)
16062 __builtin_aarch64_simd_oi __o
;
16063 __o
= __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si
*) __a
);
16064 ret
.val
[0] = (uint32x2_t
) __builtin_aarch64_get_dregoiv2si (__o
, 0);
16065 ret
.val
[1] = (uint32x2_t
) __builtin_aarch64_get_dregoiv2si (__o
, 1);
16069 __extension__
static __inline poly8x8x2_t
__attribute__ ((__always_inline__
))
16070 vld2_dup_p8 (const poly8_t
* __a
)
16073 __builtin_aarch64_simd_oi __o
;
16074 __o
= __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
16075 ret
.val
[0] = (poly8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 0);
16076 ret
.val
[1] = (poly8x8_t
) __builtin_aarch64_get_dregoiv8qi (__o
, 1);
16080 __extension__
static __inline poly16x4x2_t
__attribute__ ((__always_inline__
))
16081 vld2_dup_p16 (const poly16_t
* __a
)
16084 __builtin_aarch64_simd_oi __o
;
16085 __o
= __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
16086 ret
.val
[0] = (poly16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 0);
16087 ret
.val
[1] = (poly16x4_t
) __builtin_aarch64_get_dregoiv4hi (__o
, 1);
16091 __extension__
static __inline int64x1x2_t
__attribute__ ((__always_inline__
))
16092 vld2_dup_s64 (const int64_t * __a
)
16095 __builtin_aarch64_simd_oi __o
;
16096 __o
= __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di
*) __a
);
16097 ret
.val
[0] = (int64x1_t
) __builtin_aarch64_get_dregoidi (__o
, 0);
16098 ret
.val
[1] = (int64x1_t
) __builtin_aarch64_get_dregoidi (__o
, 1);
16102 __extension__
static __inline uint64x1x2_t
__attribute__ ((__always_inline__
))
16103 vld2_dup_u64 (const uint64_t * __a
)
16106 __builtin_aarch64_simd_oi __o
;
16107 __o
= __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di
*) __a
);
16108 ret
.val
[0] = (uint64x1_t
) __builtin_aarch64_get_dregoidi (__o
, 0);
16109 ret
.val
[1] = (uint64x1_t
) __builtin_aarch64_get_dregoidi (__o
, 1);
16113 __extension__
static __inline int8x16x2_t
__attribute__ ((__always_inline__
))
16114 vld2q_dup_s8 (const int8_t * __a
)
16117 __builtin_aarch64_simd_oi __o
;
16118 __o
= __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16119 ret
.val
[0] = (int8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 0);
16120 ret
.val
[1] = (int8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 1);
16124 __extension__
static __inline poly8x16x2_t
__attribute__ ((__always_inline__
))
16125 vld2q_dup_p8 (const poly8_t
* __a
)
16128 __builtin_aarch64_simd_oi __o
;
16129 __o
= __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16130 ret
.val
[0] = (poly8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 0);
16131 ret
.val
[1] = (poly8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 1);
16135 __extension__
static __inline int16x8x2_t
__attribute__ ((__always_inline__
))
16136 vld2q_dup_s16 (const int16_t * __a
)
16139 __builtin_aarch64_simd_oi __o
;
16140 __o
= __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16141 ret
.val
[0] = (int16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 0);
16142 ret
.val
[1] = (int16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 1);
16146 __extension__
static __inline poly16x8x2_t
__attribute__ ((__always_inline__
))
16147 vld2q_dup_p16 (const poly16_t
* __a
)
16150 __builtin_aarch64_simd_oi __o
;
16151 __o
= __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16152 ret
.val
[0] = (poly16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 0);
16153 ret
.val
[1] = (poly16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 1);
16157 __extension__
static __inline int32x4x2_t
__attribute__ ((__always_inline__
))
16158 vld2q_dup_s32 (const int32_t * __a
)
16161 __builtin_aarch64_simd_oi __o
;
16162 __o
= __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si
*) __a
);
16163 ret
.val
[0] = (int32x4_t
) __builtin_aarch64_get_qregoiv4si (__o
, 0);
16164 ret
.val
[1] = (int32x4_t
) __builtin_aarch64_get_qregoiv4si (__o
, 1);
16168 __extension__
static __inline int64x2x2_t
__attribute__ ((__always_inline__
))
16169 vld2q_dup_s64 (const int64_t * __a
)
16172 __builtin_aarch64_simd_oi __o
;
16173 __o
= __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di
*) __a
);
16174 ret
.val
[0] = (int64x2_t
) __builtin_aarch64_get_qregoiv2di (__o
, 0);
16175 ret
.val
[1] = (int64x2_t
) __builtin_aarch64_get_qregoiv2di (__o
, 1);
16179 __extension__
static __inline uint8x16x2_t
__attribute__ ((__always_inline__
))
16180 vld2q_dup_u8 (const uint8_t * __a
)
16183 __builtin_aarch64_simd_oi __o
;
16184 __o
= __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16185 ret
.val
[0] = (uint8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 0);
16186 ret
.val
[1] = (uint8x16_t
) __builtin_aarch64_get_qregoiv16qi (__o
, 1);
16190 __extension__
static __inline uint16x8x2_t
__attribute__ ((__always_inline__
))
16191 vld2q_dup_u16 (const uint16_t * __a
)
16194 __builtin_aarch64_simd_oi __o
;
16195 __o
= __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16196 ret
.val
[0] = (uint16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 0);
16197 ret
.val
[1] = (uint16x8_t
) __builtin_aarch64_get_qregoiv8hi (__o
, 1);
16201 __extension__
static __inline uint32x4x2_t
__attribute__ ((__always_inline__
))
16202 vld2q_dup_u32 (const uint32_t * __a
)
16205 __builtin_aarch64_simd_oi __o
;
16206 __o
= __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si
*) __a
);
16207 ret
.val
[0] = (uint32x4_t
) __builtin_aarch64_get_qregoiv4si (__o
, 0);
16208 ret
.val
[1] = (uint32x4_t
) __builtin_aarch64_get_qregoiv4si (__o
, 1);
16212 __extension__
static __inline uint64x2x2_t
__attribute__ ((__always_inline__
))
16213 vld2q_dup_u64 (const uint64_t * __a
)
16216 __builtin_aarch64_simd_oi __o
;
16217 __o
= __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di
*) __a
);
16218 ret
.val
[0] = (uint64x2_t
) __builtin_aarch64_get_qregoiv2di (__o
, 0);
16219 ret
.val
[1] = (uint64x2_t
) __builtin_aarch64_get_qregoiv2di (__o
, 1);
16223 __extension__
static __inline float16x8x2_t
__attribute__ ((__always_inline__
))
16224 vld2q_dup_f16 (const float16_t
* __a
)
16227 __builtin_aarch64_simd_oi __o
;
16228 __o
= __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf
*) __a
);
16229 ret
.val
[0] = (float16x8_t
) __builtin_aarch64_get_qregoiv8hf (__o
, 0);
16230 ret
.val
[1] = __builtin_aarch64_get_qregoiv8hf (__o
, 1);
16234 __extension__
static __inline float32x4x2_t
__attribute__ ((__always_inline__
))
16235 vld2q_dup_f32 (const float32_t
* __a
)
16238 __builtin_aarch64_simd_oi __o
;
16239 __o
= __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf
*) __a
);
16240 ret
.val
[0] = (float32x4_t
) __builtin_aarch64_get_qregoiv4sf (__o
, 0);
16241 ret
.val
[1] = (float32x4_t
) __builtin_aarch64_get_qregoiv4sf (__o
, 1);
16245 __extension__
static __inline float64x2x2_t
__attribute__ ((__always_inline__
))
16246 vld2q_dup_f64 (const float64_t
* __a
)
16249 __builtin_aarch64_simd_oi __o
;
16250 __o
= __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df
*) __a
);
16251 ret
.val
[0] = (float64x2_t
) __builtin_aarch64_get_qregoiv2df (__o
, 0);
16252 ret
.val
[1] = (float64x2_t
) __builtin_aarch64_get_qregoiv2df (__o
, 1);
16256 __extension__
static __inline int64x1x3_t
__attribute__ ((__always_inline__
))
16257 vld3_dup_s64 (const int64_t * __a
)
16260 __builtin_aarch64_simd_ci __o
;
16261 __o
= __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di
*) __a
);
16262 ret
.val
[0] = (int64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 0);
16263 ret
.val
[1] = (int64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 1);
16264 ret
.val
[2] = (int64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 2);
16268 __extension__
static __inline uint64x1x3_t
__attribute__ ((__always_inline__
))
16269 vld3_dup_u64 (const uint64_t * __a
)
16272 __builtin_aarch64_simd_ci __o
;
16273 __o
= __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di
*) __a
);
16274 ret
.val
[0] = (uint64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 0);
16275 ret
.val
[1] = (uint64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 1);
16276 ret
.val
[2] = (uint64x1_t
) __builtin_aarch64_get_dregcidi (__o
, 2);
16280 __extension__
static __inline float64x1x3_t
__attribute__ ((__always_inline__
))
16281 vld3_dup_f64 (const float64_t
* __a
)
16284 __builtin_aarch64_simd_ci __o
;
16285 __o
= __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df
*) __a
);
16286 ret
.val
[0] = (float64x1_t
) {__builtin_aarch64_get_dregcidf (__o
, 0)};
16287 ret
.val
[1] = (float64x1_t
) {__builtin_aarch64_get_dregcidf (__o
, 1)};
16288 ret
.val
[2] = (float64x1_t
) {__builtin_aarch64_get_dregcidf (__o
, 2)};
16292 __extension__
static __inline int8x8x3_t
__attribute__ ((__always_inline__
))
16293 vld3_dup_s8 (const int8_t * __a
)
16296 __builtin_aarch64_simd_ci __o
;
16297 __o
= __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
16298 ret
.val
[0] = (int8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 0);
16299 ret
.val
[1] = (int8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 1);
16300 ret
.val
[2] = (int8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 2);
16304 __extension__
static __inline poly8x8x3_t
__attribute__ ((__always_inline__
))
16305 vld3_dup_p8 (const poly8_t
* __a
)
16308 __builtin_aarch64_simd_ci __o
;
16309 __o
= __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
16310 ret
.val
[0] = (poly8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 0);
16311 ret
.val
[1] = (poly8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 1);
16312 ret
.val
[2] = (poly8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 2);
16316 __extension__
static __inline int16x4x3_t
__attribute__ ((__always_inline__
))
16317 vld3_dup_s16 (const int16_t * __a
)
16320 __builtin_aarch64_simd_ci __o
;
16321 __o
= __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
16322 ret
.val
[0] = (int16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 0);
16323 ret
.val
[1] = (int16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 1);
16324 ret
.val
[2] = (int16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 2);
16328 __extension__
static __inline poly16x4x3_t
__attribute__ ((__always_inline__
))
16329 vld3_dup_p16 (const poly16_t
* __a
)
16332 __builtin_aarch64_simd_ci __o
;
16333 __o
= __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
16334 ret
.val
[0] = (poly16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 0);
16335 ret
.val
[1] = (poly16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 1);
16336 ret
.val
[2] = (poly16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 2);
16340 __extension__
static __inline int32x2x3_t
__attribute__ ((__always_inline__
))
16341 vld3_dup_s32 (const int32_t * __a
)
16344 __builtin_aarch64_simd_ci __o
;
16345 __o
= __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si
*) __a
);
16346 ret
.val
[0] = (int32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 0);
16347 ret
.val
[1] = (int32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 1);
16348 ret
.val
[2] = (int32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 2);
16352 __extension__
static __inline uint8x8x3_t
__attribute__ ((__always_inline__
))
16353 vld3_dup_u8 (const uint8_t * __a
)
16356 __builtin_aarch64_simd_ci __o
;
16357 __o
= __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
16358 ret
.val
[0] = (uint8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 0);
16359 ret
.val
[1] = (uint8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 1);
16360 ret
.val
[2] = (uint8x8_t
) __builtin_aarch64_get_dregciv8qi (__o
, 2);
16364 __extension__
static __inline uint16x4x3_t
__attribute__ ((__always_inline__
))
16365 vld3_dup_u16 (const uint16_t * __a
)
16368 __builtin_aarch64_simd_ci __o
;
16369 __o
= __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
16370 ret
.val
[0] = (uint16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 0);
16371 ret
.val
[1] = (uint16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 1);
16372 ret
.val
[2] = (uint16x4_t
) __builtin_aarch64_get_dregciv4hi (__o
, 2);
16376 __extension__
static __inline uint32x2x3_t
__attribute__ ((__always_inline__
))
16377 vld3_dup_u32 (const uint32_t * __a
)
16380 __builtin_aarch64_simd_ci __o
;
16381 __o
= __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si
*) __a
);
16382 ret
.val
[0] = (uint32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 0);
16383 ret
.val
[1] = (uint32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 1);
16384 ret
.val
[2] = (uint32x2_t
) __builtin_aarch64_get_dregciv2si (__o
, 2);
16388 __extension__
static __inline float16x4x3_t
__attribute__ ((__always_inline__
))
16389 vld3_dup_f16 (const float16_t
* __a
)
16392 __builtin_aarch64_simd_ci __o
;
16393 __o
= __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf
*) __a
);
16394 ret
.val
[0] = (float16x4_t
) __builtin_aarch64_get_dregciv4hf (__o
, 0);
16395 ret
.val
[1] = (float16x4_t
) __builtin_aarch64_get_dregciv4hf (__o
, 1);
16396 ret
.val
[2] = (float16x4_t
) __builtin_aarch64_get_dregciv4hf (__o
, 2);
16400 __extension__
static __inline float32x2x3_t
__attribute__ ((__always_inline__
))
16401 vld3_dup_f32 (const float32_t
* __a
)
16404 __builtin_aarch64_simd_ci __o
;
16405 __o
= __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf
*) __a
);
16406 ret
.val
[0] = (float32x2_t
) __builtin_aarch64_get_dregciv2sf (__o
, 0);
16407 ret
.val
[1] = (float32x2_t
) __builtin_aarch64_get_dregciv2sf (__o
, 1);
16408 ret
.val
[2] = (float32x2_t
) __builtin_aarch64_get_dregciv2sf (__o
, 2);
16412 __extension__
static __inline int8x16x3_t
__attribute__ ((__always_inline__
))
16413 vld3q_dup_s8 (const int8_t * __a
)
16416 __builtin_aarch64_simd_ci __o
;
16417 __o
= __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16418 ret
.val
[0] = (int8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 0);
16419 ret
.val
[1] = (int8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 1);
16420 ret
.val
[2] = (int8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 2);
16424 __extension__
static __inline poly8x16x3_t
__attribute__ ((__always_inline__
))
16425 vld3q_dup_p8 (const poly8_t
* __a
)
16428 __builtin_aarch64_simd_ci __o
;
16429 __o
= __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16430 ret
.val
[0] = (poly8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 0);
16431 ret
.val
[1] = (poly8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 1);
16432 ret
.val
[2] = (poly8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 2);
16436 __extension__
static __inline int16x8x3_t
__attribute__ ((__always_inline__
))
16437 vld3q_dup_s16 (const int16_t * __a
)
16440 __builtin_aarch64_simd_ci __o
;
16441 __o
= __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16442 ret
.val
[0] = (int16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 0);
16443 ret
.val
[1] = (int16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 1);
16444 ret
.val
[2] = (int16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 2);
16448 __extension__
static __inline poly16x8x3_t
__attribute__ ((__always_inline__
))
16449 vld3q_dup_p16 (const poly16_t
* __a
)
16452 __builtin_aarch64_simd_ci __o
;
16453 __o
= __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16454 ret
.val
[0] = (poly16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 0);
16455 ret
.val
[1] = (poly16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 1);
16456 ret
.val
[2] = (poly16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 2);
16460 __extension__
static __inline int32x4x3_t
__attribute__ ((__always_inline__
))
16461 vld3q_dup_s32 (const int32_t * __a
)
16464 __builtin_aarch64_simd_ci __o
;
16465 __o
= __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si
*) __a
);
16466 ret
.val
[0] = (int32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 0);
16467 ret
.val
[1] = (int32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 1);
16468 ret
.val
[2] = (int32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 2);
16472 __extension__
static __inline int64x2x3_t
__attribute__ ((__always_inline__
))
16473 vld3q_dup_s64 (const int64_t * __a
)
16476 __builtin_aarch64_simd_ci __o
;
16477 __o
= __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di
*) __a
);
16478 ret
.val
[0] = (int64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 0);
16479 ret
.val
[1] = (int64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 1);
16480 ret
.val
[2] = (int64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 2);
16484 __extension__
static __inline uint8x16x3_t
__attribute__ ((__always_inline__
))
16485 vld3q_dup_u8 (const uint8_t * __a
)
16488 __builtin_aarch64_simd_ci __o
;
16489 __o
= __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16490 ret
.val
[0] = (uint8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 0);
16491 ret
.val
[1] = (uint8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 1);
16492 ret
.val
[2] = (uint8x16_t
) __builtin_aarch64_get_qregciv16qi (__o
, 2);
16496 __extension__
static __inline uint16x8x3_t
__attribute__ ((__always_inline__
))
16497 vld3q_dup_u16 (const uint16_t * __a
)
16500 __builtin_aarch64_simd_ci __o
;
16501 __o
= __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16502 ret
.val
[0] = (uint16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 0);
16503 ret
.val
[1] = (uint16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 1);
16504 ret
.val
[2] = (uint16x8_t
) __builtin_aarch64_get_qregciv8hi (__o
, 2);
16508 __extension__
static __inline uint32x4x3_t
__attribute__ ((__always_inline__
))
16509 vld3q_dup_u32 (const uint32_t * __a
)
16512 __builtin_aarch64_simd_ci __o
;
16513 __o
= __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si
*) __a
);
16514 ret
.val
[0] = (uint32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 0);
16515 ret
.val
[1] = (uint32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 1);
16516 ret
.val
[2] = (uint32x4_t
) __builtin_aarch64_get_qregciv4si (__o
, 2);
16520 __extension__
static __inline uint64x2x3_t
__attribute__ ((__always_inline__
))
16521 vld3q_dup_u64 (const uint64_t * __a
)
16524 __builtin_aarch64_simd_ci __o
;
16525 __o
= __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di
*) __a
);
16526 ret
.val
[0] = (uint64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 0);
16527 ret
.val
[1] = (uint64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 1);
16528 ret
.val
[2] = (uint64x2_t
) __builtin_aarch64_get_qregciv2di (__o
, 2);
16532 __extension__
static __inline float16x8x3_t
__attribute__ ((__always_inline__
))
16533 vld3q_dup_f16 (const float16_t
* __a
)
16536 __builtin_aarch64_simd_ci __o
;
16537 __o
= __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf
*) __a
);
16538 ret
.val
[0] = (float16x8_t
) __builtin_aarch64_get_qregciv8hf (__o
, 0);
16539 ret
.val
[1] = (float16x8_t
) __builtin_aarch64_get_qregciv8hf (__o
, 1);
16540 ret
.val
[2] = (float16x8_t
) __builtin_aarch64_get_qregciv8hf (__o
, 2);
16544 __extension__
static __inline float32x4x3_t
__attribute__ ((__always_inline__
))
16545 vld3q_dup_f32 (const float32_t
* __a
)
16548 __builtin_aarch64_simd_ci __o
;
16549 __o
= __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf
*) __a
);
16550 ret
.val
[0] = (float32x4_t
) __builtin_aarch64_get_qregciv4sf (__o
, 0);
16551 ret
.val
[1] = (float32x4_t
) __builtin_aarch64_get_qregciv4sf (__o
, 1);
16552 ret
.val
[2] = (float32x4_t
) __builtin_aarch64_get_qregciv4sf (__o
, 2);
16556 __extension__
static __inline float64x2x3_t
__attribute__ ((__always_inline__
))
16557 vld3q_dup_f64 (const float64_t
* __a
)
16560 __builtin_aarch64_simd_ci __o
;
16561 __o
= __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df
*) __a
);
16562 ret
.val
[0] = (float64x2_t
) __builtin_aarch64_get_qregciv2df (__o
, 0);
16563 ret
.val
[1] = (float64x2_t
) __builtin_aarch64_get_qregciv2df (__o
, 1);
16564 ret
.val
[2] = (float64x2_t
) __builtin_aarch64_get_qregciv2df (__o
, 2);
16568 __extension__
static __inline int64x1x4_t
__attribute__ ((__always_inline__
))
16569 vld4_dup_s64 (const int64_t * __a
)
16572 __builtin_aarch64_simd_xi __o
;
16573 __o
= __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di
*) __a
);
16574 ret
.val
[0] = (int64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 0);
16575 ret
.val
[1] = (int64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 1);
16576 ret
.val
[2] = (int64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 2);
16577 ret
.val
[3] = (int64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 3);
16581 __extension__
static __inline uint64x1x4_t
__attribute__ ((__always_inline__
))
16582 vld4_dup_u64 (const uint64_t * __a
)
16585 __builtin_aarch64_simd_xi __o
;
16586 __o
= __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di
*) __a
);
16587 ret
.val
[0] = (uint64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 0);
16588 ret
.val
[1] = (uint64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 1);
16589 ret
.val
[2] = (uint64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 2);
16590 ret
.val
[3] = (uint64x1_t
) __builtin_aarch64_get_dregxidi (__o
, 3);
16594 __extension__
static __inline float64x1x4_t
__attribute__ ((__always_inline__
))
16595 vld4_dup_f64 (const float64_t
* __a
)
16598 __builtin_aarch64_simd_xi __o
;
16599 __o
= __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df
*) __a
);
16600 ret
.val
[0] = (float64x1_t
) {__builtin_aarch64_get_dregxidf (__o
, 0)};
16601 ret
.val
[1] = (float64x1_t
) {__builtin_aarch64_get_dregxidf (__o
, 1)};
16602 ret
.val
[2] = (float64x1_t
) {__builtin_aarch64_get_dregxidf (__o
, 2)};
16603 ret
.val
[3] = (float64x1_t
) {__builtin_aarch64_get_dregxidf (__o
, 3)};
16607 __extension__
static __inline int8x8x4_t
__attribute__ ((__always_inline__
))
16608 vld4_dup_s8 (const int8_t * __a
)
16611 __builtin_aarch64_simd_xi __o
;
16612 __o
= __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
16613 ret
.val
[0] = (int8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 0);
16614 ret
.val
[1] = (int8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 1);
16615 ret
.val
[2] = (int8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 2);
16616 ret
.val
[3] = (int8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 3);
16620 __extension__
static __inline poly8x8x4_t
__attribute__ ((__always_inline__
))
16621 vld4_dup_p8 (const poly8_t
* __a
)
16624 __builtin_aarch64_simd_xi __o
;
16625 __o
= __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
16626 ret
.val
[0] = (poly8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 0);
16627 ret
.val
[1] = (poly8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 1);
16628 ret
.val
[2] = (poly8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 2);
16629 ret
.val
[3] = (poly8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 3);
16633 __extension__
static __inline int16x4x4_t
__attribute__ ((__always_inline__
))
16634 vld4_dup_s16 (const int16_t * __a
)
16637 __builtin_aarch64_simd_xi __o
;
16638 __o
= __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
16639 ret
.val
[0] = (int16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 0);
16640 ret
.val
[1] = (int16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 1);
16641 ret
.val
[2] = (int16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 2);
16642 ret
.val
[3] = (int16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 3);
16646 __extension__
static __inline poly16x4x4_t
__attribute__ ((__always_inline__
))
16647 vld4_dup_p16 (const poly16_t
* __a
)
16650 __builtin_aarch64_simd_xi __o
;
16651 __o
= __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
16652 ret
.val
[0] = (poly16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 0);
16653 ret
.val
[1] = (poly16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 1);
16654 ret
.val
[2] = (poly16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 2);
16655 ret
.val
[3] = (poly16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 3);
16659 __extension__
static __inline int32x2x4_t
__attribute__ ((__always_inline__
))
16660 vld4_dup_s32 (const int32_t * __a
)
16663 __builtin_aarch64_simd_xi __o
;
16664 __o
= __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si
*) __a
);
16665 ret
.val
[0] = (int32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 0);
16666 ret
.val
[1] = (int32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 1);
16667 ret
.val
[2] = (int32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 2);
16668 ret
.val
[3] = (int32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 3);
16672 __extension__
static __inline uint8x8x4_t
__attribute__ ((__always_inline__
))
16673 vld4_dup_u8 (const uint8_t * __a
)
16676 __builtin_aarch64_simd_xi __o
;
16677 __o
= __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi
*) __a
);
16678 ret
.val
[0] = (uint8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 0);
16679 ret
.val
[1] = (uint8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 1);
16680 ret
.val
[2] = (uint8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 2);
16681 ret
.val
[3] = (uint8x8_t
) __builtin_aarch64_get_dregxiv8qi (__o
, 3);
16685 __extension__
static __inline uint16x4x4_t
__attribute__ ((__always_inline__
))
16686 vld4_dup_u16 (const uint16_t * __a
)
16689 __builtin_aarch64_simd_xi __o
;
16690 __o
= __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi
*) __a
);
16691 ret
.val
[0] = (uint16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 0);
16692 ret
.val
[1] = (uint16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 1);
16693 ret
.val
[2] = (uint16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 2);
16694 ret
.val
[3] = (uint16x4_t
) __builtin_aarch64_get_dregxiv4hi (__o
, 3);
16698 __extension__
static __inline uint32x2x4_t
__attribute__ ((__always_inline__
))
16699 vld4_dup_u32 (const uint32_t * __a
)
16702 __builtin_aarch64_simd_xi __o
;
16703 __o
= __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si
*) __a
);
16704 ret
.val
[0] = (uint32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 0);
16705 ret
.val
[1] = (uint32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 1);
16706 ret
.val
[2] = (uint32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 2);
16707 ret
.val
[3] = (uint32x2_t
) __builtin_aarch64_get_dregxiv2si (__o
, 3);
16711 __extension__
static __inline float16x4x4_t
__attribute__ ((__always_inline__
))
16712 vld4_dup_f16 (const float16_t
* __a
)
16715 __builtin_aarch64_simd_xi __o
;
16716 __o
= __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf
*) __a
);
16717 ret
.val
[0] = (float16x4_t
) __builtin_aarch64_get_dregxiv4hf (__o
, 0);
16718 ret
.val
[1] = (float16x4_t
) __builtin_aarch64_get_dregxiv4hf (__o
, 1);
16719 ret
.val
[2] = (float16x4_t
) __builtin_aarch64_get_dregxiv4hf (__o
, 2);
16720 ret
.val
[3] = (float16x4_t
) __builtin_aarch64_get_dregxiv4hf (__o
, 3);
16724 __extension__
static __inline float32x2x4_t
__attribute__ ((__always_inline__
))
16725 vld4_dup_f32 (const float32_t
* __a
)
16728 __builtin_aarch64_simd_xi __o
;
16729 __o
= __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf
*) __a
);
16730 ret
.val
[0] = (float32x2_t
) __builtin_aarch64_get_dregxiv2sf (__o
, 0);
16731 ret
.val
[1] = (float32x2_t
) __builtin_aarch64_get_dregxiv2sf (__o
, 1);
16732 ret
.val
[2] = (float32x2_t
) __builtin_aarch64_get_dregxiv2sf (__o
, 2);
16733 ret
.val
[3] = (float32x2_t
) __builtin_aarch64_get_dregxiv2sf (__o
, 3);
16737 __extension__
static __inline int8x16x4_t
__attribute__ ((__always_inline__
))
16738 vld4q_dup_s8 (const int8_t * __a
)
16741 __builtin_aarch64_simd_xi __o
;
16742 __o
= __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16743 ret
.val
[0] = (int8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 0);
16744 ret
.val
[1] = (int8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 1);
16745 ret
.val
[2] = (int8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 2);
16746 ret
.val
[3] = (int8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 3);
16750 __extension__
static __inline poly8x16x4_t
__attribute__ ((__always_inline__
))
16751 vld4q_dup_p8 (const poly8_t
* __a
)
16754 __builtin_aarch64_simd_xi __o
;
16755 __o
= __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16756 ret
.val
[0] = (poly8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 0);
16757 ret
.val
[1] = (poly8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 1);
16758 ret
.val
[2] = (poly8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 2);
16759 ret
.val
[3] = (poly8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 3);
16763 __extension__
static __inline int16x8x4_t
__attribute__ ((__always_inline__
))
16764 vld4q_dup_s16 (const int16_t * __a
)
16767 __builtin_aarch64_simd_xi __o
;
16768 __o
= __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16769 ret
.val
[0] = (int16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 0);
16770 ret
.val
[1] = (int16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 1);
16771 ret
.val
[2] = (int16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 2);
16772 ret
.val
[3] = (int16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 3);
16776 __extension__
static __inline poly16x8x4_t
__attribute__ ((__always_inline__
))
16777 vld4q_dup_p16 (const poly16_t
* __a
)
16780 __builtin_aarch64_simd_xi __o
;
16781 __o
= __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16782 ret
.val
[0] = (poly16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 0);
16783 ret
.val
[1] = (poly16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 1);
16784 ret
.val
[2] = (poly16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 2);
16785 ret
.val
[3] = (poly16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 3);
16789 __extension__
static __inline int32x4x4_t
__attribute__ ((__always_inline__
))
16790 vld4q_dup_s32 (const int32_t * __a
)
16793 __builtin_aarch64_simd_xi __o
;
16794 __o
= __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si
*) __a
);
16795 ret
.val
[0] = (int32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 0);
16796 ret
.val
[1] = (int32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 1);
16797 ret
.val
[2] = (int32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 2);
16798 ret
.val
[3] = (int32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 3);
16802 __extension__
static __inline int64x2x4_t
__attribute__ ((__always_inline__
))
16803 vld4q_dup_s64 (const int64_t * __a
)
16806 __builtin_aarch64_simd_xi __o
;
16807 __o
= __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di
*) __a
);
16808 ret
.val
[0] = (int64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 0);
16809 ret
.val
[1] = (int64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 1);
16810 ret
.val
[2] = (int64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 2);
16811 ret
.val
[3] = (int64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 3);
16815 __extension__
static __inline uint8x16x4_t
__attribute__ ((__always_inline__
))
16816 vld4q_dup_u8 (const uint8_t * __a
)
16819 __builtin_aarch64_simd_xi __o
;
16820 __o
= __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi
*) __a
);
16821 ret
.val
[0] = (uint8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 0);
16822 ret
.val
[1] = (uint8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 1);
16823 ret
.val
[2] = (uint8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 2);
16824 ret
.val
[3] = (uint8x16_t
) __builtin_aarch64_get_qregxiv16qi (__o
, 3);
16828 __extension__
static __inline uint16x8x4_t
__attribute__ ((__always_inline__
))
16829 vld4q_dup_u16 (const uint16_t * __a
)
16832 __builtin_aarch64_simd_xi __o
;
16833 __o
= __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi
*) __a
);
16834 ret
.val
[0] = (uint16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 0);
16835 ret
.val
[1] = (uint16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 1);
16836 ret
.val
[2] = (uint16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 2);
16837 ret
.val
[3] = (uint16x8_t
) __builtin_aarch64_get_qregxiv8hi (__o
, 3);
16841 __extension__
static __inline uint32x4x4_t
__attribute__ ((__always_inline__
))
16842 vld4q_dup_u32 (const uint32_t * __a
)
16845 __builtin_aarch64_simd_xi __o
;
16846 __o
= __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si
*) __a
);
16847 ret
.val
[0] = (uint32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 0);
16848 ret
.val
[1] = (uint32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 1);
16849 ret
.val
[2] = (uint32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 2);
16850 ret
.val
[3] = (uint32x4_t
) __builtin_aarch64_get_qregxiv4si (__o
, 3);
16854 __extension__
static __inline uint64x2x4_t
__attribute__ ((__always_inline__
))
16855 vld4q_dup_u64 (const uint64_t * __a
)
16858 __builtin_aarch64_simd_xi __o
;
16859 __o
= __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di
*) __a
);
16860 ret
.val
[0] = (uint64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 0);
16861 ret
.val
[1] = (uint64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 1);
16862 ret
.val
[2] = (uint64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 2);
16863 ret
.val
[3] = (uint64x2_t
) __builtin_aarch64_get_qregxiv2di (__o
, 3);
16867 __extension__
static __inline float16x8x4_t
__attribute__ ((__always_inline__
))
16868 vld4q_dup_f16 (const float16_t
* __a
)
16871 __builtin_aarch64_simd_xi __o
;
16872 __o
= __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf
*) __a
);
16873 ret
.val
[0] = (float16x8_t
) __builtin_aarch64_get_qregxiv8hf (__o
, 0);
16874 ret
.val
[1] = (float16x8_t
) __builtin_aarch64_get_qregxiv8hf (__o
, 1);
16875 ret
.val
[2] = (float16x8_t
) __builtin_aarch64_get_qregxiv8hf (__o
, 2);
16876 ret
.val
[3] = (float16x8_t
) __builtin_aarch64_get_qregxiv8hf (__o
, 3);
16880 __extension__
static __inline float32x4x4_t
__attribute__ ((__always_inline__
))
16881 vld4q_dup_f32 (const float32_t
* __a
)
16884 __builtin_aarch64_simd_xi __o
;
16885 __o
= __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf
*) __a
);
16886 ret
.val
[0] = (float32x4_t
) __builtin_aarch64_get_qregxiv4sf (__o
, 0);
16887 ret
.val
[1] = (float32x4_t
) __builtin_aarch64_get_qregxiv4sf (__o
, 1);
16888 ret
.val
[2] = (float32x4_t
) __builtin_aarch64_get_qregxiv4sf (__o
, 2);
16889 ret
.val
[3] = (float32x4_t
) __builtin_aarch64_get_qregxiv4sf (__o
, 3);
16893 __extension__
static __inline float64x2x4_t
__attribute__ ((__always_inline__
))
16894 vld4q_dup_f64 (const float64_t
* __a
)
16897 __builtin_aarch64_simd_xi __o
;
16898 __o
= __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df
*) __a
);
16899 ret
.val
[0] = (float64x2_t
) __builtin_aarch64_get_qregxiv2df (__o
, 0);
16900 ret
.val
[1] = (float64x2_t
) __builtin_aarch64_get_qregxiv2df (__o
, 1);
16901 ret
.val
[2] = (float64x2_t
) __builtin_aarch64_get_qregxiv2df (__o
, 2);
16902 ret
.val
[3] = (float64x2_t
) __builtin_aarch64_get_qregxiv2df (__o
, 3);
16908 #define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
16909 qmode, ptrmode, funcsuffix, signedtype) \
16910 __extension__ static __inline intype __attribute__ ((__always_inline__)) \
16911 vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
16913 __builtin_aarch64_simd_oi __o; \
16914 largetype __temp; \
16916 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
16918 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
16919 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
16920 (signedtype) __temp.val[0], \
16922 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
16923 (signedtype) __temp.val[1], \
16925 __o = __builtin_aarch64_ld2_lane##mode ( \
16926 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
16927 __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0); \
16928 __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1); \
16932 __LD2_LANE_FUNC (float16x4x2_t
, float16x4_t
, float16x8x2_t
, float16_t
, v4hf
,
16933 v8hf
, hf
, f16
, float16x8_t
)
16934 __LD2_LANE_FUNC (float32x2x2_t
, float32x2_t
, float32x4x2_t
, float32_t
, v2sf
, v4sf
,
16935 sf
, f32
, float32x4_t
)
16936 __LD2_LANE_FUNC (float64x1x2_t
, float64x1_t
, float64x2x2_t
, float64_t
, df
, v2df
,
16937 df
, f64
, float64x2_t
)
16938 __LD2_LANE_FUNC (poly8x8x2_t
, poly8x8_t
, poly8x16x2_t
, poly8_t
, v8qi
, v16qi
, qi
, p8
,
16940 __LD2_LANE_FUNC (poly16x4x2_t
, poly16x4_t
, poly16x8x2_t
, poly16_t
, v4hi
, v8hi
, hi
,
16942 __LD2_LANE_FUNC (int8x8x2_t
, int8x8_t
, int8x16x2_t
, int8_t, v8qi
, v16qi
, qi
, s8
,
16944 __LD2_LANE_FUNC (int16x4x2_t
, int16x4_t
, int16x8x2_t
, int16_t, v4hi
, v8hi
, hi
, s16
,
16946 __LD2_LANE_FUNC (int32x2x2_t
, int32x2_t
, int32x4x2_t
, int32_t, v2si
, v4si
, si
, s32
,
16948 __LD2_LANE_FUNC (int64x1x2_t
, int64x1_t
, int64x2x2_t
, int64_t, di
, v2di
, di
, s64
,
16950 __LD2_LANE_FUNC (uint8x8x2_t
, uint8x8_t
, uint8x16x2_t
, uint8_t, v8qi
, v16qi
, qi
, u8
,
16952 __LD2_LANE_FUNC (uint16x4x2_t
, uint16x4_t
, uint16x8x2_t
, uint16_t, v4hi
, v8hi
, hi
,
16954 __LD2_LANE_FUNC (uint32x2x2_t
, uint32x2_t
, uint32x4x2_t
, uint32_t, v2si
, v4si
, si
,
16956 __LD2_LANE_FUNC (uint64x1x2_t
, uint64x1_t
, uint64x2x2_t
, uint64_t, di
, v2di
, di
,
16959 #undef __LD2_LANE_FUNC
16963 #define __LD2_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
16964 __extension__ static __inline intype __attribute__ ((__always_inline__)) \
16965 vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
16967 __builtin_aarch64_simd_oi __o; \
16969 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
16970 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
16971 __o = __builtin_aarch64_ld2_lane##mode ( \
16972 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
16973 ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0); \
16974 ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1); \
16978 __LD2_LANE_FUNC (float16x8x2_t
, float16x8_t
, float16_t
, v8hf
, hf
, f16
)
16979 __LD2_LANE_FUNC (float32x4x2_t
, float32x4_t
, float32_t
, v4sf
, sf
, f32
)
16980 __LD2_LANE_FUNC (float64x2x2_t
, float64x2_t
, float64_t
, v2df
, df
, f64
)
16981 __LD2_LANE_FUNC (poly8x16x2_t
, poly8x16_t
, poly8_t
, v16qi
, qi
, p8
)
16982 __LD2_LANE_FUNC (poly16x8x2_t
, poly16x8_t
, poly16_t
, v8hi
, hi
, p16
)
16983 __LD2_LANE_FUNC (int8x16x2_t
, int8x16_t
, int8_t, v16qi
, qi
, s8
)
16984 __LD2_LANE_FUNC (int16x8x2_t
, int16x8_t
, int16_t, v8hi
, hi
, s16
)
16985 __LD2_LANE_FUNC (int32x4x2_t
, int32x4_t
, int32_t, v4si
, si
, s32
)
16986 __LD2_LANE_FUNC (int64x2x2_t
, int64x2_t
, int64_t, v2di
, di
, s64
)
16987 __LD2_LANE_FUNC (uint8x16x2_t
, uint8x16_t
, uint8_t, v16qi
, qi
, u8
)
16988 __LD2_LANE_FUNC (uint16x8x2_t
, uint16x8_t
, uint16_t, v8hi
, hi
, u16
)
16989 __LD2_LANE_FUNC (uint32x4x2_t
, uint32x4_t
, uint32_t, v4si
, si
, u32
)
16990 __LD2_LANE_FUNC (uint64x2x2_t
, uint64x2_t
, uint64_t, v2di
, di
, u64
)
16992 #undef __LD2_LANE_FUNC
16996 #define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
16997 qmode, ptrmode, funcsuffix, signedtype) \
16998 __extension__ static __inline intype __attribute__ ((__always_inline__)) \
16999 vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
17001 __builtin_aarch64_simd_ci __o; \
17002 largetype __temp; \
17004 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
17006 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
17008 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
17009 __o = __builtin_aarch64_set_qregci##qmode (__o, \
17010 (signedtype) __temp.val[0], \
17012 __o = __builtin_aarch64_set_qregci##qmode (__o, \
17013 (signedtype) __temp.val[1], \
17015 __o = __builtin_aarch64_set_qregci##qmode (__o, \
17016 (signedtype) __temp.val[2], \
17018 __o = __builtin_aarch64_ld3_lane##mode ( \
17019 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
17020 __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0); \
17021 __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1); \
17022 __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2); \
17026 __LD3_LANE_FUNC (float16x4x3_t
, float16x4_t
, float16x8x3_t
, float16_t
, v4hf
,
17027 v8hf
, hf
, f16
, float16x8_t
)
17028 __LD3_LANE_FUNC (float32x2x3_t
, float32x2_t
, float32x4x3_t
, float32_t
, v2sf
, v4sf
,
17029 sf
, f32
, float32x4_t
)
17030 __LD3_LANE_FUNC (float64x1x3_t
, float64x1_t
, float64x2x3_t
, float64_t
, df
, v2df
,
17031 df
, f64
, float64x2_t
)
17032 __LD3_LANE_FUNC (poly8x8x3_t
, poly8x8_t
, poly8x16x3_t
, poly8_t
, v8qi
, v16qi
, qi
, p8
,
17034 __LD3_LANE_FUNC (poly16x4x3_t
, poly16x4_t
, poly16x8x3_t
, poly16_t
, v4hi
, v8hi
, hi
,
17036 __LD3_LANE_FUNC (int8x8x3_t
, int8x8_t
, int8x16x3_t
, int8_t, v8qi
, v16qi
, qi
, s8
,
17038 __LD3_LANE_FUNC (int16x4x3_t
, int16x4_t
, int16x8x3_t
, int16_t, v4hi
, v8hi
, hi
, s16
,
17040 __LD3_LANE_FUNC (int32x2x3_t
, int32x2_t
, int32x4x3_t
, int32_t, v2si
, v4si
, si
, s32
,
17042 __LD3_LANE_FUNC (int64x1x3_t
, int64x1_t
, int64x2x3_t
, int64_t, di
, v2di
, di
, s64
,
17044 __LD3_LANE_FUNC (uint8x8x3_t
, uint8x8_t
, uint8x16x3_t
, uint8_t, v8qi
, v16qi
, qi
, u8
,
17046 __LD3_LANE_FUNC (uint16x4x3_t
, uint16x4_t
, uint16x8x3_t
, uint16_t, v4hi
, v8hi
, hi
,
17048 __LD3_LANE_FUNC (uint32x2x3_t
, uint32x2_t
, uint32x4x3_t
, uint32_t, v2si
, v4si
, si
,
17050 __LD3_LANE_FUNC (uint64x1x3_t
, uint64x1_t
, uint64x2x3_t
, uint64_t, di
, v2di
, di
,
17053 #undef __LD3_LANE_FUNC
17057 #define __LD3_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
17058 __extension__ static __inline intype __attribute__ ((__always_inline__)) \
17059 vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
17061 __builtin_aarch64_simd_ci __o; \
17063 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
17064 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
17065 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
17066 __o = __builtin_aarch64_ld3_lane##mode ( \
17067 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
17068 ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0); \
17069 ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1); \
17070 ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2); \
17074 __LD3_LANE_FUNC (float16x8x3_t
, float16x8_t
, float16_t
, v8hf
, hf
, f16
)
17075 __LD3_LANE_FUNC (float32x4x3_t
, float32x4_t
, float32_t
, v4sf
, sf
, f32
)
17076 __LD3_LANE_FUNC (float64x2x3_t
, float64x2_t
, float64_t
, v2df
, df
, f64
)
17077 __LD3_LANE_FUNC (poly8x16x3_t
, poly8x16_t
, poly8_t
, v16qi
, qi
, p8
)
17078 __LD3_LANE_FUNC (poly16x8x3_t
, poly16x8_t
, poly16_t
, v8hi
, hi
, p16
)
17079 __LD3_LANE_FUNC (int8x16x3_t
, int8x16_t
, int8_t, v16qi
, qi
, s8
)
17080 __LD3_LANE_FUNC (int16x8x3_t
, int16x8_t
, int16_t, v8hi
, hi
, s16
)
17081 __LD3_LANE_FUNC (int32x4x3_t
, int32x4_t
, int32_t, v4si
, si
, s32
)
17082 __LD3_LANE_FUNC (int64x2x3_t
, int64x2_t
, int64_t, v2di
, di
, s64
)
17083 __LD3_LANE_FUNC (uint8x16x3_t
, uint8x16_t
, uint8_t, v16qi
, qi
, u8
)
17084 __LD3_LANE_FUNC (uint16x8x3_t
, uint16x8_t
, uint16_t, v8hi
, hi
, u16
)
17085 __LD3_LANE_FUNC (uint32x4x3_t
, uint32x4_t
, uint32_t, v4si
, si
, u32
)
17086 __LD3_LANE_FUNC (uint64x2x3_t
, uint64x2_t
, uint64_t, v2di
, di
, u64
)
17088 #undef __LD3_LANE_FUNC
17092 #define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
17093 qmode, ptrmode, funcsuffix, signedtype) \
17094 __extension__ static __inline intype __attribute__ ((__always_inline__)) \
17095 vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
17097 __builtin_aarch64_simd_xi __o; \
17098 largetype __temp; \
17100 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
17102 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
17104 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
17106 vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0)); \
17107 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
17108 (signedtype) __temp.val[0], \
17110 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
17111 (signedtype) __temp.val[1], \
17113 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
17114 (signedtype) __temp.val[2], \
17116 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
17117 (signedtype) __temp.val[3], \
17119 __o = __builtin_aarch64_ld4_lane##mode ( \
17120 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
17121 __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0); \
17122 __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1); \
17123 __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2); \
17124 __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3); \
17130 __LD4_LANE_FUNC (float16x4x4_t
, float16x4_t
, float16x8x4_t
, float16_t
, v4hf
,
17131 v8hf
, hf
, f16
, float16x8_t
)
17132 __LD4_LANE_FUNC (float32x2x4_t
, float32x2_t
, float32x4x4_t
, float32_t
, v2sf
, v4sf
,
17133 sf
, f32
, float32x4_t
)
17134 __LD4_LANE_FUNC (float64x1x4_t
, float64x1_t
, float64x2x4_t
, float64_t
, df
, v2df
,
17135 df
, f64
, float64x2_t
)
17136 __LD4_LANE_FUNC (poly8x8x4_t
, poly8x8_t
, poly8x16x4_t
, poly8_t
, v8qi
, v16qi
, qi
, p8
,
17138 __LD4_LANE_FUNC (poly16x4x4_t
, poly16x4_t
, poly16x8x4_t
, poly16_t
, v4hi
, v8hi
, hi
,
17140 __LD4_LANE_FUNC (int8x8x4_t
, int8x8_t
, int8x16x4_t
, int8_t, v8qi
, v16qi
, qi
, s8
,
17142 __LD4_LANE_FUNC (int16x4x4_t
, int16x4_t
, int16x8x4_t
, int16_t, v4hi
, v8hi
, hi
, s16
,
17144 __LD4_LANE_FUNC (int32x2x4_t
, int32x2_t
, int32x4x4_t
, int32_t, v2si
, v4si
, si
, s32
,
17146 __LD4_LANE_FUNC (int64x1x4_t
, int64x1_t
, int64x2x4_t
, int64_t, di
, v2di
, di
, s64
,
17148 __LD4_LANE_FUNC (uint8x8x4_t
, uint8x8_t
, uint8x16x4_t
, uint8_t, v8qi
, v16qi
, qi
, u8
,
17150 __LD4_LANE_FUNC (uint16x4x4_t
, uint16x4_t
, uint16x8x4_t
, uint16_t, v4hi
, v8hi
, hi
,
17152 __LD4_LANE_FUNC (uint32x2x4_t
, uint32x2_t
, uint32x4x4_t
, uint32_t, v2si
, v4si
, si
,
17154 __LD4_LANE_FUNC (uint64x1x4_t
, uint64x1_t
, uint64x2x4_t
, uint64_t, di
, v2di
, di
,
17157 #undef __LD4_LANE_FUNC
17161 #define __LD4_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
17162 __extension__ static __inline intype __attribute__ ((__always_inline__)) \
17163 vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
17165 __builtin_aarch64_simd_xi __o; \
17167 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
17168 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
17169 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
17170 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
17171 __o = __builtin_aarch64_ld4_lane##mode ( \
17172 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
17173 ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0); \
17174 ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1); \
17175 ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2); \
17176 ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3); \
17180 __LD4_LANE_FUNC (float16x8x4_t
, float16x8_t
, float16_t
, v8hf
, hf
, f16
)
17181 __LD4_LANE_FUNC (float32x4x4_t
, float32x4_t
, float32_t
, v4sf
, sf
, f32
)
17182 __LD4_LANE_FUNC (float64x2x4_t
, float64x2_t
, float64_t
, v2df
, df
, f64
)
17183 __LD4_LANE_FUNC (poly8x16x4_t
, poly8x16_t
, poly8_t
, v16qi
, qi
, p8
)
17184 __LD4_LANE_FUNC (poly16x8x4_t
, poly16x8_t
, poly16_t
, v8hi
, hi
, p16
)
17185 __LD4_LANE_FUNC (int8x16x4_t
, int8x16_t
, int8_t, v16qi
, qi
, s8
)
17186 __LD4_LANE_FUNC (int16x8x4_t
, int16x8_t
, int16_t, v8hi
, hi
, s16
)
17187 __LD4_LANE_FUNC (int32x4x4_t
, int32x4_t
, int32_t, v4si
, si
, s32
)
17188 __LD4_LANE_FUNC (int64x2x4_t
, int64x2_t
, int64_t, v2di
, di
, s64
)
17189 __LD4_LANE_FUNC (uint8x16x4_t
, uint8x16_t
, uint8_t, v16qi
, qi
, u8
)
17190 __LD4_LANE_FUNC (uint16x8x4_t
, uint16x8_t
, uint16_t, v8hi
, hi
, u16
)
17191 __LD4_LANE_FUNC (uint32x4x4_t
, uint32x4_t
, uint32_t, v4si
, si
, u32
)
17192 __LD4_LANE_FUNC (uint64x2x4_t
, uint64x2_t
, uint64_t, v2di
, di
, u64
)
17194 #undef __LD4_LANE_FUNC
17198 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17199 vmax_f32 (float32x2_t __a
, float32x2_t __b
)
17201 return __builtin_aarch64_smax_nanv2sf (__a
, __b
);
17204 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
17205 vmax_s8 (int8x8_t __a
, int8x8_t __b
)
17207 return __builtin_aarch64_smaxv8qi (__a
, __b
);
17210 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
17211 vmax_s16 (int16x4_t __a
, int16x4_t __b
)
17213 return __builtin_aarch64_smaxv4hi (__a
, __b
);
17216 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
17217 vmax_s32 (int32x2_t __a
, int32x2_t __b
)
17219 return __builtin_aarch64_smaxv2si (__a
, __b
);
17222 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
17223 vmax_u8 (uint8x8_t __a
, uint8x8_t __b
)
17225 return (uint8x8_t
) __builtin_aarch64_umaxv8qi ((int8x8_t
) __a
,
17229 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
17230 vmax_u16 (uint16x4_t __a
, uint16x4_t __b
)
17232 return (uint16x4_t
) __builtin_aarch64_umaxv4hi ((int16x4_t
) __a
,
17236 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
17237 vmax_u32 (uint32x2_t __a
, uint32x2_t __b
)
17239 return (uint32x2_t
) __builtin_aarch64_umaxv2si ((int32x2_t
) __a
,
17243 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17244 vmaxq_f32 (float32x4_t __a
, float32x4_t __b
)
17246 return __builtin_aarch64_smax_nanv4sf (__a
, __b
);
17249 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17250 vmaxq_f64 (float64x2_t __a
, float64x2_t __b
)
17252 return __builtin_aarch64_smax_nanv2df (__a
, __b
);
17255 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
17256 vmaxq_s8 (int8x16_t __a
, int8x16_t __b
)
17258 return __builtin_aarch64_smaxv16qi (__a
, __b
);
17261 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
17262 vmaxq_s16 (int16x8_t __a
, int16x8_t __b
)
17264 return __builtin_aarch64_smaxv8hi (__a
, __b
);
17267 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
17268 vmaxq_s32 (int32x4_t __a
, int32x4_t __b
)
17270 return __builtin_aarch64_smaxv4si (__a
, __b
);
17273 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
17274 vmaxq_u8 (uint8x16_t __a
, uint8x16_t __b
)
17276 return (uint8x16_t
) __builtin_aarch64_umaxv16qi ((int8x16_t
) __a
,
17280 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
17281 vmaxq_u16 (uint16x8_t __a
, uint16x8_t __b
)
17283 return (uint16x8_t
) __builtin_aarch64_umaxv8hi ((int16x8_t
) __a
,
17287 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
17288 vmaxq_u32 (uint32x4_t __a
, uint32x4_t __b
)
17290 return (uint32x4_t
) __builtin_aarch64_umaxv4si ((int32x4_t
) __a
,
17295 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17296 vmulx_f32 (float32x2_t __a
, float32x2_t __b
)
17298 return __builtin_aarch64_fmulxv2sf (__a
, __b
);
17301 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17302 vmulxq_f32 (float32x4_t __a
, float32x4_t __b
)
17304 return __builtin_aarch64_fmulxv4sf (__a
, __b
);
17307 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
17308 vmulx_f64 (float64x1_t __a
, float64x1_t __b
)
17310 return (float64x1_t
) {__builtin_aarch64_fmulxdf (__a
[0], __b
[0])};
17313 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17314 vmulxq_f64 (float64x2_t __a
, float64x2_t __b
)
17316 return __builtin_aarch64_fmulxv2df (__a
, __b
);
17319 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17320 vmulxs_f32 (float32_t __a
, float32_t __b
)
17322 return __builtin_aarch64_fmulxsf (__a
, __b
);
17325 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17326 vmulxd_f64 (float64_t __a
, float64_t __b
)
17328 return __builtin_aarch64_fmulxdf (__a
, __b
);
17331 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17332 vmulx_lane_f32 (float32x2_t __a
, float32x2_t __v
, const int __lane
)
17334 return vmulx_f32 (__a
, __aarch64_vdup_lane_f32 (__v
, __lane
));
17337 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
17338 vmulx_lane_f64 (float64x1_t __a
, float64x1_t __v
, const int __lane
)
17340 return vmulx_f64 (__a
, __aarch64_vdup_lane_f64 (__v
, __lane
));
17343 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17344 vmulxq_lane_f32 (float32x4_t __a
, float32x2_t __v
, const int __lane
)
17346 return vmulxq_f32 (__a
, __aarch64_vdupq_lane_f32 (__v
, __lane
));
17349 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17350 vmulxq_lane_f64 (float64x2_t __a
, float64x1_t __v
, const int __lane
)
17352 return vmulxq_f64 (__a
, __aarch64_vdupq_lane_f64 (__v
, __lane
));
17355 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17356 vmulx_laneq_f32 (float32x2_t __a
, float32x4_t __v
, const int __lane
)
17358 return vmulx_f32 (__a
, __aarch64_vdup_laneq_f32 (__v
, __lane
));
17361 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
17362 vmulx_laneq_f64 (float64x1_t __a
, float64x2_t __v
, const int __lane
)
17364 return vmulx_f64 (__a
, __aarch64_vdup_laneq_f64 (__v
, __lane
));
17367 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17368 vmulxq_laneq_f32 (float32x4_t __a
, float32x4_t __v
, const int __lane
)
17370 return vmulxq_f32 (__a
, __aarch64_vdupq_laneq_f32 (__v
, __lane
));
17373 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17374 vmulxq_laneq_f64 (float64x2_t __a
, float64x2_t __v
, const int __lane
)
17376 return vmulxq_f64 (__a
, __aarch64_vdupq_laneq_f64 (__v
, __lane
));
17379 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17380 vmulxs_lane_f32 (float32_t __a
, float32x2_t __v
, const int __lane
)
17382 return vmulxs_f32 (__a
, __aarch64_vget_lane_any (__v
, __lane
));
17385 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17386 vmulxs_laneq_f32 (float32_t __a
, float32x4_t __v
, const int __lane
)
17388 return vmulxs_f32 (__a
, __aarch64_vget_lane_any (__v
, __lane
));
17391 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17392 vmulxd_lane_f64 (float64_t __a
, float64x1_t __v
, const int __lane
)
17394 return vmulxd_f64 (__a
, __aarch64_vget_lane_any (__v
, __lane
));
17397 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17398 vmulxd_laneq_f64 (float64_t __a
, float64x2_t __v
, const int __lane
)
17400 return vmulxd_f64 (__a
, __aarch64_vget_lane_any (__v
, __lane
));
17405 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
17406 vpmax_s8 (int8x8_t a
, int8x8_t b
)
17408 return __builtin_aarch64_smaxpv8qi (a
, b
);
17411 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
17412 vpmax_s16 (int16x4_t a
, int16x4_t b
)
17414 return __builtin_aarch64_smaxpv4hi (a
, b
);
17417 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
17418 vpmax_s32 (int32x2_t a
, int32x2_t b
)
17420 return __builtin_aarch64_smaxpv2si (a
, b
);
17423 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
17424 vpmax_u8 (uint8x8_t a
, uint8x8_t b
)
17426 return (uint8x8_t
) __builtin_aarch64_umaxpv8qi ((int8x8_t
) a
,
17430 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
17431 vpmax_u16 (uint16x4_t a
, uint16x4_t b
)
17433 return (uint16x4_t
) __builtin_aarch64_umaxpv4hi ((int16x4_t
) a
,
17437 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
17438 vpmax_u32 (uint32x2_t a
, uint32x2_t b
)
17440 return (uint32x2_t
) __builtin_aarch64_umaxpv2si ((int32x2_t
) a
,
17444 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
17445 vpmaxq_s8 (int8x16_t a
, int8x16_t b
)
17447 return __builtin_aarch64_smaxpv16qi (a
, b
);
17450 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
17451 vpmaxq_s16 (int16x8_t a
, int16x8_t b
)
17453 return __builtin_aarch64_smaxpv8hi (a
, b
);
17456 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
17457 vpmaxq_s32 (int32x4_t a
, int32x4_t b
)
17459 return __builtin_aarch64_smaxpv4si (a
, b
);
17462 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
17463 vpmaxq_u8 (uint8x16_t a
, uint8x16_t b
)
17465 return (uint8x16_t
) __builtin_aarch64_umaxpv16qi ((int8x16_t
) a
,
17469 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
17470 vpmaxq_u16 (uint16x8_t a
, uint16x8_t b
)
17472 return (uint16x8_t
) __builtin_aarch64_umaxpv8hi ((int16x8_t
) a
,
17476 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
17477 vpmaxq_u32 (uint32x4_t a
, uint32x4_t b
)
17479 return (uint32x4_t
) __builtin_aarch64_umaxpv4si ((int32x4_t
) a
,
17483 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17484 vpmax_f32 (float32x2_t a
, float32x2_t b
)
17486 return __builtin_aarch64_smax_nanpv2sf (a
, b
);
17489 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17490 vpmaxq_f32 (float32x4_t a
, float32x4_t b
)
17492 return __builtin_aarch64_smax_nanpv4sf (a
, b
);
17495 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17496 vpmaxq_f64 (float64x2_t a
, float64x2_t b
)
17498 return __builtin_aarch64_smax_nanpv2df (a
, b
);
17501 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17502 vpmaxqd_f64 (float64x2_t a
)
17504 return __builtin_aarch64_reduc_smax_nan_scal_v2df (a
);
17507 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17508 vpmaxs_f32 (float32x2_t a
)
17510 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (a
);
17515 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17516 vpmaxnm_f32 (float32x2_t a
, float32x2_t b
)
17518 return __builtin_aarch64_smaxpv2sf (a
, b
);
17521 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17522 vpmaxnmq_f32 (float32x4_t a
, float32x4_t b
)
17524 return __builtin_aarch64_smaxpv4sf (a
, b
);
17527 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17528 vpmaxnmq_f64 (float64x2_t a
, float64x2_t b
)
17530 return __builtin_aarch64_smaxpv2df (a
, b
);
17533 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17534 vpmaxnmqd_f64 (float64x2_t a
)
17536 return __builtin_aarch64_reduc_smax_scal_v2df (a
);
17539 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17540 vpmaxnms_f32 (float32x2_t a
)
17542 return __builtin_aarch64_reduc_smax_scal_v2sf (a
);
17547 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
17548 vpmin_s8 (int8x8_t a
, int8x8_t b
)
17550 return __builtin_aarch64_sminpv8qi (a
, b
);
17553 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
17554 vpmin_s16 (int16x4_t a
, int16x4_t b
)
17556 return __builtin_aarch64_sminpv4hi (a
, b
);
17559 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
17560 vpmin_s32 (int32x2_t a
, int32x2_t b
)
17562 return __builtin_aarch64_sminpv2si (a
, b
);
17565 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
17566 vpmin_u8 (uint8x8_t a
, uint8x8_t b
)
17568 return (uint8x8_t
) __builtin_aarch64_uminpv8qi ((int8x8_t
) a
,
17572 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
17573 vpmin_u16 (uint16x4_t a
, uint16x4_t b
)
17575 return (uint16x4_t
) __builtin_aarch64_uminpv4hi ((int16x4_t
) a
,
17579 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
17580 vpmin_u32 (uint32x2_t a
, uint32x2_t b
)
17582 return (uint32x2_t
) __builtin_aarch64_uminpv2si ((int32x2_t
) a
,
17586 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
17587 vpminq_s8 (int8x16_t a
, int8x16_t b
)
17589 return __builtin_aarch64_sminpv16qi (a
, b
);
17592 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
17593 vpminq_s16 (int16x8_t a
, int16x8_t b
)
17595 return __builtin_aarch64_sminpv8hi (a
, b
);
17598 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
17599 vpminq_s32 (int32x4_t a
, int32x4_t b
)
17601 return __builtin_aarch64_sminpv4si (a
, b
);
17604 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
17605 vpminq_u8 (uint8x16_t a
, uint8x16_t b
)
17607 return (uint8x16_t
) __builtin_aarch64_uminpv16qi ((int8x16_t
) a
,
17611 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
17612 vpminq_u16 (uint16x8_t a
, uint16x8_t b
)
17614 return (uint16x8_t
) __builtin_aarch64_uminpv8hi ((int16x8_t
) a
,
17618 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
17619 vpminq_u32 (uint32x4_t a
, uint32x4_t b
)
17621 return (uint32x4_t
) __builtin_aarch64_uminpv4si ((int32x4_t
) a
,
17625 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17626 vpmin_f32 (float32x2_t a
, float32x2_t b
)
17628 return __builtin_aarch64_smin_nanpv2sf (a
, b
);
17631 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17632 vpminq_f32 (float32x4_t a
, float32x4_t b
)
17634 return __builtin_aarch64_smin_nanpv4sf (a
, b
);
17637 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17638 vpminq_f64 (float64x2_t a
, float64x2_t b
)
17640 return __builtin_aarch64_smin_nanpv2df (a
, b
);
17643 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17644 vpminqd_f64 (float64x2_t a
)
17646 return __builtin_aarch64_reduc_smin_nan_scal_v2df (a
);
17649 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17650 vpmins_f32 (float32x2_t a
)
17652 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (a
);
17657 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17658 vpminnm_f32 (float32x2_t a
, float32x2_t b
)
17660 return __builtin_aarch64_sminpv2sf (a
, b
);
17663 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17664 vpminnmq_f32 (float32x4_t a
, float32x4_t b
)
17666 return __builtin_aarch64_sminpv4sf (a
, b
);
17669 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17670 vpminnmq_f64 (float64x2_t a
, float64x2_t b
)
17672 return __builtin_aarch64_sminpv2df (a
, b
);
17675 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17676 vpminnmqd_f64 (float64x2_t a
)
17678 return __builtin_aarch64_reduc_smin_scal_v2df (a
);
17681 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17682 vpminnms_f32 (float32x2_t a
)
17684 return __builtin_aarch64_reduc_smin_scal_v2sf (a
);
17689 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17690 vmaxnm_f32 (float32x2_t __a
, float32x2_t __b
)
17692 return __builtin_aarch64_fmaxv2sf (__a
, __b
);
17695 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17696 vmaxnmq_f32 (float32x4_t __a
, float32x4_t __b
)
17698 return __builtin_aarch64_fmaxv4sf (__a
, __b
);
17701 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17702 vmaxnmq_f64 (float64x2_t __a
, float64x2_t __b
)
17704 return __builtin_aarch64_fmaxv2df (__a
, __b
);
17709 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17710 vmaxv_f32 (float32x2_t __a
)
17712 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a
);
17715 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
17716 vmaxv_s8 (int8x8_t __a
)
17718 return __builtin_aarch64_reduc_smax_scal_v8qi (__a
);
17721 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
17722 vmaxv_s16 (int16x4_t __a
)
17724 return __builtin_aarch64_reduc_smax_scal_v4hi (__a
);
17727 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
17728 vmaxv_s32 (int32x2_t __a
)
17730 return __builtin_aarch64_reduc_smax_scal_v2si (__a
);
17733 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
17734 vmaxv_u8 (uint8x8_t __a
)
17736 return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a
);
17739 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
17740 vmaxv_u16 (uint16x4_t __a
)
17742 return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a
);
17745 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
17746 vmaxv_u32 (uint32x2_t __a
)
17748 return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a
);
17751 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17752 vmaxvq_f32 (float32x4_t __a
)
17754 return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a
);
17757 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17758 vmaxvq_f64 (float64x2_t __a
)
17760 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a
);
17763 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
17764 vmaxvq_s8 (int8x16_t __a
)
17766 return __builtin_aarch64_reduc_smax_scal_v16qi (__a
);
17769 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
17770 vmaxvq_s16 (int16x8_t __a
)
17772 return __builtin_aarch64_reduc_smax_scal_v8hi (__a
);
17775 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
17776 vmaxvq_s32 (int32x4_t __a
)
17778 return __builtin_aarch64_reduc_smax_scal_v4si (__a
);
17781 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
17782 vmaxvq_u8 (uint8x16_t __a
)
17784 return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a
);
17787 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
17788 vmaxvq_u16 (uint16x8_t __a
)
17790 return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a
);
17793 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
17794 vmaxvq_u32 (uint32x4_t __a
)
17796 return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a
);
17801 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17802 vmaxnmv_f32 (float32x2_t __a
)
17804 return __builtin_aarch64_reduc_smax_scal_v2sf (__a
);
17807 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17808 vmaxnmvq_f32 (float32x4_t __a
)
17810 return __builtin_aarch64_reduc_smax_scal_v4sf (__a
);
17813 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17814 vmaxnmvq_f64 (float64x2_t __a
)
17816 return __builtin_aarch64_reduc_smax_scal_v2df (__a
);
17821 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17822 vmin_f32 (float32x2_t __a
, float32x2_t __b
)
17824 return __builtin_aarch64_smin_nanv2sf (__a
, __b
);
17827 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
17828 vmin_s8 (int8x8_t __a
, int8x8_t __b
)
17830 return __builtin_aarch64_sminv8qi (__a
, __b
);
17833 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
17834 vmin_s16 (int16x4_t __a
, int16x4_t __b
)
17836 return __builtin_aarch64_sminv4hi (__a
, __b
);
17839 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
17840 vmin_s32 (int32x2_t __a
, int32x2_t __b
)
17842 return __builtin_aarch64_sminv2si (__a
, __b
);
17845 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
17846 vmin_u8 (uint8x8_t __a
, uint8x8_t __b
)
17848 return (uint8x8_t
) __builtin_aarch64_uminv8qi ((int8x8_t
) __a
,
17852 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
17853 vmin_u16 (uint16x4_t __a
, uint16x4_t __b
)
17855 return (uint16x4_t
) __builtin_aarch64_uminv4hi ((int16x4_t
) __a
,
17859 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
17860 vmin_u32 (uint32x2_t __a
, uint32x2_t __b
)
17862 return (uint32x2_t
) __builtin_aarch64_uminv2si ((int32x2_t
) __a
,
17866 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17867 vminq_f32 (float32x4_t __a
, float32x4_t __b
)
17869 return __builtin_aarch64_smin_nanv4sf (__a
, __b
);
17872 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17873 vminq_f64 (float64x2_t __a
, float64x2_t __b
)
17875 return __builtin_aarch64_smin_nanv2df (__a
, __b
);
17878 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
17879 vminq_s8 (int8x16_t __a
, int8x16_t __b
)
17881 return __builtin_aarch64_sminv16qi (__a
, __b
);
17884 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
17885 vminq_s16 (int16x8_t __a
, int16x8_t __b
)
17887 return __builtin_aarch64_sminv8hi (__a
, __b
);
17890 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
17891 vminq_s32 (int32x4_t __a
, int32x4_t __b
)
17893 return __builtin_aarch64_sminv4si (__a
, __b
);
17896 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
17897 vminq_u8 (uint8x16_t __a
, uint8x16_t __b
)
17899 return (uint8x16_t
) __builtin_aarch64_uminv16qi ((int8x16_t
) __a
,
17903 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
17904 vminq_u16 (uint16x8_t __a
, uint16x8_t __b
)
17906 return (uint16x8_t
) __builtin_aarch64_uminv8hi ((int16x8_t
) __a
,
17910 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
17911 vminq_u32 (uint32x4_t __a
, uint32x4_t __b
)
17913 return (uint32x4_t
) __builtin_aarch64_uminv4si ((int32x4_t
) __a
,
17919 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
17920 vminnm_f32 (float32x2_t __a
, float32x2_t __b
)
17922 return __builtin_aarch64_fminv2sf (__a
, __b
);
17925 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
17926 vminnmq_f32 (float32x4_t __a
, float32x4_t __b
)
17928 return __builtin_aarch64_fminv4sf (__a
, __b
);
17931 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
17932 vminnmq_f64 (float64x2_t __a
, float64x2_t __b
)
17934 return __builtin_aarch64_fminv2df (__a
, __b
);
17939 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17940 vminv_f32 (float32x2_t __a
)
17942 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a
);
17945 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
17946 vminv_s8 (int8x8_t __a
)
17948 return __builtin_aarch64_reduc_smin_scal_v8qi (__a
);
17951 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
17952 vminv_s16 (int16x4_t __a
)
17954 return __builtin_aarch64_reduc_smin_scal_v4hi (__a
);
17957 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
17958 vminv_s32 (int32x2_t __a
)
17960 return __builtin_aarch64_reduc_smin_scal_v2si (__a
);
17963 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
17964 vminv_u8 (uint8x8_t __a
)
17966 return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a
);
17969 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
17970 vminv_u16 (uint16x4_t __a
)
17972 return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a
);
17975 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
17976 vminv_u32 (uint32x2_t __a
)
17978 return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a
);
17981 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
17982 vminvq_f32 (float32x4_t __a
)
17984 return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a
);
17987 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
17988 vminvq_f64 (float64x2_t __a
)
17990 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a
);
17993 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
17994 vminvq_s8 (int8x16_t __a
)
17996 return __builtin_aarch64_reduc_smin_scal_v16qi (__a
);
17999 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
18000 vminvq_s16 (int16x8_t __a
)
18002 return __builtin_aarch64_reduc_smin_scal_v8hi (__a
);
18005 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
18006 vminvq_s32 (int32x4_t __a
)
18008 return __builtin_aarch64_reduc_smin_scal_v4si (__a
);
18011 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
18012 vminvq_u8 (uint8x16_t __a
)
18014 return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a
);
18017 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
18018 vminvq_u16 (uint16x8_t __a
)
18020 return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a
);
18023 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
18024 vminvq_u32 (uint32x4_t __a
)
18026 return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a
);
18031 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
18032 vminnmv_f32 (float32x2_t __a
)
18034 return __builtin_aarch64_reduc_smin_scal_v2sf (__a
);
18037 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
18038 vminnmvq_f32 (float32x4_t __a
)
18040 return __builtin_aarch64_reduc_smin_scal_v4sf (__a
);
18043 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
18044 vminnmvq_f64 (float64x2_t __a
)
18046 return __builtin_aarch64_reduc_smin_scal_v2df (__a
);
18051 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18052 vmla_f32 (float32x2_t a
, float32x2_t b
, float32x2_t c
)
18057 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
18058 vmla_f64 (float64x1_t __a
, float64x1_t __b
, float64x1_t __c
)
18060 return __a
+ __b
* __c
;
18063 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18064 vmlaq_f32 (float32x4_t a
, float32x4_t b
, float32x4_t c
)
18069 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
18070 vmlaq_f64 (float64x2_t a
, float64x2_t b
, float64x2_t c
)
18077 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18078 vmla_lane_f32 (float32x2_t __a
, float32x2_t __b
,
18079 float32x2_t __c
, const int __lane
)
18081 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18084 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18085 vmla_lane_s16 (int16x4_t __a
, int16x4_t __b
,
18086 int16x4_t __c
, const int __lane
)
18088 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18091 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18092 vmla_lane_s32 (int32x2_t __a
, int32x2_t __b
,
18093 int32x2_t __c
, const int __lane
)
18095 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18098 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18099 vmla_lane_u16 (uint16x4_t __a
, uint16x4_t __b
,
18100 uint16x4_t __c
, const int __lane
)
18102 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18105 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18106 vmla_lane_u32 (uint32x2_t __a
, uint32x2_t __b
,
18107 uint32x2_t __c
, const int __lane
)
18109 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18114 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18115 vmla_laneq_f32 (float32x2_t __a
, float32x2_t __b
,
18116 float32x4_t __c
, const int __lane
)
18118 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18121 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18122 vmla_laneq_s16 (int16x4_t __a
, int16x4_t __b
,
18123 int16x8_t __c
, const int __lane
)
18125 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18128 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18129 vmla_laneq_s32 (int32x2_t __a
, int32x2_t __b
,
18130 int32x4_t __c
, const int __lane
)
18132 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18135 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18136 vmla_laneq_u16 (uint16x4_t __a
, uint16x4_t __b
,
18137 uint16x8_t __c
, const int __lane
)
18139 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18142 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18143 vmla_laneq_u32 (uint32x2_t __a
, uint32x2_t __b
,
18144 uint32x4_t __c
, const int __lane
)
18146 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18151 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18152 vmlaq_lane_f32 (float32x4_t __a
, float32x4_t __b
,
18153 float32x2_t __c
, const int __lane
)
18155 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18158 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18159 vmlaq_lane_s16 (int16x8_t __a
, int16x8_t __b
,
18160 int16x4_t __c
, const int __lane
)
18162 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18165 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18166 vmlaq_lane_s32 (int32x4_t __a
, int32x4_t __b
,
18167 int32x2_t __c
, const int __lane
)
18169 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18172 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18173 vmlaq_lane_u16 (uint16x8_t __a
, uint16x8_t __b
,
18174 uint16x4_t __c
, const int __lane
)
18176 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18179 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18180 vmlaq_lane_u32 (uint32x4_t __a
, uint32x4_t __b
,
18181 uint32x2_t __c
, const int __lane
)
18183 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18188 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18189 vmlaq_laneq_f32 (float32x4_t __a
, float32x4_t __b
,
18190 float32x4_t __c
, const int __lane
)
18192 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18195 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18196 vmlaq_laneq_s16 (int16x8_t __a
, int16x8_t __b
,
18197 int16x8_t __c
, const int __lane
)
18199 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18202 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18203 vmlaq_laneq_s32 (int32x4_t __a
, int32x4_t __b
,
18204 int32x4_t __c
, const int __lane
)
18206 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18209 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18210 vmlaq_laneq_u16 (uint16x8_t __a
, uint16x8_t __b
,
18211 uint16x8_t __c
, const int __lane
)
18213 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18216 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18217 vmlaq_laneq_u32 (uint32x4_t __a
, uint32x4_t __b
,
18218 uint32x4_t __c
, const int __lane
)
18220 return (__a
+ (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18225 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18226 vmls_f32 (float32x2_t a
, float32x2_t b
, float32x2_t c
)
18231 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
18232 vmls_f64 (float64x1_t __a
, float64x1_t __b
, float64x1_t __c
)
18234 return __a
- __b
* __c
;
18237 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18238 vmlsq_f32 (float32x4_t a
, float32x4_t b
, float32x4_t c
)
18243 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
18244 vmlsq_f64 (float64x2_t a
, float64x2_t b
, float64x2_t c
)
18251 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18252 vmls_lane_f32 (float32x2_t __a
, float32x2_t __b
,
18253 float32x2_t __c
, const int __lane
)
18255 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18258 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18259 vmls_lane_s16 (int16x4_t __a
, int16x4_t __b
,
18260 int16x4_t __c
, const int __lane
)
18262 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18265 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18266 vmls_lane_s32 (int32x2_t __a
, int32x2_t __b
,
18267 int32x2_t __c
, const int __lane
)
18269 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18272 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18273 vmls_lane_u16 (uint16x4_t __a
, uint16x4_t __b
,
18274 uint16x4_t __c
, const int __lane
)
18276 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18279 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18280 vmls_lane_u32 (uint32x2_t __a
, uint32x2_t __b
,
18281 uint32x2_t __c
, const int __lane
)
18283 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18288 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18289 vmls_laneq_f32 (float32x2_t __a
, float32x2_t __b
,
18290 float32x4_t __c
, const int __lane
)
18292 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18295 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18296 vmls_laneq_s16 (int16x4_t __a
, int16x4_t __b
,
18297 int16x8_t __c
, const int __lane
)
18299 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18302 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18303 vmls_laneq_s32 (int32x2_t __a
, int32x2_t __b
,
18304 int32x4_t __c
, const int __lane
)
18306 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18309 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18310 vmls_laneq_u16 (uint16x4_t __a
, uint16x4_t __b
,
18311 uint16x8_t __c
, const int __lane
)
18313 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18316 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18317 vmls_laneq_u32 (uint32x2_t __a
, uint32x2_t __b
,
18318 uint32x4_t __c
, const int __lane
)
18320 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18325 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18326 vmlsq_lane_f32 (float32x4_t __a
, float32x4_t __b
,
18327 float32x2_t __c
, const int __lane
)
18329 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18332 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18333 vmlsq_lane_s16 (int16x8_t __a
, int16x8_t __b
,
18334 int16x4_t __c
, const int __lane
)
18336 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18339 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18340 vmlsq_lane_s32 (int32x4_t __a
, int32x4_t __b
,
18341 int32x2_t __c
, const int __lane
)
18343 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18346 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18347 vmlsq_lane_u16 (uint16x8_t __a
, uint16x8_t __b
,
18348 uint16x4_t __c
, const int __lane
)
18350 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18353 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18354 vmlsq_lane_u32 (uint32x4_t __a
, uint32x4_t __b
,
18355 uint32x2_t __c
, const int __lane
)
18357 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18362 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18363 vmlsq_laneq_f32 (float32x4_t __a
, float32x4_t __b
,
18364 float32x4_t __c
, const int __lane
)
18366 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18369 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18370 vmlsq_laneq_s16 (int16x8_t __a
, int16x8_t __b
,
18371 int16x8_t __c
, const int __lane
)
18373 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18376 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18377 vmlsq_laneq_s32 (int32x4_t __a
, int32x4_t __b
,
18378 int32x4_t __c
, const int __lane
)
18380 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18382 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18383 vmlsq_laneq_u16 (uint16x8_t __a
, uint16x8_t __b
,
18384 uint16x8_t __c
, const int __lane
)
18386 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18389 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18390 vmlsq_laneq_u32 (uint32x4_t __a
, uint32x4_t __b
,
18391 uint32x4_t __c
, const int __lane
)
18393 return (__a
- (__b
* __aarch64_vget_lane_any (__c
, __lane
)));
18398 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
18399 vmov_n_f16 (float16_t __a
)
18401 return vdup_n_f16 (__a
);
18404 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18405 vmov_n_f32 (float32_t __a
)
18407 return vdup_n_f32 (__a
);
18410 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
18411 vmov_n_f64 (float64_t __a
)
18413 return (float64x1_t
) {__a
};
18416 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
18417 vmov_n_p8 (poly8_t __a
)
18419 return vdup_n_p8 (__a
);
18422 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
18423 vmov_n_p16 (poly16_t __a
)
18425 return vdup_n_p16 (__a
);
18428 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
18429 vmov_n_s8 (int8_t __a
)
18431 return vdup_n_s8 (__a
);
18434 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18435 vmov_n_s16 (int16_t __a
)
18437 return vdup_n_s16 (__a
);
18440 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18441 vmov_n_s32 (int32_t __a
)
18443 return vdup_n_s32 (__a
);
18446 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
18447 vmov_n_s64 (int64_t __a
)
18449 return (int64x1_t
) {__a
};
18452 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
18453 vmov_n_u8 (uint8_t __a
)
18455 return vdup_n_u8 (__a
);
18458 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18459 vmov_n_u16 (uint16_t __a
)
18461 return vdup_n_u16 (__a
);
18464 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18465 vmov_n_u32 (uint32_t __a
)
18467 return vdup_n_u32 (__a
);
18470 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
18471 vmov_n_u64 (uint64_t __a
)
18473 return (uint64x1_t
) {__a
};
18476 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
18477 vmovq_n_f16 (float16_t __a
)
18479 return vdupq_n_f16 (__a
);
18482 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18483 vmovq_n_f32 (float32_t __a
)
18485 return vdupq_n_f32 (__a
);
18488 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
18489 vmovq_n_f64 (float64_t __a
)
18491 return vdupq_n_f64 (__a
);
18494 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
18495 vmovq_n_p8 (poly8_t __a
)
18497 return vdupq_n_p8 (__a
);
18500 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
18501 vmovq_n_p16 (poly16_t __a
)
18503 return vdupq_n_p16 (__a
);
18506 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
18507 vmovq_n_s8 (int8_t __a
)
18509 return vdupq_n_s8 (__a
);
18512 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18513 vmovq_n_s16 (int16_t __a
)
18515 return vdupq_n_s16 (__a
);
18518 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18519 vmovq_n_s32 (int32_t __a
)
18521 return vdupq_n_s32 (__a
);
18524 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
18525 vmovq_n_s64 (int64_t __a
)
18527 return vdupq_n_s64 (__a
);
18530 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
18531 vmovq_n_u8 (uint8_t __a
)
18533 return vdupq_n_u8 (__a
);
18536 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18537 vmovq_n_u16 (uint16_t __a
)
18539 return vdupq_n_u16 (__a
);
18542 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18543 vmovq_n_u32 (uint32_t __a
)
18545 return vdupq_n_u32 (__a
);
18548 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
18549 vmovq_n_u64 (uint64_t __a
)
18551 return vdupq_n_u64 (__a
);
18556 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18557 vmul_lane_f32 (float32x2_t __a
, float32x2_t __b
, const int __lane
)
18559 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18562 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
18563 vmul_lane_f64 (float64x1_t __a
, float64x1_t __b
, const int __lane
)
18568 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18569 vmul_lane_s16 (int16x4_t __a
, int16x4_t __b
, const int __lane
)
18571 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18574 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18575 vmul_lane_s32 (int32x2_t __a
, int32x2_t __b
, const int __lane
)
18577 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18580 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18581 vmul_lane_u16 (uint16x4_t __a
, uint16x4_t __b
, const int __lane
)
18583 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18586 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18587 vmul_lane_u32 (uint32x2_t __a
, uint32x2_t __b
, const int __lane
)
18589 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18594 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
18595 vmuld_lane_f64 (float64_t __a
, float64x1_t __b
, const int __lane
)
18597 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18600 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
18601 vmuld_laneq_f64 (float64_t __a
, float64x2_t __b
, const int __lane
)
18603 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18608 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
18609 vmuls_lane_f32 (float32_t __a
, float32x2_t __b
, const int __lane
)
18611 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18614 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
18615 vmuls_laneq_f32 (float32_t __a
, float32x4_t __b
, const int __lane
)
18617 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18622 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18623 vmul_laneq_f32 (float32x2_t __a
, float32x4_t __b
, const int __lane
)
18625 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18628 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
18629 vmul_laneq_f64 (float64x1_t __a
, float64x2_t __b
, const int __lane
)
18631 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18634 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18635 vmul_laneq_s16 (int16x4_t __a
, int16x8_t __b
, const int __lane
)
18637 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18640 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18641 vmul_laneq_s32 (int32x2_t __a
, int32x4_t __b
, const int __lane
)
18643 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18646 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18647 vmul_laneq_u16 (uint16x4_t __a
, uint16x8_t __b
, const int __lane
)
18649 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18652 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18653 vmul_laneq_u32 (uint32x2_t __a
, uint32x4_t __b
, const int __lane
)
18655 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18660 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
18661 vmul_n_f64 (float64x1_t __a
, float64_t __b
)
18663 return (float64x1_t
) { vget_lane_f64 (__a
, 0) * __b
};
18668 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18669 vmulq_lane_f32 (float32x4_t __a
, float32x2_t __b
, const int __lane
)
18671 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18674 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
18675 vmulq_lane_f64 (float64x2_t __a
, float64x1_t __b
, const int __lane
)
18677 __AARCH64_LANE_CHECK (__a
, __lane
);
18678 return __a
* __b
[0];
18681 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18682 vmulq_lane_s16 (int16x8_t __a
, int16x4_t __b
, const int __lane
)
18684 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18687 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18688 vmulq_lane_s32 (int32x4_t __a
, int32x2_t __b
, const int __lane
)
18690 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18693 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18694 vmulq_lane_u16 (uint16x8_t __a
, uint16x4_t __b
, const int __lane
)
18696 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18699 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18700 vmulq_lane_u32 (uint32x4_t __a
, uint32x2_t __b
, const int __lane
)
18702 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18707 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18708 vmulq_laneq_f32 (float32x4_t __a
, float32x4_t __b
, const int __lane
)
18710 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18713 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
18714 vmulq_laneq_f64 (float64x2_t __a
, float64x2_t __b
, const int __lane
)
18716 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18719 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18720 vmulq_laneq_s16 (int16x8_t __a
, int16x8_t __b
, const int __lane
)
18722 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18725 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18726 vmulq_laneq_s32 (int32x4_t __a
, int32x4_t __b
, const int __lane
)
18728 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18731 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18732 vmulq_laneq_u16 (uint16x8_t __a
, uint16x8_t __b
, const int __lane
)
18734 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18737 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18738 vmulq_laneq_u32 (uint32x4_t __a
, uint32x4_t __b
, const int __lane
)
18740 return __a
* __aarch64_vget_lane_any (__b
, __lane
);
18745 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18746 vmul_n_f32 (float32x2_t __a
, float32_t __b
)
18751 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18752 vmulq_n_f32 (float32x4_t __a
, float32_t __b
)
18757 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
18758 vmulq_n_f64 (float64x2_t __a
, float64_t __b
)
18763 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18764 vmul_n_s16 (int16x4_t __a
, int16_t __b
)
18769 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18770 vmulq_n_s16 (int16x8_t __a
, int16_t __b
)
18775 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18776 vmul_n_s32 (int32x2_t __a
, int32_t __b
)
18781 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18782 vmulq_n_s32 (int32x4_t __a
, int32_t __b
)
18787 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18788 vmul_n_u16 (uint16x4_t __a
, uint16_t __b
)
18793 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18794 vmulq_n_u16 (uint16x8_t __a
, uint16_t __b
)
18799 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18800 vmul_n_u32 (uint32x2_t __a
, uint32_t __b
)
18805 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18806 vmulq_n_u32 (uint32x4_t __a
, uint32_t __b
)
18813 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
18814 vmvn_p8 (poly8x8_t __a
)
18816 return (poly8x8_t
) ~((int8x8_t
) __a
);
18819 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
18820 vmvn_s8 (int8x8_t __a
)
18825 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18826 vmvn_s16 (int16x4_t __a
)
18831 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18832 vmvn_s32 (int32x2_t __a
)
18837 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
18838 vmvn_u8 (uint8x8_t __a
)
18843 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
18844 vmvn_u16 (uint16x4_t __a
)
18849 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
18850 vmvn_u32 (uint32x2_t __a
)
18855 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
18856 vmvnq_p8 (poly8x16_t __a
)
18858 return (poly8x16_t
) ~((int8x16_t
) __a
);
18861 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
18862 vmvnq_s8 (int8x16_t __a
)
18867 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18868 vmvnq_s16 (int16x8_t __a
)
18873 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18874 vmvnq_s32 (int32x4_t __a
)
18879 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
18880 vmvnq_u8 (uint8x16_t __a
)
18885 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
18886 vmvnq_u16 (uint16x8_t __a
)
18891 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
18892 vmvnq_u32 (uint32x4_t __a
)
18899 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18900 vneg_f32 (float32x2_t __a
)
18905 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
18906 vneg_f64 (float64x1_t __a
)
18911 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
18912 vneg_s8 (int8x8_t __a
)
18917 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18918 vneg_s16 (int16x4_t __a
)
18923 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
18924 vneg_s32 (int32x2_t __a
)
18929 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
18930 vneg_s64 (int64x1_t __a
)
18935 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18936 vnegq_f32 (float32x4_t __a
)
18941 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
18942 vnegq_f64 (float64x2_t __a
)
18947 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
18948 vnegq_s8 (int8x16_t __a
)
18953 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
18954 vnegq_s16 (int16x8_t __a
)
18959 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
18960 vnegq_s32 (int32x4_t __a
)
18965 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
18966 vnegq_s64 (int64x2_t __a
)
18973 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
18974 vpadd_f32 (float32x2_t __a
, float32x2_t __b
)
18976 return __builtin_aarch64_faddpv2sf (__a
, __b
);
18979 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
18980 vpaddq_f32 (float32x4_t __a
, float32x4_t __b
)
18982 return __builtin_aarch64_faddpv4sf (__a
, __b
);
18985 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
18986 vpaddq_f64 (float64x2_t __a
, float64x2_t __b
)
18988 return __builtin_aarch64_faddpv2df (__a
, __b
);
18991 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
18992 vpadd_s8 (int8x8_t __a
, int8x8_t __b
)
18994 return __builtin_aarch64_addpv8qi (__a
, __b
);
18997 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
18998 vpadd_s16 (int16x4_t __a
, int16x4_t __b
)
19000 return __builtin_aarch64_addpv4hi (__a
, __b
);
19003 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
19004 vpadd_s32 (int32x2_t __a
, int32x2_t __b
)
19006 return __builtin_aarch64_addpv2si (__a
, __b
);
19009 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
19010 vpadd_u8 (uint8x8_t __a
, uint8x8_t __b
)
19012 return (uint8x8_t
) __builtin_aarch64_addpv8qi ((int8x8_t
) __a
,
19016 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
19017 vpadd_u16 (uint16x4_t __a
, uint16x4_t __b
)
19019 return (uint16x4_t
) __builtin_aarch64_addpv4hi ((int16x4_t
) __a
,
19023 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
19024 vpadd_u32 (uint32x2_t __a
, uint32x2_t __b
)
19026 return (uint32x2_t
) __builtin_aarch64_addpv2si ((int32x2_t
) __a
,
19030 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
19031 vpadds_f32 (float32x2_t __a
)
19033 return __builtin_aarch64_reduc_plus_scal_v2sf (__a
);
19036 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
19037 vpaddd_f64 (float64x2_t __a
)
19039 return __builtin_aarch64_reduc_plus_scal_v2df (__a
);
19042 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19043 vpaddd_s64 (int64x2_t __a
)
19045 return __builtin_aarch64_addpdi (__a
);
19048 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
19049 vpaddd_u64 (uint64x2_t __a
)
19051 return __builtin_aarch64_addpdi ((int64x2_t
) __a
);
19056 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19057 vqabsq_s64 (int64x2_t __a
)
19059 return (int64x2_t
) __builtin_aarch64_sqabsv2di (__a
);
19062 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
19063 vqabsb_s8 (int8_t __a
)
19065 return (int8_t) __builtin_aarch64_sqabsqi (__a
);
19068 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19069 vqabsh_s16 (int16_t __a
)
19071 return (int16_t) __builtin_aarch64_sqabshi (__a
);
19074 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19075 vqabss_s32 (int32_t __a
)
19077 return (int32_t) __builtin_aarch64_sqabssi (__a
);
19080 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19081 vqabsd_s64 (int64_t __a
)
19083 return __builtin_aarch64_sqabsdi (__a
);
19088 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
19089 vqaddb_s8 (int8_t __a
, int8_t __b
)
19091 return (int8_t) __builtin_aarch64_sqaddqi (__a
, __b
);
19094 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19095 vqaddh_s16 (int16_t __a
, int16_t __b
)
19097 return (int16_t) __builtin_aarch64_sqaddhi (__a
, __b
);
19100 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19101 vqadds_s32 (int32_t __a
, int32_t __b
)
19103 return (int32_t) __builtin_aarch64_sqaddsi (__a
, __b
);
19106 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19107 vqaddd_s64 (int64_t __a
, int64_t __b
)
19109 return __builtin_aarch64_sqadddi (__a
, __b
);
19112 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
19113 vqaddb_u8 (uint8_t __a
, uint8_t __b
)
19115 return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a
, __b
);
19118 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
19119 vqaddh_u16 (uint16_t __a
, uint16_t __b
)
19121 return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a
, __b
);
19124 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
19125 vqadds_u32 (uint32_t __a
, uint32_t __b
)
19127 return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a
, __b
);
19130 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
19131 vqaddd_u64 (uint64_t __a
, uint64_t __b
)
19133 return __builtin_aarch64_uqadddi_uuu (__a
, __b
);
19138 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19139 vqdmlal_s16 (int32x4_t __a
, int16x4_t __b
, int16x4_t __c
)
19141 return __builtin_aarch64_sqdmlalv4hi (__a
, __b
, __c
);
19144 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19145 vqdmlal_high_s16 (int32x4_t __a
, int16x8_t __b
, int16x8_t __c
)
19147 return __builtin_aarch64_sqdmlal2v8hi (__a
, __b
, __c
);
19150 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19151 vqdmlal_high_lane_s16 (int32x4_t __a
, int16x8_t __b
, int16x4_t __c
,
19154 return __builtin_aarch64_sqdmlal2_lanev8hi (__a
, __b
, __c
, __d
);
19157 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19158 vqdmlal_high_laneq_s16 (int32x4_t __a
, int16x8_t __b
, int16x8_t __c
,
19161 return __builtin_aarch64_sqdmlal2_laneqv8hi (__a
, __b
, __c
, __d
);
19164 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19165 vqdmlal_high_n_s16 (int32x4_t __a
, int16x8_t __b
, int16_t __c
)
19167 return __builtin_aarch64_sqdmlal2_nv8hi (__a
, __b
, __c
);
19170 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19171 vqdmlal_lane_s16 (int32x4_t __a
, int16x4_t __b
, int16x4_t __c
, int const __d
)
19173 return __builtin_aarch64_sqdmlal_lanev4hi (__a
, __b
, __c
, __d
);
19176 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19177 vqdmlal_laneq_s16 (int32x4_t __a
, int16x4_t __b
, int16x8_t __c
, int const __d
)
19179 return __builtin_aarch64_sqdmlal_laneqv4hi (__a
, __b
, __c
, __d
);
19182 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19183 vqdmlal_n_s16 (int32x4_t __a
, int16x4_t __b
, int16_t __c
)
19185 return __builtin_aarch64_sqdmlal_nv4hi (__a
, __b
, __c
);
19188 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19189 vqdmlal_s32 (int64x2_t __a
, int32x2_t __b
, int32x2_t __c
)
19191 return __builtin_aarch64_sqdmlalv2si (__a
, __b
, __c
);
19194 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19195 vqdmlal_high_s32 (int64x2_t __a
, int32x4_t __b
, int32x4_t __c
)
19197 return __builtin_aarch64_sqdmlal2v4si (__a
, __b
, __c
);
19200 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19201 vqdmlal_high_lane_s32 (int64x2_t __a
, int32x4_t __b
, int32x2_t __c
,
19204 return __builtin_aarch64_sqdmlal2_lanev4si (__a
, __b
, __c
, __d
);
19207 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19208 vqdmlal_high_laneq_s32 (int64x2_t __a
, int32x4_t __b
, int32x4_t __c
,
19211 return __builtin_aarch64_sqdmlal2_laneqv4si (__a
, __b
, __c
, __d
);
19214 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19215 vqdmlal_high_n_s32 (int64x2_t __a
, int32x4_t __b
, int32_t __c
)
19217 return __builtin_aarch64_sqdmlal2_nv4si (__a
, __b
, __c
);
19220 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19221 vqdmlal_lane_s32 (int64x2_t __a
, int32x2_t __b
, int32x2_t __c
, int const __d
)
19223 return __builtin_aarch64_sqdmlal_lanev2si (__a
, __b
, __c
, __d
);
19226 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19227 vqdmlal_laneq_s32 (int64x2_t __a
, int32x2_t __b
, int32x4_t __c
, int const __d
)
19229 return __builtin_aarch64_sqdmlal_laneqv2si (__a
, __b
, __c
, __d
);
19232 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19233 vqdmlal_n_s32 (int64x2_t __a
, int32x2_t __b
, int32_t __c
)
19235 return __builtin_aarch64_sqdmlal_nv2si (__a
, __b
, __c
);
19238 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19239 vqdmlalh_s16 (int32_t __a
, int16_t __b
, int16_t __c
)
19241 return __builtin_aarch64_sqdmlalhi (__a
, __b
, __c
);
19244 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19245 vqdmlalh_lane_s16 (int32_t __a
, int16_t __b
, int16x4_t __c
, const int __d
)
19247 return __builtin_aarch64_sqdmlal_lanehi (__a
, __b
, __c
, __d
);
19250 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19251 vqdmlalh_laneq_s16 (int32_t __a
, int16_t __b
, int16x8_t __c
, const int __d
)
19253 return __builtin_aarch64_sqdmlal_laneqhi (__a
, __b
, __c
, __d
);
19256 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19257 vqdmlals_s32 (int64_t __a
, int32_t __b
, int32_t __c
)
19259 return __builtin_aarch64_sqdmlalsi (__a
, __b
, __c
);
19262 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19263 vqdmlals_lane_s32 (int64_t __a
, int32_t __b
, int32x2_t __c
, const int __d
)
19265 return __builtin_aarch64_sqdmlal_lanesi (__a
, __b
, __c
, __d
);
19268 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19269 vqdmlals_laneq_s32 (int64_t __a
, int32_t __b
, int32x4_t __c
, const int __d
)
19271 return __builtin_aarch64_sqdmlal_laneqsi (__a
, __b
, __c
, __d
);
19276 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19277 vqdmlsl_s16 (int32x4_t __a
, int16x4_t __b
, int16x4_t __c
)
19279 return __builtin_aarch64_sqdmlslv4hi (__a
, __b
, __c
);
19282 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19283 vqdmlsl_high_s16 (int32x4_t __a
, int16x8_t __b
, int16x8_t __c
)
19285 return __builtin_aarch64_sqdmlsl2v8hi (__a
, __b
, __c
);
19288 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19289 vqdmlsl_high_lane_s16 (int32x4_t __a
, int16x8_t __b
, int16x4_t __c
,
19292 return __builtin_aarch64_sqdmlsl2_lanev8hi (__a
, __b
, __c
, __d
);
19295 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19296 vqdmlsl_high_laneq_s16 (int32x4_t __a
, int16x8_t __b
, int16x8_t __c
,
19299 return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a
, __b
, __c
, __d
);
19302 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19303 vqdmlsl_high_n_s16 (int32x4_t __a
, int16x8_t __b
, int16_t __c
)
19305 return __builtin_aarch64_sqdmlsl2_nv8hi (__a
, __b
, __c
);
19308 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19309 vqdmlsl_lane_s16 (int32x4_t __a
, int16x4_t __b
, int16x4_t __c
, int const __d
)
19311 return __builtin_aarch64_sqdmlsl_lanev4hi (__a
, __b
, __c
, __d
);
19314 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19315 vqdmlsl_laneq_s16 (int32x4_t __a
, int16x4_t __b
, int16x8_t __c
, int const __d
)
19317 return __builtin_aarch64_sqdmlsl_laneqv4hi (__a
, __b
, __c
, __d
);
19320 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19321 vqdmlsl_n_s16 (int32x4_t __a
, int16x4_t __b
, int16_t __c
)
19323 return __builtin_aarch64_sqdmlsl_nv4hi (__a
, __b
, __c
);
19326 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19327 vqdmlsl_s32 (int64x2_t __a
, int32x2_t __b
, int32x2_t __c
)
19329 return __builtin_aarch64_sqdmlslv2si (__a
, __b
, __c
);
19332 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19333 vqdmlsl_high_s32 (int64x2_t __a
, int32x4_t __b
, int32x4_t __c
)
19335 return __builtin_aarch64_sqdmlsl2v4si (__a
, __b
, __c
);
19338 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19339 vqdmlsl_high_lane_s32 (int64x2_t __a
, int32x4_t __b
, int32x2_t __c
,
19342 return __builtin_aarch64_sqdmlsl2_lanev4si (__a
, __b
, __c
, __d
);
19345 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19346 vqdmlsl_high_laneq_s32 (int64x2_t __a
, int32x4_t __b
, int32x4_t __c
,
19349 return __builtin_aarch64_sqdmlsl2_laneqv4si (__a
, __b
, __c
, __d
);
19352 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19353 vqdmlsl_high_n_s32 (int64x2_t __a
, int32x4_t __b
, int32_t __c
)
19355 return __builtin_aarch64_sqdmlsl2_nv4si (__a
, __b
, __c
);
19358 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19359 vqdmlsl_lane_s32 (int64x2_t __a
, int32x2_t __b
, int32x2_t __c
, int const __d
)
19361 return __builtin_aarch64_sqdmlsl_lanev2si (__a
, __b
, __c
, __d
);
19364 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19365 vqdmlsl_laneq_s32 (int64x2_t __a
, int32x2_t __b
, int32x4_t __c
, int const __d
)
19367 return __builtin_aarch64_sqdmlsl_laneqv2si (__a
, __b
, __c
, __d
);
19370 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19371 vqdmlsl_n_s32 (int64x2_t __a
, int32x2_t __b
, int32_t __c
)
19373 return __builtin_aarch64_sqdmlsl_nv2si (__a
, __b
, __c
);
19376 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19377 vqdmlslh_s16 (int32_t __a
, int16_t __b
, int16_t __c
)
19379 return __builtin_aarch64_sqdmlslhi (__a
, __b
, __c
);
19382 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19383 vqdmlslh_lane_s16 (int32_t __a
, int16_t __b
, int16x4_t __c
, const int __d
)
19385 return __builtin_aarch64_sqdmlsl_lanehi (__a
, __b
, __c
, __d
);
19388 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19389 vqdmlslh_laneq_s16 (int32_t __a
, int16_t __b
, int16x8_t __c
, const int __d
)
19391 return __builtin_aarch64_sqdmlsl_laneqhi (__a
, __b
, __c
, __d
);
19394 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19395 vqdmlsls_s32 (int64_t __a
, int32_t __b
, int32_t __c
)
19397 return __builtin_aarch64_sqdmlslsi (__a
, __b
, __c
);
19400 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19401 vqdmlsls_lane_s32 (int64_t __a
, int32_t __b
, int32x2_t __c
, const int __d
)
19403 return __builtin_aarch64_sqdmlsl_lanesi (__a
, __b
, __c
, __d
);
19406 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19407 vqdmlsls_laneq_s32 (int64_t __a
, int32_t __b
, int32x4_t __c
, const int __d
)
19409 return __builtin_aarch64_sqdmlsl_laneqsi (__a
, __b
, __c
, __d
);
19414 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
19415 vqdmulh_lane_s16 (int16x4_t __a
, int16x4_t __b
, const int __c
)
19417 return __builtin_aarch64_sqdmulh_lanev4hi (__a
, __b
, __c
);
19420 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
19421 vqdmulh_lane_s32 (int32x2_t __a
, int32x2_t __b
, const int __c
)
19423 return __builtin_aarch64_sqdmulh_lanev2si (__a
, __b
, __c
);
19426 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
19427 vqdmulhq_lane_s16 (int16x8_t __a
, int16x4_t __b
, const int __c
)
19429 return __builtin_aarch64_sqdmulh_lanev8hi (__a
, __b
, __c
);
19432 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19433 vqdmulhq_lane_s32 (int32x4_t __a
, int32x2_t __b
, const int __c
)
19435 return __builtin_aarch64_sqdmulh_lanev4si (__a
, __b
, __c
);
19438 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19439 vqdmulhh_s16 (int16_t __a
, int16_t __b
)
19441 return (int16_t) __builtin_aarch64_sqdmulhhi (__a
, __b
);
19444 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19445 vqdmulhh_lane_s16 (int16_t __a
, int16x4_t __b
, const int __c
)
19447 return __builtin_aarch64_sqdmulh_lanehi (__a
, __b
, __c
);
19450 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19451 vqdmulhh_laneq_s16 (int16_t __a
, int16x8_t __b
, const int __c
)
19453 return __builtin_aarch64_sqdmulh_laneqhi (__a
, __b
, __c
);
19456 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19457 vqdmulhs_s32 (int32_t __a
, int32_t __b
)
19459 return (int32_t) __builtin_aarch64_sqdmulhsi (__a
, __b
);
19462 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19463 vqdmulhs_lane_s32 (int32_t __a
, int32x2_t __b
, const int __c
)
19465 return __builtin_aarch64_sqdmulh_lanesi (__a
, __b
, __c
);
19468 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19469 vqdmulhs_laneq_s32 (int32_t __a
, int32x4_t __b
, const int __c
)
19471 return __builtin_aarch64_sqdmulh_laneqsi (__a
, __b
, __c
);
19476 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19477 vqdmull_s16 (int16x4_t __a
, int16x4_t __b
)
19479 return __builtin_aarch64_sqdmullv4hi (__a
, __b
);
19482 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19483 vqdmull_high_s16 (int16x8_t __a
, int16x8_t __b
)
19485 return __builtin_aarch64_sqdmull2v8hi (__a
, __b
);
19488 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19489 vqdmull_high_lane_s16 (int16x8_t __a
, int16x4_t __b
, int const __c
)
19491 return __builtin_aarch64_sqdmull2_lanev8hi (__a
, __b
,__c
);
19494 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19495 vqdmull_high_laneq_s16 (int16x8_t __a
, int16x8_t __b
, int const __c
)
19497 return __builtin_aarch64_sqdmull2_laneqv8hi (__a
, __b
,__c
);
19500 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19501 vqdmull_high_n_s16 (int16x8_t __a
, int16_t __b
)
19503 return __builtin_aarch64_sqdmull2_nv8hi (__a
, __b
);
19506 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19507 vqdmull_lane_s16 (int16x4_t __a
, int16x4_t __b
, int const __c
)
19509 return __builtin_aarch64_sqdmull_lanev4hi (__a
, __b
, __c
);
19512 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19513 vqdmull_laneq_s16 (int16x4_t __a
, int16x8_t __b
, int const __c
)
19515 return __builtin_aarch64_sqdmull_laneqv4hi (__a
, __b
, __c
);
19518 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19519 vqdmull_n_s16 (int16x4_t __a
, int16_t __b
)
19521 return __builtin_aarch64_sqdmull_nv4hi (__a
, __b
);
19524 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19525 vqdmull_s32 (int32x2_t __a
, int32x2_t __b
)
19527 return __builtin_aarch64_sqdmullv2si (__a
, __b
);
19530 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19531 vqdmull_high_s32 (int32x4_t __a
, int32x4_t __b
)
19533 return __builtin_aarch64_sqdmull2v4si (__a
, __b
);
19536 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19537 vqdmull_high_lane_s32 (int32x4_t __a
, int32x2_t __b
, int const __c
)
19539 return __builtin_aarch64_sqdmull2_lanev4si (__a
, __b
, __c
);
19542 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19543 vqdmull_high_laneq_s32 (int32x4_t __a
, int32x4_t __b
, int const __c
)
19545 return __builtin_aarch64_sqdmull2_laneqv4si (__a
, __b
, __c
);
19548 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19549 vqdmull_high_n_s32 (int32x4_t __a
, int32_t __b
)
19551 return __builtin_aarch64_sqdmull2_nv4si (__a
, __b
);
19554 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19555 vqdmull_lane_s32 (int32x2_t __a
, int32x2_t __b
, int const __c
)
19557 return __builtin_aarch64_sqdmull_lanev2si (__a
, __b
, __c
);
19560 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19561 vqdmull_laneq_s32 (int32x2_t __a
, int32x4_t __b
, int const __c
)
19563 return __builtin_aarch64_sqdmull_laneqv2si (__a
, __b
, __c
);
19566 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19567 vqdmull_n_s32 (int32x2_t __a
, int32_t __b
)
19569 return __builtin_aarch64_sqdmull_nv2si (__a
, __b
);
19572 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19573 vqdmullh_s16 (int16_t __a
, int16_t __b
)
19575 return (int32_t) __builtin_aarch64_sqdmullhi (__a
, __b
);
19578 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19579 vqdmullh_lane_s16 (int16_t __a
, int16x4_t __b
, const int __c
)
19581 return __builtin_aarch64_sqdmull_lanehi (__a
, __b
, __c
);
19584 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19585 vqdmullh_laneq_s16 (int16_t __a
, int16x8_t __b
, const int __c
)
19587 return __builtin_aarch64_sqdmull_laneqhi (__a
, __b
, __c
);
19590 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19591 vqdmulls_s32 (int32_t __a
, int32_t __b
)
19593 return __builtin_aarch64_sqdmullsi (__a
, __b
);
19596 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19597 vqdmulls_lane_s32 (int32_t __a
, int32x2_t __b
, const int __c
)
19599 return __builtin_aarch64_sqdmull_lanesi (__a
, __b
, __c
);
19602 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19603 vqdmulls_laneq_s32 (int32_t __a
, int32x4_t __b
, const int __c
)
19605 return __builtin_aarch64_sqdmull_laneqsi (__a
, __b
, __c
);
19610 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
19611 vqmovn_s16 (int16x8_t __a
)
19613 return (int8x8_t
) __builtin_aarch64_sqmovnv8hi (__a
);
19616 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
19617 vqmovn_s32 (int32x4_t __a
)
19619 return (int16x4_t
) __builtin_aarch64_sqmovnv4si (__a
);
19622 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
19623 vqmovn_s64 (int64x2_t __a
)
19625 return (int32x2_t
) __builtin_aarch64_sqmovnv2di (__a
);
19628 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
19629 vqmovn_u16 (uint16x8_t __a
)
19631 return (uint8x8_t
) __builtin_aarch64_uqmovnv8hi ((int16x8_t
) __a
);
19634 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
19635 vqmovn_u32 (uint32x4_t __a
)
19637 return (uint16x4_t
) __builtin_aarch64_uqmovnv4si ((int32x4_t
) __a
);
19640 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
19641 vqmovn_u64 (uint64x2_t __a
)
19643 return (uint32x2_t
) __builtin_aarch64_uqmovnv2di ((int64x2_t
) __a
);
19646 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
19647 vqmovnh_s16 (int16_t __a
)
19649 return (int8_t) __builtin_aarch64_sqmovnhi (__a
);
19652 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19653 vqmovns_s32 (int32_t __a
)
19655 return (int16_t) __builtin_aarch64_sqmovnsi (__a
);
19658 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19659 vqmovnd_s64 (int64_t __a
)
19661 return (int32_t) __builtin_aarch64_sqmovndi (__a
);
19664 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
19665 vqmovnh_u16 (uint16_t __a
)
19667 return (uint8_t) __builtin_aarch64_uqmovnhi (__a
);
19670 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
19671 vqmovns_u32 (uint32_t __a
)
19673 return (uint16_t) __builtin_aarch64_uqmovnsi (__a
);
19676 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
19677 vqmovnd_u64 (uint64_t __a
)
19679 return (uint32_t) __builtin_aarch64_uqmovndi (__a
);
19684 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
19685 vqmovun_s16 (int16x8_t __a
)
19687 return (uint8x8_t
) __builtin_aarch64_sqmovunv8hi (__a
);
19690 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
19691 vqmovun_s32 (int32x4_t __a
)
19693 return (uint16x4_t
) __builtin_aarch64_sqmovunv4si (__a
);
19696 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
19697 vqmovun_s64 (int64x2_t __a
)
19699 return (uint32x2_t
) __builtin_aarch64_sqmovunv2di (__a
);
19702 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
19703 vqmovunh_s16 (int16_t __a
)
19705 return (int8_t) __builtin_aarch64_sqmovunhi (__a
);
19708 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19709 vqmovuns_s32 (int32_t __a
)
19711 return (int16_t) __builtin_aarch64_sqmovunsi (__a
);
19714 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19715 vqmovund_s64 (int64_t __a
)
19717 return (int32_t) __builtin_aarch64_sqmovundi (__a
);
19722 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19723 vqnegq_s64 (int64x2_t __a
)
19725 return (int64x2_t
) __builtin_aarch64_sqnegv2di (__a
);
19728 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
19729 vqnegb_s8 (int8_t __a
)
19731 return (int8_t) __builtin_aarch64_sqnegqi (__a
);
19734 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19735 vqnegh_s16 (int16_t __a
)
19737 return (int16_t) __builtin_aarch64_sqneghi (__a
);
19740 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19741 vqnegs_s32 (int32_t __a
)
19743 return (int32_t) __builtin_aarch64_sqnegsi (__a
);
19746 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19747 vqnegd_s64 (int64_t __a
)
19749 return __builtin_aarch64_sqnegdi (__a
);
19754 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
19755 vqrdmulh_lane_s16 (int16x4_t __a
, int16x4_t __b
, const int __c
)
19757 return __builtin_aarch64_sqrdmulh_lanev4hi (__a
, __b
, __c
);
19760 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
19761 vqrdmulh_lane_s32 (int32x2_t __a
, int32x2_t __b
, const int __c
)
19763 return __builtin_aarch64_sqrdmulh_lanev2si (__a
, __b
, __c
);
19766 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
19767 vqrdmulhq_lane_s16 (int16x8_t __a
, int16x4_t __b
, const int __c
)
19769 return __builtin_aarch64_sqrdmulh_lanev8hi (__a
, __b
, __c
);
19772 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19773 vqrdmulhq_lane_s32 (int32x4_t __a
, int32x2_t __b
, const int __c
)
19775 return __builtin_aarch64_sqrdmulh_lanev4si (__a
, __b
, __c
);
19778 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19779 vqrdmulhh_s16 (int16_t __a
, int16_t __b
)
19781 return (int16_t) __builtin_aarch64_sqrdmulhhi (__a
, __b
);
19784 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19785 vqrdmulhh_lane_s16 (int16_t __a
, int16x4_t __b
, const int __c
)
19787 return __builtin_aarch64_sqrdmulh_lanehi (__a
, __b
, __c
);
19790 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19791 vqrdmulhh_laneq_s16 (int16_t __a
, int16x8_t __b
, const int __c
)
19793 return __builtin_aarch64_sqrdmulh_laneqhi (__a
, __b
, __c
);
19796 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19797 vqrdmulhs_s32 (int32_t __a
, int32_t __b
)
19799 return (int32_t) __builtin_aarch64_sqrdmulhsi (__a
, __b
);
19802 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19803 vqrdmulhs_lane_s32 (int32_t __a
, int32x2_t __b
, const int __c
)
19805 return __builtin_aarch64_sqrdmulh_lanesi (__a
, __b
, __c
);
19808 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19809 vqrdmulhs_laneq_s32 (int32_t __a
, int32x4_t __b
, const int __c
)
19811 return __builtin_aarch64_sqrdmulh_laneqsi (__a
, __b
, __c
);
19816 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
19817 vqrshl_s8 (int8x8_t __a
, int8x8_t __b
)
19819 return __builtin_aarch64_sqrshlv8qi (__a
, __b
);
19822 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
19823 vqrshl_s16 (int16x4_t __a
, int16x4_t __b
)
19825 return __builtin_aarch64_sqrshlv4hi (__a
, __b
);
19828 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
19829 vqrshl_s32 (int32x2_t __a
, int32x2_t __b
)
19831 return __builtin_aarch64_sqrshlv2si (__a
, __b
);
19834 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
19835 vqrshl_s64 (int64x1_t __a
, int64x1_t __b
)
19837 return (int64x1_t
) {__builtin_aarch64_sqrshldi (__a
[0], __b
[0])};
19840 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
19841 vqrshl_u8 (uint8x8_t __a
, int8x8_t __b
)
19843 return __builtin_aarch64_uqrshlv8qi_uus ( __a
, __b
);
19846 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
19847 vqrshl_u16 (uint16x4_t __a
, int16x4_t __b
)
19849 return __builtin_aarch64_uqrshlv4hi_uus ( __a
, __b
);
19852 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
19853 vqrshl_u32 (uint32x2_t __a
, int32x2_t __b
)
19855 return __builtin_aarch64_uqrshlv2si_uus ( __a
, __b
);
19858 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
19859 vqrshl_u64 (uint64x1_t __a
, int64x1_t __b
)
19861 return (uint64x1_t
) {__builtin_aarch64_uqrshldi_uus (__a
[0], __b
[0])};
19864 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
19865 vqrshlq_s8 (int8x16_t __a
, int8x16_t __b
)
19867 return __builtin_aarch64_sqrshlv16qi (__a
, __b
);
19870 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
19871 vqrshlq_s16 (int16x8_t __a
, int16x8_t __b
)
19873 return __builtin_aarch64_sqrshlv8hi (__a
, __b
);
19876 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
19877 vqrshlq_s32 (int32x4_t __a
, int32x4_t __b
)
19879 return __builtin_aarch64_sqrshlv4si (__a
, __b
);
19882 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
19883 vqrshlq_s64 (int64x2_t __a
, int64x2_t __b
)
19885 return __builtin_aarch64_sqrshlv2di (__a
, __b
);
19888 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
19889 vqrshlq_u8 (uint8x16_t __a
, int8x16_t __b
)
19891 return __builtin_aarch64_uqrshlv16qi_uus ( __a
, __b
);
19894 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
19895 vqrshlq_u16 (uint16x8_t __a
, int16x8_t __b
)
19897 return __builtin_aarch64_uqrshlv8hi_uus ( __a
, __b
);
19900 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
19901 vqrshlq_u32 (uint32x4_t __a
, int32x4_t __b
)
19903 return __builtin_aarch64_uqrshlv4si_uus ( __a
, __b
);
19906 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
19907 vqrshlq_u64 (uint64x2_t __a
, int64x2_t __b
)
19909 return __builtin_aarch64_uqrshlv2di_uus ( __a
, __b
);
19912 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
19913 vqrshlb_s8 (int8_t __a
, int8_t __b
)
19915 return __builtin_aarch64_sqrshlqi (__a
, __b
);
19918 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
19919 vqrshlh_s16 (int16_t __a
, int16_t __b
)
19921 return __builtin_aarch64_sqrshlhi (__a
, __b
);
19924 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
19925 vqrshls_s32 (int32_t __a
, int32_t __b
)
19927 return __builtin_aarch64_sqrshlsi (__a
, __b
);
19930 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
19931 vqrshld_s64 (int64_t __a
, int64_t __b
)
19933 return __builtin_aarch64_sqrshldi (__a
, __b
);
19936 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
19937 vqrshlb_u8 (uint8_t __a
, uint8_t __b
)
19939 return __builtin_aarch64_uqrshlqi_uus (__a
, __b
);
19942 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
19943 vqrshlh_u16 (uint16_t __a
, uint16_t __b
)
19945 return __builtin_aarch64_uqrshlhi_uus (__a
, __b
);
19948 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
19949 vqrshls_u32 (uint32_t __a
, uint32_t __b
)
19951 return __builtin_aarch64_uqrshlsi_uus (__a
, __b
);
19954 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
19955 vqrshld_u64 (uint64_t __a
, uint64_t __b
)
19957 return __builtin_aarch64_uqrshldi_uus (__a
, __b
);
19962 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
19963 vqrshrn_n_s16 (int16x8_t __a
, const int __b
)
19965 return (int8x8_t
) __builtin_aarch64_sqrshrn_nv8hi (__a
, __b
);
19968 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
19969 vqrshrn_n_s32 (int32x4_t __a
, const int __b
)
19971 return (int16x4_t
) __builtin_aarch64_sqrshrn_nv4si (__a
, __b
);
19974 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
19975 vqrshrn_n_s64 (int64x2_t __a
, const int __b
)
19977 return (int32x2_t
) __builtin_aarch64_sqrshrn_nv2di (__a
, __b
);
19980 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
19981 vqrshrn_n_u16 (uint16x8_t __a
, const int __b
)
19983 return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a
, __b
);
19986 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
19987 vqrshrn_n_u32 (uint32x4_t __a
, const int __b
)
19989 return __builtin_aarch64_uqrshrn_nv4si_uus ( __a
, __b
);
19992 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
19993 vqrshrn_n_u64 (uint64x2_t __a
, const int __b
)
19995 return __builtin_aarch64_uqrshrn_nv2di_uus ( __a
, __b
);
19998 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
19999 vqrshrnh_n_s16 (int16_t __a
, const int __b
)
20001 return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a
, __b
);
20004 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
20005 vqrshrns_n_s32 (int32_t __a
, const int __b
)
20007 return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a
, __b
);
20010 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
20011 vqrshrnd_n_s64 (int64_t __a
, const int __b
)
20013 return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a
, __b
);
20016 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
20017 vqrshrnh_n_u16 (uint16_t __a
, const int __b
)
20019 return __builtin_aarch64_uqrshrn_nhi_uus (__a
, __b
);
20022 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
20023 vqrshrns_n_u32 (uint32_t __a
, const int __b
)
20025 return __builtin_aarch64_uqrshrn_nsi_uus (__a
, __b
);
20028 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
20029 vqrshrnd_n_u64 (uint64_t __a
, const int __b
)
20031 return __builtin_aarch64_uqrshrn_ndi_uus (__a
, __b
);
20036 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20037 vqrshrun_n_s16 (int16x8_t __a
, const int __b
)
20039 return (uint8x8_t
) __builtin_aarch64_sqrshrun_nv8hi (__a
, __b
);
20042 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
20043 vqrshrun_n_s32 (int32x4_t __a
, const int __b
)
20045 return (uint16x4_t
) __builtin_aarch64_sqrshrun_nv4si (__a
, __b
);
20048 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
20049 vqrshrun_n_s64 (int64x2_t __a
, const int __b
)
20051 return (uint32x2_t
) __builtin_aarch64_sqrshrun_nv2di (__a
, __b
);
20054 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
20055 vqrshrunh_n_s16 (int16_t __a
, const int __b
)
20057 return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a
, __b
);
20060 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
20061 vqrshruns_n_s32 (int32_t __a
, const int __b
)
20063 return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a
, __b
);
20066 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
20067 vqrshrund_n_s64 (int64_t __a
, const int __b
)
20069 return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a
, __b
);
20074 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20075 vqshl_s8 (int8x8_t __a
, int8x8_t __b
)
20077 return __builtin_aarch64_sqshlv8qi (__a
, __b
);
20080 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
20081 vqshl_s16 (int16x4_t __a
, int16x4_t __b
)
20083 return __builtin_aarch64_sqshlv4hi (__a
, __b
);
20086 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
20087 vqshl_s32 (int32x2_t __a
, int32x2_t __b
)
20089 return __builtin_aarch64_sqshlv2si (__a
, __b
);
20092 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
20093 vqshl_s64 (int64x1_t __a
, int64x1_t __b
)
20095 return (int64x1_t
) {__builtin_aarch64_sqshldi (__a
[0], __b
[0])};
20098 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20099 vqshl_u8 (uint8x8_t __a
, int8x8_t __b
)
20101 return __builtin_aarch64_uqshlv8qi_uus ( __a
, __b
);
20104 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
20105 vqshl_u16 (uint16x4_t __a
, int16x4_t __b
)
20107 return __builtin_aarch64_uqshlv4hi_uus ( __a
, __b
);
20110 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
20111 vqshl_u32 (uint32x2_t __a
, int32x2_t __b
)
20113 return __builtin_aarch64_uqshlv2si_uus ( __a
, __b
);
20116 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
20117 vqshl_u64 (uint64x1_t __a
, int64x1_t __b
)
20119 return (uint64x1_t
) {__builtin_aarch64_uqshldi_uus (__a
[0], __b
[0])};
20122 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
20123 vqshlq_s8 (int8x16_t __a
, int8x16_t __b
)
20125 return __builtin_aarch64_sqshlv16qi (__a
, __b
);
20128 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
20129 vqshlq_s16 (int16x8_t __a
, int16x8_t __b
)
20131 return __builtin_aarch64_sqshlv8hi (__a
, __b
);
20134 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
20135 vqshlq_s32 (int32x4_t __a
, int32x4_t __b
)
20137 return __builtin_aarch64_sqshlv4si (__a
, __b
);
20140 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
20141 vqshlq_s64 (int64x2_t __a
, int64x2_t __b
)
20143 return __builtin_aarch64_sqshlv2di (__a
, __b
);
20146 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20147 vqshlq_u8 (uint8x16_t __a
, int8x16_t __b
)
20149 return __builtin_aarch64_uqshlv16qi_uus ( __a
, __b
);
20152 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
20153 vqshlq_u16 (uint16x8_t __a
, int16x8_t __b
)
20155 return __builtin_aarch64_uqshlv8hi_uus ( __a
, __b
);
20158 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
20159 vqshlq_u32 (uint32x4_t __a
, int32x4_t __b
)
20161 return __builtin_aarch64_uqshlv4si_uus ( __a
, __b
);
20164 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
20165 vqshlq_u64 (uint64x2_t __a
, int64x2_t __b
)
20167 return __builtin_aarch64_uqshlv2di_uus ( __a
, __b
);
20170 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
20171 vqshlb_s8 (int8_t __a
, int8_t __b
)
20173 return __builtin_aarch64_sqshlqi (__a
, __b
);
20176 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
20177 vqshlh_s16 (int16_t __a
, int16_t __b
)
20179 return __builtin_aarch64_sqshlhi (__a
, __b
);
20182 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
20183 vqshls_s32 (int32_t __a
, int32_t __b
)
20185 return __builtin_aarch64_sqshlsi (__a
, __b
);
20188 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
20189 vqshld_s64 (int64_t __a
, int64_t __b
)
20191 return __builtin_aarch64_sqshldi (__a
, __b
);
20194 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
20195 vqshlb_u8 (uint8_t __a
, uint8_t __b
)
20197 return __builtin_aarch64_uqshlqi_uus (__a
, __b
);
20200 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
20201 vqshlh_u16 (uint16_t __a
, uint16_t __b
)
20203 return __builtin_aarch64_uqshlhi_uus (__a
, __b
);
20206 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
20207 vqshls_u32 (uint32_t __a
, uint32_t __b
)
20209 return __builtin_aarch64_uqshlsi_uus (__a
, __b
);
20212 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
20213 vqshld_u64 (uint64_t __a
, uint64_t __b
)
20215 return __builtin_aarch64_uqshldi_uus (__a
, __b
);
20218 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20219 vqshl_n_s8 (int8x8_t __a
, const int __b
)
20221 return (int8x8_t
) __builtin_aarch64_sqshl_nv8qi (__a
, __b
);
20224 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
20225 vqshl_n_s16 (int16x4_t __a
, const int __b
)
20227 return (int16x4_t
) __builtin_aarch64_sqshl_nv4hi (__a
, __b
);
20230 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
20231 vqshl_n_s32 (int32x2_t __a
, const int __b
)
20233 return (int32x2_t
) __builtin_aarch64_sqshl_nv2si (__a
, __b
);
20236 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
20237 vqshl_n_s64 (int64x1_t __a
, const int __b
)
20239 return (int64x1_t
) {__builtin_aarch64_sqshl_ndi (__a
[0], __b
)};
20242 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20243 vqshl_n_u8 (uint8x8_t __a
, const int __b
)
20245 return __builtin_aarch64_uqshl_nv8qi_uus (__a
, __b
);
20248 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
20249 vqshl_n_u16 (uint16x4_t __a
, const int __b
)
20251 return __builtin_aarch64_uqshl_nv4hi_uus (__a
, __b
);
20254 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
20255 vqshl_n_u32 (uint32x2_t __a
, const int __b
)
20257 return __builtin_aarch64_uqshl_nv2si_uus (__a
, __b
);
20260 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
20261 vqshl_n_u64 (uint64x1_t __a
, const int __b
)
20263 return (uint64x1_t
) {__builtin_aarch64_uqshl_ndi_uus (__a
[0], __b
)};
20266 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
20267 vqshlq_n_s8 (int8x16_t __a
, const int __b
)
20269 return (int8x16_t
) __builtin_aarch64_sqshl_nv16qi (__a
, __b
);
20272 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
20273 vqshlq_n_s16 (int16x8_t __a
, const int __b
)
20275 return (int16x8_t
) __builtin_aarch64_sqshl_nv8hi (__a
, __b
);
20278 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
20279 vqshlq_n_s32 (int32x4_t __a
, const int __b
)
20281 return (int32x4_t
) __builtin_aarch64_sqshl_nv4si (__a
, __b
);
20284 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
20285 vqshlq_n_s64 (int64x2_t __a
, const int __b
)
20287 return (int64x2_t
) __builtin_aarch64_sqshl_nv2di (__a
, __b
);
20290 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20291 vqshlq_n_u8 (uint8x16_t __a
, const int __b
)
20293 return __builtin_aarch64_uqshl_nv16qi_uus (__a
, __b
);
20296 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
20297 vqshlq_n_u16 (uint16x8_t __a
, const int __b
)
20299 return __builtin_aarch64_uqshl_nv8hi_uus (__a
, __b
);
20302 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
20303 vqshlq_n_u32 (uint32x4_t __a
, const int __b
)
20305 return __builtin_aarch64_uqshl_nv4si_uus (__a
, __b
);
20308 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
20309 vqshlq_n_u64 (uint64x2_t __a
, const int __b
)
20311 return __builtin_aarch64_uqshl_nv2di_uus (__a
, __b
);
20314 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
20315 vqshlb_n_s8 (int8_t __a
, const int __b
)
20317 return (int8_t) __builtin_aarch64_sqshl_nqi (__a
, __b
);
20320 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
20321 vqshlh_n_s16 (int16_t __a
, const int __b
)
20323 return (int16_t) __builtin_aarch64_sqshl_nhi (__a
, __b
);
20326 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
20327 vqshls_n_s32 (int32_t __a
, const int __b
)
20329 return (int32_t) __builtin_aarch64_sqshl_nsi (__a
, __b
);
20332 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
20333 vqshld_n_s64 (int64_t __a
, const int __b
)
20335 return __builtin_aarch64_sqshl_ndi (__a
, __b
);
20338 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
20339 vqshlb_n_u8 (uint8_t __a
, const int __b
)
20341 return __builtin_aarch64_uqshl_nqi_uus (__a
, __b
);
20344 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
20345 vqshlh_n_u16 (uint16_t __a
, const int __b
)
20347 return __builtin_aarch64_uqshl_nhi_uus (__a
, __b
);
20350 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
20351 vqshls_n_u32 (uint32_t __a
, const int __b
)
20353 return __builtin_aarch64_uqshl_nsi_uus (__a
, __b
);
20356 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
20357 vqshld_n_u64 (uint64_t __a
, const int __b
)
20359 return __builtin_aarch64_uqshl_ndi_uus (__a
, __b
);
20364 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20365 vqshlu_n_s8 (int8x8_t __a
, const int __b
)
20367 return __builtin_aarch64_sqshlu_nv8qi_uss (__a
, __b
);
20370 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
20371 vqshlu_n_s16 (int16x4_t __a
, const int __b
)
20373 return __builtin_aarch64_sqshlu_nv4hi_uss (__a
, __b
);
20376 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
20377 vqshlu_n_s32 (int32x2_t __a
, const int __b
)
20379 return __builtin_aarch64_sqshlu_nv2si_uss (__a
, __b
);
20382 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
20383 vqshlu_n_s64 (int64x1_t __a
, const int __b
)
20385 return (uint64x1_t
) {__builtin_aarch64_sqshlu_ndi_uss (__a
[0], __b
)};
20388 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20389 vqshluq_n_s8 (int8x16_t __a
, const int __b
)
20391 return __builtin_aarch64_sqshlu_nv16qi_uss (__a
, __b
);
20394 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
20395 vqshluq_n_s16 (int16x8_t __a
, const int __b
)
20397 return __builtin_aarch64_sqshlu_nv8hi_uss (__a
, __b
);
20400 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
20401 vqshluq_n_s32 (int32x4_t __a
, const int __b
)
20403 return __builtin_aarch64_sqshlu_nv4si_uss (__a
, __b
);
20406 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
20407 vqshluq_n_s64 (int64x2_t __a
, const int __b
)
20409 return __builtin_aarch64_sqshlu_nv2di_uss (__a
, __b
);
20412 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
20413 vqshlub_n_s8 (int8_t __a
, const int __b
)
20415 return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a
, __b
);
20418 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
20419 vqshluh_n_s16 (int16_t __a
, const int __b
)
20421 return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a
, __b
);
20424 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
20425 vqshlus_n_s32 (int32_t __a
, const int __b
)
20427 return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a
, __b
);
20430 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
20431 vqshlud_n_s64 (int64_t __a
, const int __b
)
20433 return __builtin_aarch64_sqshlu_ndi_uss (__a
, __b
);
20438 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20439 vqshrn_n_s16 (int16x8_t __a
, const int __b
)
20441 return (int8x8_t
) __builtin_aarch64_sqshrn_nv8hi (__a
, __b
);
20444 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
20445 vqshrn_n_s32 (int32x4_t __a
, const int __b
)
20447 return (int16x4_t
) __builtin_aarch64_sqshrn_nv4si (__a
, __b
);
20450 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
20451 vqshrn_n_s64 (int64x2_t __a
, const int __b
)
20453 return (int32x2_t
) __builtin_aarch64_sqshrn_nv2di (__a
, __b
);
20456 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20457 vqshrn_n_u16 (uint16x8_t __a
, const int __b
)
20459 return __builtin_aarch64_uqshrn_nv8hi_uus ( __a
, __b
);
20462 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
20463 vqshrn_n_u32 (uint32x4_t __a
, const int __b
)
20465 return __builtin_aarch64_uqshrn_nv4si_uus ( __a
, __b
);
20468 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
20469 vqshrn_n_u64 (uint64x2_t __a
, const int __b
)
20471 return __builtin_aarch64_uqshrn_nv2di_uus ( __a
, __b
);
20474 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
20475 vqshrnh_n_s16 (int16_t __a
, const int __b
)
20477 return (int8_t) __builtin_aarch64_sqshrn_nhi (__a
, __b
);
20480 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
20481 vqshrns_n_s32 (int32_t __a
, const int __b
)
20483 return (int16_t) __builtin_aarch64_sqshrn_nsi (__a
, __b
);
20486 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
20487 vqshrnd_n_s64 (int64_t __a
, const int __b
)
20489 return (int32_t) __builtin_aarch64_sqshrn_ndi (__a
, __b
);
20492 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
20493 vqshrnh_n_u16 (uint16_t __a
, const int __b
)
20495 return __builtin_aarch64_uqshrn_nhi_uus (__a
, __b
);
20498 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
20499 vqshrns_n_u32 (uint32_t __a
, const int __b
)
20501 return __builtin_aarch64_uqshrn_nsi_uus (__a
, __b
);
20504 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
20505 vqshrnd_n_u64 (uint64_t __a
, const int __b
)
20507 return __builtin_aarch64_uqshrn_ndi_uus (__a
, __b
);
20512 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20513 vqshrun_n_s16 (int16x8_t __a
, const int __b
)
20515 return (uint8x8_t
) __builtin_aarch64_sqshrun_nv8hi (__a
, __b
);
20518 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
20519 vqshrun_n_s32 (int32x4_t __a
, const int __b
)
20521 return (uint16x4_t
) __builtin_aarch64_sqshrun_nv4si (__a
, __b
);
20524 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
20525 vqshrun_n_s64 (int64x2_t __a
, const int __b
)
20527 return (uint32x2_t
) __builtin_aarch64_sqshrun_nv2di (__a
, __b
);
20530 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
20531 vqshrunh_n_s16 (int16_t __a
, const int __b
)
20533 return (int8_t) __builtin_aarch64_sqshrun_nhi (__a
, __b
);
20536 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
20537 vqshruns_n_s32 (int32_t __a
, const int __b
)
20539 return (int16_t) __builtin_aarch64_sqshrun_nsi (__a
, __b
);
20542 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
20543 vqshrund_n_s64 (int64_t __a
, const int __b
)
20545 return (int32_t) __builtin_aarch64_sqshrun_ndi (__a
, __b
);
20550 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
20551 vqsubb_s8 (int8_t __a
, int8_t __b
)
20553 return (int8_t) __builtin_aarch64_sqsubqi (__a
, __b
);
20556 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
20557 vqsubh_s16 (int16_t __a
, int16_t __b
)
20559 return (int16_t) __builtin_aarch64_sqsubhi (__a
, __b
);
20562 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
20563 vqsubs_s32 (int32_t __a
, int32_t __b
)
20565 return (int32_t) __builtin_aarch64_sqsubsi (__a
, __b
);
20568 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
20569 vqsubd_s64 (int64_t __a
, int64_t __b
)
20571 return __builtin_aarch64_sqsubdi (__a
, __b
);
20574 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
20575 vqsubb_u8 (uint8_t __a
, uint8_t __b
)
20577 return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a
, __b
);
20580 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
20581 vqsubh_u16 (uint16_t __a
, uint16_t __b
)
20583 return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a
, __b
);
20586 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
20587 vqsubs_u32 (uint32_t __a
, uint32_t __b
)
20589 return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a
, __b
);
20592 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
20593 vqsubd_u64 (uint64_t __a
, uint64_t __b
)
20595 return __builtin_aarch64_uqsubdi_uuu (__a
, __b
);
20600 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20601 vqtbl2_s8 (int8x16x2_t tab
, uint8x8_t idx
)
20603 __builtin_aarch64_simd_oi __o
;
20604 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, tab
.val
[0], 0);
20605 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, tab
.val
[1], 1);
20606 return __builtin_aarch64_tbl3v8qi (__o
, (int8x8_t
)idx
);
20609 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20610 vqtbl2_u8 (uint8x16x2_t tab
, uint8x8_t idx
)
20612 __builtin_aarch64_simd_oi __o
;
20613 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20614 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20615 return (uint8x8_t
)__builtin_aarch64_tbl3v8qi (__o
, (int8x8_t
)idx
);
20618 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
20619 vqtbl2_p8 (poly8x16x2_t tab
, uint8x8_t idx
)
20621 __builtin_aarch64_simd_oi __o
;
20622 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20623 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20624 return (poly8x8_t
)__builtin_aarch64_tbl3v8qi (__o
, (int8x8_t
)idx
);
20627 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
20628 vqtbl2q_s8 (int8x16x2_t tab
, uint8x16_t idx
)
20630 __builtin_aarch64_simd_oi __o
;
20631 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20632 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20633 return __builtin_aarch64_tbl3v16qi (__o
, (int8x16_t
)idx
);
20636 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20637 vqtbl2q_u8 (uint8x16x2_t tab
, uint8x16_t idx
)
20639 __builtin_aarch64_simd_oi __o
;
20640 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20641 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20642 return (uint8x16_t
)__builtin_aarch64_tbl3v16qi (__o
, (int8x16_t
)idx
);
20645 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
20646 vqtbl2q_p8 (poly8x16x2_t tab
, uint8x16_t idx
)
20648 __builtin_aarch64_simd_oi __o
;
20649 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20650 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20651 return (poly8x16_t
)__builtin_aarch64_tbl3v16qi (__o
, (int8x16_t
)idx
);
20656 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20657 vqtbl3_s8 (int8x16x3_t tab
, uint8x8_t idx
)
20659 __builtin_aarch64_simd_ci __o
;
20660 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20661 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20662 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20663 return __builtin_aarch64_qtbl3v8qi (__o
, (int8x8_t
)idx
);
20666 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20667 vqtbl3_u8 (uint8x16x3_t tab
, uint8x8_t idx
)
20669 __builtin_aarch64_simd_ci __o
;
20670 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20671 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20672 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20673 return (uint8x8_t
)__builtin_aarch64_qtbl3v8qi (__o
, (int8x8_t
)idx
);
20676 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
20677 vqtbl3_p8 (poly8x16x3_t tab
, uint8x8_t idx
)
20679 __builtin_aarch64_simd_ci __o
;
20680 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20681 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20682 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20683 return (poly8x8_t
)__builtin_aarch64_qtbl3v8qi (__o
, (int8x8_t
)idx
);
20686 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
20687 vqtbl3q_s8 (int8x16x3_t tab
, uint8x16_t idx
)
20689 __builtin_aarch64_simd_ci __o
;
20690 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20691 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20692 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20693 return __builtin_aarch64_qtbl3v16qi (__o
, (int8x16_t
)idx
);
20696 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20697 vqtbl3q_u8 (uint8x16x3_t tab
, uint8x16_t idx
)
20699 __builtin_aarch64_simd_ci __o
;
20700 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20701 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20702 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20703 return (uint8x16_t
)__builtin_aarch64_qtbl3v16qi (__o
, (int8x16_t
)idx
);
20706 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
20707 vqtbl3q_p8 (poly8x16x3_t tab
, uint8x16_t idx
)
20709 __builtin_aarch64_simd_ci __o
;
20710 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20711 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20712 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20713 return (poly8x16_t
)__builtin_aarch64_qtbl3v16qi (__o
, (int8x16_t
)idx
);
20718 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20719 vqtbl4_s8 (int8x16x4_t tab
, uint8x8_t idx
)
20721 __builtin_aarch64_simd_xi __o
;
20722 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20723 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20724 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20725 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20726 return __builtin_aarch64_qtbl4v8qi (__o
, (int8x8_t
)idx
);
20729 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20730 vqtbl4_u8 (uint8x16x4_t tab
, uint8x8_t idx
)
20732 __builtin_aarch64_simd_xi __o
;
20733 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20734 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20735 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20736 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20737 return (uint8x8_t
)__builtin_aarch64_qtbl4v8qi (__o
, (int8x8_t
)idx
);
20740 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
20741 vqtbl4_p8 (poly8x16x4_t tab
, uint8x8_t idx
)
20743 __builtin_aarch64_simd_xi __o
;
20744 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20745 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20746 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20747 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20748 return (poly8x8_t
)__builtin_aarch64_qtbl4v8qi (__o
, (int8x8_t
)idx
);
20751 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
20752 vqtbl4q_s8 (int8x16x4_t tab
, uint8x16_t idx
)
20754 __builtin_aarch64_simd_xi __o
;
20755 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20756 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20757 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20758 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20759 return __builtin_aarch64_qtbl4v16qi (__o
, (int8x16_t
)idx
);
20762 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20763 vqtbl4q_u8 (uint8x16x4_t tab
, uint8x16_t idx
)
20765 __builtin_aarch64_simd_xi __o
;
20766 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20767 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20768 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20769 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20770 return (uint8x16_t
)__builtin_aarch64_qtbl4v16qi (__o
, (int8x16_t
)idx
);
20773 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
20774 vqtbl4q_p8 (poly8x16x4_t tab
, uint8x16_t idx
)
20776 __builtin_aarch64_simd_xi __o
;
20777 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20778 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20779 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20780 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20781 return (poly8x16_t
)__builtin_aarch64_qtbl4v16qi (__o
, (int8x16_t
)idx
);
20786 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20787 vqtbx2_s8 (int8x8_t r
, int8x16x2_t tab
, uint8x8_t idx
)
20789 __builtin_aarch64_simd_oi __o
;
20790 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, tab
.val
[0], 0);
20791 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, tab
.val
[1], 1);
20792 return __builtin_aarch64_tbx4v8qi (r
, __o
, (int8x8_t
)idx
);
20795 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20796 vqtbx2_u8 (uint8x8_t r
, uint8x16x2_t tab
, uint8x8_t idx
)
20798 __builtin_aarch64_simd_oi __o
;
20799 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20800 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20801 return (uint8x8_t
)__builtin_aarch64_tbx4v8qi ((int8x8_t
)r
, __o
,
20805 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
20806 vqtbx2_p8 (poly8x8_t r
, poly8x16x2_t tab
, uint8x8_t idx
)
20808 __builtin_aarch64_simd_oi __o
;
20809 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20810 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20811 return (poly8x8_t
)__builtin_aarch64_tbx4v8qi ((int8x8_t
)r
, __o
,
20815 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
20816 vqtbx2q_s8 (int8x16_t r
, int8x16x2_t tab
, uint8x16_t idx
)
20818 __builtin_aarch64_simd_oi __o
;
20819 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, tab
.val
[0], 0);
20820 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, tab
.val
[1], 1);
20821 return __builtin_aarch64_tbx4v16qi (r
, __o
, (int8x16_t
)idx
);
20824 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20825 vqtbx2q_u8 (uint8x16_t r
, uint8x16x2_t tab
, uint8x16_t idx
)
20827 __builtin_aarch64_simd_oi __o
;
20828 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20829 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20830 return (uint8x16_t
)__builtin_aarch64_tbx4v16qi ((int8x16_t
)r
, __o
,
20834 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
20835 vqtbx2q_p8 (poly8x16_t r
, poly8x16x2_t tab
, uint8x16_t idx
)
20837 __builtin_aarch64_simd_oi __o
;
20838 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20839 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20840 return (poly8x16_t
)__builtin_aarch64_tbx4v16qi ((int8x16_t
)r
, __o
,
20845 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20846 vqtbx3_s8 (int8x8_t r
, int8x16x3_t tab
, uint8x8_t idx
)
20848 __builtin_aarch64_simd_ci __o
;
20849 __o
= __builtin_aarch64_set_qregciv16qi (__o
, tab
.val
[0], 0);
20850 __o
= __builtin_aarch64_set_qregciv16qi (__o
, tab
.val
[1], 1);
20851 __o
= __builtin_aarch64_set_qregciv16qi (__o
, tab
.val
[2], 2);
20852 return __builtin_aarch64_qtbx3v8qi (r
, __o
, (int8x8_t
)idx
);
20855 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20856 vqtbx3_u8 (uint8x8_t r
, uint8x16x3_t tab
, uint8x8_t idx
)
20858 __builtin_aarch64_simd_ci __o
;
20859 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20860 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20861 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20862 return (uint8x8_t
)__builtin_aarch64_qtbx3v8qi ((int8x8_t
)r
, __o
,
20866 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
20867 vqtbx3_p8 (poly8x8_t r
, poly8x16x3_t tab
, uint8x8_t idx
)
20869 __builtin_aarch64_simd_ci __o
;
20870 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20871 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20872 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20873 return (poly8x8_t
)__builtin_aarch64_qtbx3v8qi ((int8x8_t
)r
, __o
,
20877 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
20878 vqtbx3q_s8 (int8x16_t r
, int8x16x3_t tab
, uint8x16_t idx
)
20880 __builtin_aarch64_simd_ci __o
;
20881 __o
= __builtin_aarch64_set_qregciv16qi (__o
, tab
.val
[0], 0);
20882 __o
= __builtin_aarch64_set_qregciv16qi (__o
, tab
.val
[1], 1);
20883 __o
= __builtin_aarch64_set_qregciv16qi (__o
, tab
.val
[2], 2);
20884 return __builtin_aarch64_qtbx3v16qi (r
, __o
, (int8x16_t
)idx
);
20887 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20888 vqtbx3q_u8 (uint8x16_t r
, uint8x16x3_t tab
, uint8x16_t idx
)
20890 __builtin_aarch64_simd_ci __o
;
20891 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20892 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20893 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20894 return (uint8x16_t
)__builtin_aarch64_qtbx3v16qi ((int8x16_t
)r
, __o
,
20898 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
20899 vqtbx3q_p8 (poly8x16_t r
, poly8x16x3_t tab
, uint8x16_t idx
)
20901 __builtin_aarch64_simd_ci __o
;
20902 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20903 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20904 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20905 return (poly8x16_t
)__builtin_aarch64_qtbx3v16qi ((int8x16_t
)r
, __o
,
20911 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20912 vqtbx4_s8 (int8x8_t r
, int8x16x4_t tab
, uint8x8_t idx
)
20914 __builtin_aarch64_simd_xi __o
;
20915 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, tab
.val
[0], 0);
20916 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, tab
.val
[1], 1);
20917 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, tab
.val
[2], 2);
20918 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, tab
.val
[3], 3);
20919 return __builtin_aarch64_qtbx4v8qi (r
, __o
, (int8x8_t
)idx
);
20922 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20923 vqtbx4_u8 (uint8x8_t r
, uint8x16x4_t tab
, uint8x8_t idx
)
20925 __builtin_aarch64_simd_xi __o
;
20926 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20927 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20928 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20929 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20930 return (uint8x8_t
)__builtin_aarch64_qtbx4v8qi ((int8x8_t
)r
, __o
,
20934 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
20935 vqtbx4_p8 (poly8x8_t r
, poly8x16x4_t tab
, uint8x8_t idx
)
20937 __builtin_aarch64_simd_xi __o
;
20938 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20939 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20940 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20941 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20942 return (poly8x8_t
)__builtin_aarch64_qtbx4v8qi ((int8x8_t
)r
, __o
,
20946 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
20947 vqtbx4q_s8 (int8x16_t r
, int8x16x4_t tab
, uint8x16_t idx
)
20949 __builtin_aarch64_simd_xi __o
;
20950 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, tab
.val
[0], 0);
20951 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, tab
.val
[1], 1);
20952 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, tab
.val
[2], 2);
20953 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, tab
.val
[3], 3);
20954 return __builtin_aarch64_qtbx4v16qi (r
, __o
, (int8x16_t
)idx
);
20957 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
20958 vqtbx4q_u8 (uint8x16_t r
, uint8x16x4_t tab
, uint8x16_t idx
)
20960 __builtin_aarch64_simd_xi __o
;
20961 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20962 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20963 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20964 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20965 return (uint8x16_t
)__builtin_aarch64_qtbx4v16qi ((int8x16_t
)r
, __o
,
20969 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
20970 vqtbx4q_p8 (poly8x16_t r
, poly8x16x4_t tab
, uint8x16_t idx
)
20972 __builtin_aarch64_simd_xi __o
;
20973 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[0], 0);
20974 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[1], 1);
20975 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[2], 2);
20976 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
)tab
.val
[3], 3);
20977 return (poly8x16_t
)__builtin_aarch64_qtbx4v16qi ((int8x16_t
)r
, __o
,
20983 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
20984 vrbit_p8 (poly8x8_t __a
)
20986 return (poly8x8_t
) __builtin_aarch64_rbitv8qi ((int8x8_t
) __a
);
20989 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
20990 vrbit_s8 (int8x8_t __a
)
20992 return __builtin_aarch64_rbitv8qi (__a
);
20995 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
20996 vrbit_u8 (uint8x8_t __a
)
20998 return (uint8x8_t
) __builtin_aarch64_rbitv8qi ((int8x8_t
) __a
);
21001 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
21002 vrbitq_p8 (poly8x16_t __a
)
21004 return (poly8x16_t
) __builtin_aarch64_rbitv16qi ((int8x16_t
)__a
);
21007 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
21008 vrbitq_s8 (int8x16_t __a
)
21010 return __builtin_aarch64_rbitv16qi (__a
);
21013 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
21014 vrbitq_u8 (uint8x16_t __a
)
21016 return (uint8x16_t
) __builtin_aarch64_rbitv16qi ((int8x16_t
) __a
);
21021 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
21022 vrecpe_u32 (uint32x2_t __a
)
21024 return (uint32x2_t
) __builtin_aarch64_urecpev2si ((int32x2_t
) __a
);
21027 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21028 vrecpeq_u32 (uint32x4_t __a
)
21030 return (uint32x4_t
) __builtin_aarch64_urecpev4si ((int32x4_t
) __a
);
21033 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
21034 vrecpes_f32 (float32_t __a
)
21036 return __builtin_aarch64_frecpesf (__a
);
21039 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
21040 vrecped_f64 (float64_t __a
)
21042 return __builtin_aarch64_frecpedf (__a
);
21045 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21046 vrecpe_f32 (float32x2_t __a
)
21048 return __builtin_aarch64_frecpev2sf (__a
);
21051 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21052 vrecpe_f64 (float64x1_t __a
)
21054 return (float64x1_t
) { vrecped_f64 (vget_lane_f64 (__a
, 0)) };
21057 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21058 vrecpeq_f32 (float32x4_t __a
)
21060 return __builtin_aarch64_frecpev4sf (__a
);
21063 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21064 vrecpeq_f64 (float64x2_t __a
)
21066 return __builtin_aarch64_frecpev2df (__a
);
21071 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
21072 vrecpss_f32 (float32_t __a
, float32_t __b
)
21074 return __builtin_aarch64_frecpssf (__a
, __b
);
21077 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
21078 vrecpsd_f64 (float64_t __a
, float64_t __b
)
21080 return __builtin_aarch64_frecpsdf (__a
, __b
);
21083 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21084 vrecps_f32 (float32x2_t __a
, float32x2_t __b
)
21086 return __builtin_aarch64_frecpsv2sf (__a
, __b
);
21089 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21090 vrecps_f64 (float64x1_t __a
, float64x1_t __b
)
21092 return (float64x1_t
) { vrecpsd_f64 (vget_lane_f64 (__a
, 0),
21093 vget_lane_f64 (__b
, 0)) };
21096 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21097 vrecpsq_f32 (float32x4_t __a
, float32x4_t __b
)
21099 return __builtin_aarch64_frecpsv4sf (__a
, __b
);
21102 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21103 vrecpsq_f64 (float64x2_t __a
, float64x2_t __b
)
21105 return __builtin_aarch64_frecpsv2df (__a
, __b
);
21110 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
21111 vrecpxs_f32 (float32_t __a
)
21113 return __builtin_aarch64_frecpxsf (__a
);
21116 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
21117 vrecpxd_f64 (float64_t __a
)
21119 return __builtin_aarch64_frecpxdf (__a
);
21125 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
21126 vrev16_p8 (poly8x8_t a
)
21128 return __builtin_shuffle (a
, (uint8x8_t
) { 1, 0, 3, 2, 5, 4, 7, 6 });
21131 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
21132 vrev16_s8 (int8x8_t a
)
21134 return __builtin_shuffle (a
, (uint8x8_t
) { 1, 0, 3, 2, 5, 4, 7, 6 });
21137 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
21138 vrev16_u8 (uint8x8_t a
)
21140 return __builtin_shuffle (a
, (uint8x8_t
) { 1, 0, 3, 2, 5, 4, 7, 6 });
21143 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
21144 vrev16q_p8 (poly8x16_t a
)
21146 return __builtin_shuffle (a
,
21147 (uint8x16_t
) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
21150 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
21151 vrev16q_s8 (int8x16_t a
)
21153 return __builtin_shuffle (a
,
21154 (uint8x16_t
) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
21157 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
21158 vrev16q_u8 (uint8x16_t a
)
21160 return __builtin_shuffle (a
,
21161 (uint8x16_t
) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
21164 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
21165 vrev32_p8 (poly8x8_t a
)
21167 return __builtin_shuffle (a
, (uint8x8_t
) { 3, 2, 1, 0, 7, 6, 5, 4 });
21170 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
21171 vrev32_p16 (poly16x4_t a
)
21173 return __builtin_shuffle (a
, (uint16x4_t
) { 1, 0, 3, 2 });
21176 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
21177 vrev32_s8 (int8x8_t a
)
21179 return __builtin_shuffle (a
, (uint8x8_t
) { 3, 2, 1, 0, 7, 6, 5, 4 });
21182 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
21183 vrev32_s16 (int16x4_t a
)
21185 return __builtin_shuffle (a
, (uint16x4_t
) { 1, 0, 3, 2 });
21188 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
21189 vrev32_u8 (uint8x8_t a
)
21191 return __builtin_shuffle (a
, (uint8x8_t
) { 3, 2, 1, 0, 7, 6, 5, 4 });
21194 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
21195 vrev32_u16 (uint16x4_t a
)
21197 return __builtin_shuffle (a
, (uint16x4_t
) { 1, 0, 3, 2 });
21200 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
21201 vrev32q_p8 (poly8x16_t a
)
21203 return __builtin_shuffle (a
,
21204 (uint8x16_t
) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
21207 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
21208 vrev32q_p16 (poly16x8_t a
)
21210 return __builtin_shuffle (a
, (uint16x8_t
) { 1, 0, 3, 2, 5, 4, 7, 6 });
21213 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
21214 vrev32q_s8 (int8x16_t a
)
21216 return __builtin_shuffle (a
,
21217 (uint8x16_t
) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
21220 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
21221 vrev32q_s16 (int16x8_t a
)
21223 return __builtin_shuffle (a
, (uint16x8_t
) { 1, 0, 3, 2, 5, 4, 7, 6 });
21226 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
21227 vrev32q_u8 (uint8x16_t a
)
21229 return __builtin_shuffle (a
,
21230 (uint8x16_t
) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
21233 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
21234 vrev32q_u16 (uint16x8_t a
)
21236 return __builtin_shuffle (a
, (uint16x8_t
) { 1, 0, 3, 2, 5, 4, 7, 6 });
21239 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
21240 vrev64_f16 (float16x4_t __a
)
21242 return __builtin_shuffle (__a
, (uint16x4_t
) { 3, 2, 1, 0 });
21245 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21246 vrev64_f32 (float32x2_t a
)
21248 return __builtin_shuffle (a
, (uint32x2_t
) { 1, 0 });
21251 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
21252 vrev64_p8 (poly8x8_t a
)
21254 return __builtin_shuffle (a
, (uint8x8_t
) { 7, 6, 5, 4, 3, 2, 1, 0 });
21257 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
21258 vrev64_p16 (poly16x4_t a
)
21260 return __builtin_shuffle (a
, (uint16x4_t
) { 3, 2, 1, 0 });
21263 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
21264 vrev64_s8 (int8x8_t a
)
21266 return __builtin_shuffle (a
, (uint8x8_t
) { 7, 6, 5, 4, 3, 2, 1, 0 });
21269 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
21270 vrev64_s16 (int16x4_t a
)
21272 return __builtin_shuffle (a
, (uint16x4_t
) { 3, 2, 1, 0 });
21275 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
21276 vrev64_s32 (int32x2_t a
)
21278 return __builtin_shuffle (a
, (uint32x2_t
) { 1, 0 });
21281 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
21282 vrev64_u8 (uint8x8_t a
)
21284 return __builtin_shuffle (a
, (uint8x8_t
) { 7, 6, 5, 4, 3, 2, 1, 0 });
21287 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
21288 vrev64_u16 (uint16x4_t a
)
21290 return __builtin_shuffle (a
, (uint16x4_t
) { 3, 2, 1, 0 });
21293 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
21294 vrev64_u32 (uint32x2_t a
)
21296 return __builtin_shuffle (a
, (uint32x2_t
) { 1, 0 });
21299 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
21300 vrev64q_f16 (float16x8_t __a
)
21302 return __builtin_shuffle (__a
, (uint16x8_t
) { 3, 2, 1, 0, 7, 6, 5, 4 });
21305 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21306 vrev64q_f32 (float32x4_t a
)
21308 return __builtin_shuffle (a
, (uint32x4_t
) { 1, 0, 3, 2 });
21311 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
21312 vrev64q_p8 (poly8x16_t a
)
21314 return __builtin_shuffle (a
,
21315 (uint8x16_t
) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
21318 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
21319 vrev64q_p16 (poly16x8_t a
)
21321 return __builtin_shuffle (a
, (uint16x8_t
) { 3, 2, 1, 0, 7, 6, 5, 4 });
21324 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
21325 vrev64q_s8 (int8x16_t a
)
21327 return __builtin_shuffle (a
,
21328 (uint8x16_t
) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
21331 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
21332 vrev64q_s16 (int16x8_t a
)
21334 return __builtin_shuffle (a
, (uint16x8_t
) { 3, 2, 1, 0, 7, 6, 5, 4 });
21337 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
21338 vrev64q_s32 (int32x4_t a
)
21340 return __builtin_shuffle (a
, (uint32x4_t
) { 1, 0, 3, 2 });
21343 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
21344 vrev64q_u8 (uint8x16_t a
)
21346 return __builtin_shuffle (a
,
21347 (uint8x16_t
) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
21350 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
21351 vrev64q_u16 (uint16x8_t a
)
21353 return __builtin_shuffle (a
, (uint16x8_t
) { 3, 2, 1, 0, 7, 6, 5, 4 });
21356 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21357 vrev64q_u32 (uint32x4_t a
)
21359 return __builtin_shuffle (a
, (uint32x4_t
) { 1, 0, 3, 2 });
21364 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21365 vrnd_f32 (float32x2_t __a
)
21367 return __builtin_aarch64_btruncv2sf (__a
);
21370 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21371 vrnd_f64 (float64x1_t __a
)
21373 return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a
, 0)), __a
, 0);
21376 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21377 vrndq_f32 (float32x4_t __a
)
21379 return __builtin_aarch64_btruncv4sf (__a
);
21382 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21383 vrndq_f64 (float64x2_t __a
)
21385 return __builtin_aarch64_btruncv2df (__a
);
21390 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21391 vrnda_f32 (float32x2_t __a
)
21393 return __builtin_aarch64_roundv2sf (__a
);
21396 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21397 vrnda_f64 (float64x1_t __a
)
21399 return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a
, 0)), __a
, 0);
21402 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21403 vrndaq_f32 (float32x4_t __a
)
21405 return __builtin_aarch64_roundv4sf (__a
);
21408 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21409 vrndaq_f64 (float64x2_t __a
)
21411 return __builtin_aarch64_roundv2df (__a
);
21416 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21417 vrndi_f32 (float32x2_t __a
)
21419 return __builtin_aarch64_nearbyintv2sf (__a
);
21422 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21423 vrndi_f64 (float64x1_t __a
)
21425 return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a
, 0)), __a
, 0);
21428 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21429 vrndiq_f32 (float32x4_t __a
)
21431 return __builtin_aarch64_nearbyintv4sf (__a
);
21434 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21435 vrndiq_f64 (float64x2_t __a
)
21437 return __builtin_aarch64_nearbyintv2df (__a
);
21442 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21443 vrndm_f32 (float32x2_t __a
)
21445 return __builtin_aarch64_floorv2sf (__a
);
21448 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21449 vrndm_f64 (float64x1_t __a
)
21451 return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a
, 0)), __a
, 0);
21454 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21455 vrndmq_f32 (float32x4_t __a
)
21457 return __builtin_aarch64_floorv4sf (__a
);
21460 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21461 vrndmq_f64 (float64x2_t __a
)
21463 return __builtin_aarch64_floorv2df (__a
);
21468 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21469 vrndn_f32 (float32x2_t __a
)
21471 return __builtin_aarch64_frintnv2sf (__a
);
21474 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21475 vrndn_f64 (float64x1_t __a
)
21477 return (float64x1_t
) {__builtin_aarch64_frintndf (__a
[0])};
21480 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21481 vrndnq_f32 (float32x4_t __a
)
21483 return __builtin_aarch64_frintnv4sf (__a
);
21486 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21487 vrndnq_f64 (float64x2_t __a
)
21489 return __builtin_aarch64_frintnv2df (__a
);
21494 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21495 vrndp_f32 (float32x2_t __a
)
21497 return __builtin_aarch64_ceilv2sf (__a
);
21500 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21501 vrndp_f64 (float64x1_t __a
)
21503 return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a
, 0)), __a
, 0);
21506 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21507 vrndpq_f32 (float32x4_t __a
)
21509 return __builtin_aarch64_ceilv4sf (__a
);
21512 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21513 vrndpq_f64 (float64x2_t __a
)
21515 return __builtin_aarch64_ceilv2df (__a
);
21520 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21521 vrndx_f32 (float32x2_t __a
)
21523 return __builtin_aarch64_rintv2sf (__a
);
21526 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21527 vrndx_f64 (float64x1_t __a
)
21529 return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a
, 0)), __a
, 0);
21532 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21533 vrndxq_f32 (float32x4_t __a
)
21535 return __builtin_aarch64_rintv4sf (__a
);
21538 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21539 vrndxq_f64 (float64x2_t __a
)
21541 return __builtin_aarch64_rintv2df (__a
);
21546 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
21547 vrshl_s8 (int8x8_t __a
, int8x8_t __b
)
21549 return (int8x8_t
) __builtin_aarch64_srshlv8qi (__a
, __b
);
21552 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
21553 vrshl_s16 (int16x4_t __a
, int16x4_t __b
)
21555 return (int16x4_t
) __builtin_aarch64_srshlv4hi (__a
, __b
);
21558 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
21559 vrshl_s32 (int32x2_t __a
, int32x2_t __b
)
21561 return (int32x2_t
) __builtin_aarch64_srshlv2si (__a
, __b
);
21564 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
21565 vrshl_s64 (int64x1_t __a
, int64x1_t __b
)
21567 return (int64x1_t
) {__builtin_aarch64_srshldi (__a
[0], __b
[0])};
21570 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
21571 vrshl_u8 (uint8x8_t __a
, int8x8_t __b
)
21573 return __builtin_aarch64_urshlv8qi_uus (__a
, __b
);
21576 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
21577 vrshl_u16 (uint16x4_t __a
, int16x4_t __b
)
21579 return __builtin_aarch64_urshlv4hi_uus (__a
, __b
);
21582 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
21583 vrshl_u32 (uint32x2_t __a
, int32x2_t __b
)
21585 return __builtin_aarch64_urshlv2si_uus (__a
, __b
);
21588 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
21589 vrshl_u64 (uint64x1_t __a
, int64x1_t __b
)
21591 return (uint64x1_t
) {__builtin_aarch64_urshldi_uus (__a
[0], __b
[0])};
21594 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
21595 vrshlq_s8 (int8x16_t __a
, int8x16_t __b
)
21597 return (int8x16_t
) __builtin_aarch64_srshlv16qi (__a
, __b
);
21600 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
21601 vrshlq_s16 (int16x8_t __a
, int16x8_t __b
)
21603 return (int16x8_t
) __builtin_aarch64_srshlv8hi (__a
, __b
);
21606 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
21607 vrshlq_s32 (int32x4_t __a
, int32x4_t __b
)
21609 return (int32x4_t
) __builtin_aarch64_srshlv4si (__a
, __b
);
21612 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
21613 vrshlq_s64 (int64x2_t __a
, int64x2_t __b
)
21615 return (int64x2_t
) __builtin_aarch64_srshlv2di (__a
, __b
);
21618 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
21619 vrshlq_u8 (uint8x16_t __a
, int8x16_t __b
)
21621 return __builtin_aarch64_urshlv16qi_uus (__a
, __b
);
21624 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
21625 vrshlq_u16 (uint16x8_t __a
, int16x8_t __b
)
21627 return __builtin_aarch64_urshlv8hi_uus (__a
, __b
);
21630 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21631 vrshlq_u32 (uint32x4_t __a
, int32x4_t __b
)
21633 return __builtin_aarch64_urshlv4si_uus (__a
, __b
);
21636 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
21637 vrshlq_u64 (uint64x2_t __a
, int64x2_t __b
)
21639 return __builtin_aarch64_urshlv2di_uus (__a
, __b
);
21642 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
21643 vrshld_s64 (int64_t __a
, int64_t __b
)
21645 return __builtin_aarch64_srshldi (__a
, __b
);
21648 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
21649 vrshld_u64 (uint64_t __a
, int64_t __b
)
21651 return __builtin_aarch64_urshldi_uus (__a
, __b
);
21656 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
21657 vrshr_n_s8 (int8x8_t __a
, const int __b
)
21659 return (int8x8_t
) __builtin_aarch64_srshr_nv8qi (__a
, __b
);
21662 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
21663 vrshr_n_s16 (int16x4_t __a
, const int __b
)
21665 return (int16x4_t
) __builtin_aarch64_srshr_nv4hi (__a
, __b
);
21668 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
21669 vrshr_n_s32 (int32x2_t __a
, const int __b
)
21671 return (int32x2_t
) __builtin_aarch64_srshr_nv2si (__a
, __b
);
21674 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
21675 vrshr_n_s64 (int64x1_t __a
, const int __b
)
21677 return (int64x1_t
) {__builtin_aarch64_srshr_ndi (__a
[0], __b
)};
21680 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
21681 vrshr_n_u8 (uint8x8_t __a
, const int __b
)
21683 return __builtin_aarch64_urshr_nv8qi_uus (__a
, __b
);
21686 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
21687 vrshr_n_u16 (uint16x4_t __a
, const int __b
)
21689 return __builtin_aarch64_urshr_nv4hi_uus (__a
, __b
);
21692 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
21693 vrshr_n_u32 (uint32x2_t __a
, const int __b
)
21695 return __builtin_aarch64_urshr_nv2si_uus (__a
, __b
);
21698 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
21699 vrshr_n_u64 (uint64x1_t __a
, const int __b
)
21701 return (uint64x1_t
) {__builtin_aarch64_urshr_ndi_uus (__a
[0], __b
)};
21704 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
21705 vrshrq_n_s8 (int8x16_t __a
, const int __b
)
21707 return (int8x16_t
) __builtin_aarch64_srshr_nv16qi (__a
, __b
);
21710 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
21711 vrshrq_n_s16 (int16x8_t __a
, const int __b
)
21713 return (int16x8_t
) __builtin_aarch64_srshr_nv8hi (__a
, __b
);
21716 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
21717 vrshrq_n_s32 (int32x4_t __a
, const int __b
)
21719 return (int32x4_t
) __builtin_aarch64_srshr_nv4si (__a
, __b
);
21722 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
21723 vrshrq_n_s64 (int64x2_t __a
, const int __b
)
21725 return (int64x2_t
) __builtin_aarch64_srshr_nv2di (__a
, __b
);
21728 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
21729 vrshrq_n_u8 (uint8x16_t __a
, const int __b
)
21731 return __builtin_aarch64_urshr_nv16qi_uus (__a
, __b
);
21734 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
21735 vrshrq_n_u16 (uint16x8_t __a
, const int __b
)
21737 return __builtin_aarch64_urshr_nv8hi_uus (__a
, __b
);
21740 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21741 vrshrq_n_u32 (uint32x4_t __a
, const int __b
)
21743 return __builtin_aarch64_urshr_nv4si_uus (__a
, __b
);
21746 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
21747 vrshrq_n_u64 (uint64x2_t __a
, const int __b
)
21749 return __builtin_aarch64_urshr_nv2di_uus (__a
, __b
);
21752 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
21753 vrshrd_n_s64 (int64_t __a
, const int __b
)
21755 return __builtin_aarch64_srshr_ndi (__a
, __b
);
21758 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
21759 vrshrd_n_u64 (uint64_t __a
, const int __b
)
21761 return __builtin_aarch64_urshr_ndi_uus (__a
, __b
);
21766 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
21767 vrsqrtes_f32 (float32_t __a
)
21769 return __builtin_aarch64_rsqrtesf (__a
);
21772 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
21773 vrsqrted_f64 (float64_t __a
)
21775 return __builtin_aarch64_rsqrtedf (__a
);
21778 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21779 vrsqrte_f32 (float32x2_t __a
)
21781 return __builtin_aarch64_rsqrtev2sf (__a
);
21784 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21785 vrsqrte_f64 (float64x1_t __a
)
21787 return (float64x1_t
) {vrsqrted_f64 (vget_lane_f64 (__a
, 0))};
21790 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21791 vrsqrteq_f32 (float32x4_t __a
)
21793 return __builtin_aarch64_rsqrtev4sf (__a
);
21796 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21797 vrsqrteq_f64 (float64x2_t __a
)
21799 return __builtin_aarch64_rsqrtev2df (__a
);
21804 __extension__
static __inline float32_t
__attribute__ ((__always_inline__
))
21805 vrsqrtss_f32 (float32_t __a
, float32_t __b
)
21807 return __builtin_aarch64_rsqrtssf (__a
, __b
);
21810 __extension__
static __inline float64_t
__attribute__ ((__always_inline__
))
21811 vrsqrtsd_f64 (float64_t __a
, float64_t __b
)
21813 return __builtin_aarch64_rsqrtsdf (__a
, __b
);
21816 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
21817 vrsqrts_f32 (float32x2_t __a
, float32x2_t __b
)
21819 return __builtin_aarch64_rsqrtsv2sf (__a
, __b
);
21822 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
21823 vrsqrts_f64 (float64x1_t __a
, float64x1_t __b
)
21825 return (float64x1_t
) {vrsqrtsd_f64 (vget_lane_f64 (__a
, 0),
21826 vget_lane_f64 (__b
, 0))};
21829 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
21830 vrsqrtsq_f32 (float32x4_t __a
, float32x4_t __b
)
21832 return __builtin_aarch64_rsqrtsv4sf (__a
, __b
);
21835 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
21836 vrsqrtsq_f64 (float64x2_t __a
, float64x2_t __b
)
21838 return __builtin_aarch64_rsqrtsv2df (__a
, __b
);
21843 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
21844 vrsra_n_s8 (int8x8_t __a
, int8x8_t __b
, const int __c
)
21846 return (int8x8_t
) __builtin_aarch64_srsra_nv8qi (__a
, __b
, __c
);
21849 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
21850 vrsra_n_s16 (int16x4_t __a
, int16x4_t __b
, const int __c
)
21852 return (int16x4_t
) __builtin_aarch64_srsra_nv4hi (__a
, __b
, __c
);
21855 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
21856 vrsra_n_s32 (int32x2_t __a
, int32x2_t __b
, const int __c
)
21858 return (int32x2_t
) __builtin_aarch64_srsra_nv2si (__a
, __b
, __c
);
21861 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
21862 vrsra_n_s64 (int64x1_t __a
, int64x1_t __b
, const int __c
)
21864 return (int64x1_t
) {__builtin_aarch64_srsra_ndi (__a
[0], __b
[0], __c
)};
21867 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
21868 vrsra_n_u8 (uint8x8_t __a
, uint8x8_t __b
, const int __c
)
21870 return __builtin_aarch64_ursra_nv8qi_uuus (__a
, __b
, __c
);
21873 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
21874 vrsra_n_u16 (uint16x4_t __a
, uint16x4_t __b
, const int __c
)
21876 return __builtin_aarch64_ursra_nv4hi_uuus (__a
, __b
, __c
);
21879 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
21880 vrsra_n_u32 (uint32x2_t __a
, uint32x2_t __b
, const int __c
)
21882 return __builtin_aarch64_ursra_nv2si_uuus (__a
, __b
, __c
);
21885 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
21886 vrsra_n_u64 (uint64x1_t __a
, uint64x1_t __b
, const int __c
)
21888 return (uint64x1_t
) {__builtin_aarch64_ursra_ndi_uuus (__a
[0], __b
[0], __c
)};
21891 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
21892 vrsraq_n_s8 (int8x16_t __a
, int8x16_t __b
, const int __c
)
21894 return (int8x16_t
) __builtin_aarch64_srsra_nv16qi (__a
, __b
, __c
);
21897 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
21898 vrsraq_n_s16 (int16x8_t __a
, int16x8_t __b
, const int __c
)
21900 return (int16x8_t
) __builtin_aarch64_srsra_nv8hi (__a
, __b
, __c
);
21903 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
21904 vrsraq_n_s32 (int32x4_t __a
, int32x4_t __b
, const int __c
)
21906 return (int32x4_t
) __builtin_aarch64_srsra_nv4si (__a
, __b
, __c
);
21909 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
21910 vrsraq_n_s64 (int64x2_t __a
, int64x2_t __b
, const int __c
)
21912 return (int64x2_t
) __builtin_aarch64_srsra_nv2di (__a
, __b
, __c
);
21915 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
21916 vrsraq_n_u8 (uint8x16_t __a
, uint8x16_t __b
, const int __c
)
21918 return __builtin_aarch64_ursra_nv16qi_uuus (__a
, __b
, __c
);
21921 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
21922 vrsraq_n_u16 (uint16x8_t __a
, uint16x8_t __b
, const int __c
)
21924 return __builtin_aarch64_ursra_nv8hi_uuus (__a
, __b
, __c
);
21927 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21928 vrsraq_n_u32 (uint32x4_t __a
, uint32x4_t __b
, const int __c
)
21930 return __builtin_aarch64_ursra_nv4si_uuus (__a
, __b
, __c
);
21933 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
21934 vrsraq_n_u64 (uint64x2_t __a
, uint64x2_t __b
, const int __c
)
21936 return __builtin_aarch64_ursra_nv2di_uuus (__a
, __b
, __c
);
21939 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
21940 vrsrad_n_s64 (int64_t __a
, int64_t __b
, const int __c
)
21942 return __builtin_aarch64_srsra_ndi (__a
, __b
, __c
);
21945 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
21946 vrsrad_n_u64 (uint64_t __a
, uint64_t __b
, const int __c
)
21948 return __builtin_aarch64_ursra_ndi_uuus (__a
, __b
, __c
);
21951 #pragma GCC push_options
21952 #pragma GCC target ("+nothing+crypto")
21956 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21957 vsha1cq_u32 (uint32x4_t hash_abcd
, uint32_t hash_e
, uint32x4_t wk
)
21959 return __builtin_aarch64_crypto_sha1cv4si_uuuu (hash_abcd
, hash_e
, wk
);
21962 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21963 vsha1mq_u32 (uint32x4_t hash_abcd
, uint32_t hash_e
, uint32x4_t wk
)
21965 return __builtin_aarch64_crypto_sha1mv4si_uuuu (hash_abcd
, hash_e
, wk
);
21968 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21969 vsha1pq_u32 (uint32x4_t hash_abcd
, uint32_t hash_e
, uint32x4_t wk
)
21971 return __builtin_aarch64_crypto_sha1pv4si_uuuu (hash_abcd
, hash_e
, wk
);
21974 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
21975 vsha1h_u32 (uint32_t hash_e
)
21977 return __builtin_aarch64_crypto_sha1hsi_uu (hash_e
);
21980 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21981 vsha1su0q_u32 (uint32x4_t w0_3
, uint32x4_t w4_7
, uint32x4_t w8_11
)
21983 return __builtin_aarch64_crypto_sha1su0v4si_uuuu (w0_3
, w4_7
, w8_11
);
21986 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21987 vsha1su1q_u32 (uint32x4_t tw0_3
, uint32x4_t w12_15
)
21989 return __builtin_aarch64_crypto_sha1su1v4si_uuu (tw0_3
, w12_15
);
21992 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21993 vsha256hq_u32 (uint32x4_t hash_abcd
, uint32x4_t hash_efgh
, uint32x4_t wk
)
21995 return __builtin_aarch64_crypto_sha256hv4si_uuuu (hash_abcd
, hash_efgh
, wk
);
21998 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
21999 vsha256h2q_u32 (uint32x4_t hash_efgh
, uint32x4_t hash_abcd
, uint32x4_t wk
)
22001 return __builtin_aarch64_crypto_sha256h2v4si_uuuu (hash_efgh
, hash_abcd
, wk
);
22004 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22005 vsha256su0q_u32 (uint32x4_t w0_3
, uint32x4_t w4_7
)
22007 return __builtin_aarch64_crypto_sha256su0v4si_uuu (w0_3
, w4_7
);
22010 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22011 vsha256su1q_u32 (uint32x4_t tw0_3
, uint32x4_t w8_11
, uint32x4_t w12_15
)
22013 return __builtin_aarch64_crypto_sha256su1v4si_uuuu (tw0_3
, w8_11
, w12_15
);
22016 __extension__
static __inline poly128_t
__attribute__ ((__always_inline__
))
22017 vmull_p64 (poly64_t a
, poly64_t b
)
22020 __builtin_aarch64_crypto_pmulldi_ppp (a
, b
);
22023 __extension__
static __inline poly128_t
__attribute__ ((__always_inline__
))
22024 vmull_high_p64 (poly64x2_t a
, poly64x2_t b
)
22026 return __builtin_aarch64_crypto_pmullv2di_ppp (a
, b
);
22029 #pragma GCC pop_options
22033 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
22034 vshl_n_s8 (int8x8_t __a
, const int __b
)
22036 return (int8x8_t
) __builtin_aarch64_ashlv8qi (__a
, __b
);
22039 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
22040 vshl_n_s16 (int16x4_t __a
, const int __b
)
22042 return (int16x4_t
) __builtin_aarch64_ashlv4hi (__a
, __b
);
22045 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
22046 vshl_n_s32 (int32x2_t __a
, const int __b
)
22048 return (int32x2_t
) __builtin_aarch64_ashlv2si (__a
, __b
);
22051 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
22052 vshl_n_s64 (int64x1_t __a
, const int __b
)
22054 return (int64x1_t
) {__builtin_aarch64_ashldi (__a
[0], __b
)};
22057 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
22058 vshl_n_u8 (uint8x8_t __a
, const int __b
)
22060 return (uint8x8_t
) __builtin_aarch64_ashlv8qi ((int8x8_t
) __a
, __b
);
22063 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
22064 vshl_n_u16 (uint16x4_t __a
, const int __b
)
22066 return (uint16x4_t
) __builtin_aarch64_ashlv4hi ((int16x4_t
) __a
, __b
);
22069 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
22070 vshl_n_u32 (uint32x2_t __a
, const int __b
)
22072 return (uint32x2_t
) __builtin_aarch64_ashlv2si ((int32x2_t
) __a
, __b
);
22075 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
22076 vshl_n_u64 (uint64x1_t __a
, const int __b
)
22078 return (uint64x1_t
) {__builtin_aarch64_ashldi ((int64_t) __a
[0], __b
)};
22081 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
22082 vshlq_n_s8 (int8x16_t __a
, const int __b
)
22084 return (int8x16_t
) __builtin_aarch64_ashlv16qi (__a
, __b
);
22087 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
22088 vshlq_n_s16 (int16x8_t __a
, const int __b
)
22090 return (int16x8_t
) __builtin_aarch64_ashlv8hi (__a
, __b
);
22093 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
22094 vshlq_n_s32 (int32x4_t __a
, const int __b
)
22096 return (int32x4_t
) __builtin_aarch64_ashlv4si (__a
, __b
);
22099 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
22100 vshlq_n_s64 (int64x2_t __a
, const int __b
)
22102 return (int64x2_t
) __builtin_aarch64_ashlv2di (__a
, __b
);
22105 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
22106 vshlq_n_u8 (uint8x16_t __a
, const int __b
)
22108 return (uint8x16_t
) __builtin_aarch64_ashlv16qi ((int8x16_t
) __a
, __b
);
22111 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22112 vshlq_n_u16 (uint16x8_t __a
, const int __b
)
22114 return (uint16x8_t
) __builtin_aarch64_ashlv8hi ((int16x8_t
) __a
, __b
);
22117 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22118 vshlq_n_u32 (uint32x4_t __a
, const int __b
)
22120 return (uint32x4_t
) __builtin_aarch64_ashlv4si ((int32x4_t
) __a
, __b
);
22123 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22124 vshlq_n_u64 (uint64x2_t __a
, const int __b
)
22126 return (uint64x2_t
) __builtin_aarch64_ashlv2di ((int64x2_t
) __a
, __b
);
22129 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
22130 vshld_n_s64 (int64_t __a
, const int __b
)
22132 return __builtin_aarch64_ashldi (__a
, __b
);
22135 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
22136 vshld_n_u64 (uint64_t __a
, const int __b
)
22138 return (uint64_t) __builtin_aarch64_ashldi (__a
, __b
);
22141 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
22142 vshl_s8 (int8x8_t __a
, int8x8_t __b
)
22144 return __builtin_aarch64_sshlv8qi (__a
, __b
);
22147 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
22148 vshl_s16 (int16x4_t __a
, int16x4_t __b
)
22150 return __builtin_aarch64_sshlv4hi (__a
, __b
);
22153 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
22154 vshl_s32 (int32x2_t __a
, int32x2_t __b
)
22156 return __builtin_aarch64_sshlv2si (__a
, __b
);
22159 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
22160 vshl_s64 (int64x1_t __a
, int64x1_t __b
)
22162 return (int64x1_t
) {__builtin_aarch64_sshldi (__a
[0], __b
[0])};
22165 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
22166 vshl_u8 (uint8x8_t __a
, int8x8_t __b
)
22168 return __builtin_aarch64_ushlv8qi_uus (__a
, __b
);
22171 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
22172 vshl_u16 (uint16x4_t __a
, int16x4_t __b
)
22174 return __builtin_aarch64_ushlv4hi_uus (__a
, __b
);
22177 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
22178 vshl_u32 (uint32x2_t __a
, int32x2_t __b
)
22180 return __builtin_aarch64_ushlv2si_uus (__a
, __b
);
22183 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
22184 vshl_u64 (uint64x1_t __a
, int64x1_t __b
)
22186 return (uint64x1_t
) {__builtin_aarch64_ushldi_uus (__a
[0], __b
[0])};
22189 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
22190 vshlq_s8 (int8x16_t __a
, int8x16_t __b
)
22192 return __builtin_aarch64_sshlv16qi (__a
, __b
);
22195 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
22196 vshlq_s16 (int16x8_t __a
, int16x8_t __b
)
22198 return __builtin_aarch64_sshlv8hi (__a
, __b
);
22201 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
22202 vshlq_s32 (int32x4_t __a
, int32x4_t __b
)
22204 return __builtin_aarch64_sshlv4si (__a
, __b
);
22207 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
22208 vshlq_s64 (int64x2_t __a
, int64x2_t __b
)
22210 return __builtin_aarch64_sshlv2di (__a
, __b
);
22213 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
22214 vshlq_u8 (uint8x16_t __a
, int8x16_t __b
)
22216 return __builtin_aarch64_ushlv16qi_uus (__a
, __b
);
22219 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22220 vshlq_u16 (uint16x8_t __a
, int16x8_t __b
)
22222 return __builtin_aarch64_ushlv8hi_uus (__a
, __b
);
22225 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22226 vshlq_u32 (uint32x4_t __a
, int32x4_t __b
)
22228 return __builtin_aarch64_ushlv4si_uus (__a
, __b
);
22231 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22232 vshlq_u64 (uint64x2_t __a
, int64x2_t __b
)
22234 return __builtin_aarch64_ushlv2di_uus (__a
, __b
);
22237 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
22238 vshld_s64 (int64_t __a
, int64_t __b
)
22240 return __builtin_aarch64_sshldi (__a
, __b
);
22243 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
22244 vshld_u64 (uint64_t __a
, uint64_t __b
)
22246 return __builtin_aarch64_ushldi_uus (__a
, __b
);
22249 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
22250 vshll_high_n_s8 (int8x16_t __a
, const int __b
)
22252 return __builtin_aarch64_sshll2_nv16qi (__a
, __b
);
22255 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
22256 vshll_high_n_s16 (int16x8_t __a
, const int __b
)
22258 return __builtin_aarch64_sshll2_nv8hi (__a
, __b
);
22261 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
22262 vshll_high_n_s32 (int32x4_t __a
, const int __b
)
22264 return __builtin_aarch64_sshll2_nv4si (__a
, __b
);
22267 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22268 vshll_high_n_u8 (uint8x16_t __a
, const int __b
)
22270 return (uint16x8_t
) __builtin_aarch64_ushll2_nv16qi ((int8x16_t
) __a
, __b
);
22273 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22274 vshll_high_n_u16 (uint16x8_t __a
, const int __b
)
22276 return (uint32x4_t
) __builtin_aarch64_ushll2_nv8hi ((int16x8_t
) __a
, __b
);
22279 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22280 vshll_high_n_u32 (uint32x4_t __a
, const int __b
)
22282 return (uint64x2_t
) __builtin_aarch64_ushll2_nv4si ((int32x4_t
) __a
, __b
);
22285 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
22286 vshll_n_s8 (int8x8_t __a
, const int __b
)
22288 return __builtin_aarch64_sshll_nv8qi (__a
, __b
);
22291 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
22292 vshll_n_s16 (int16x4_t __a
, const int __b
)
22294 return __builtin_aarch64_sshll_nv4hi (__a
, __b
);
22297 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
22298 vshll_n_s32 (int32x2_t __a
, const int __b
)
22300 return __builtin_aarch64_sshll_nv2si (__a
, __b
);
22303 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22304 vshll_n_u8 (uint8x8_t __a
, const int __b
)
22306 return __builtin_aarch64_ushll_nv8qi_uus (__a
, __b
);
22309 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22310 vshll_n_u16 (uint16x4_t __a
, const int __b
)
22312 return __builtin_aarch64_ushll_nv4hi_uus (__a
, __b
);
22315 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22316 vshll_n_u32 (uint32x2_t __a
, const int __b
)
22318 return __builtin_aarch64_ushll_nv2si_uus (__a
, __b
);
22323 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
22324 vshr_n_s8 (int8x8_t __a
, const int __b
)
22326 return (int8x8_t
) __builtin_aarch64_ashrv8qi (__a
, __b
);
22329 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
22330 vshr_n_s16 (int16x4_t __a
, const int __b
)
22332 return (int16x4_t
) __builtin_aarch64_ashrv4hi (__a
, __b
);
22335 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
22336 vshr_n_s32 (int32x2_t __a
, const int __b
)
22338 return (int32x2_t
) __builtin_aarch64_ashrv2si (__a
, __b
);
22341 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
22342 vshr_n_s64 (int64x1_t __a
, const int __b
)
22344 return (int64x1_t
) {__builtin_aarch64_ashr_simddi (__a
[0], __b
)};
22347 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
22348 vshr_n_u8 (uint8x8_t __a
, const int __b
)
22350 return (uint8x8_t
) __builtin_aarch64_lshrv8qi ((int8x8_t
) __a
, __b
);
22353 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
22354 vshr_n_u16 (uint16x4_t __a
, const int __b
)
22356 return (uint16x4_t
) __builtin_aarch64_lshrv4hi ((int16x4_t
) __a
, __b
);
22359 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
22360 vshr_n_u32 (uint32x2_t __a
, const int __b
)
22362 return (uint32x2_t
) __builtin_aarch64_lshrv2si ((int32x2_t
) __a
, __b
);
22365 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
22366 vshr_n_u64 (uint64x1_t __a
, const int __b
)
22368 return (uint64x1_t
) {__builtin_aarch64_lshr_simddi_uus ( __a
[0], __b
)};
22371 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
22372 vshrq_n_s8 (int8x16_t __a
, const int __b
)
22374 return (int8x16_t
) __builtin_aarch64_ashrv16qi (__a
, __b
);
22377 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
22378 vshrq_n_s16 (int16x8_t __a
, const int __b
)
22380 return (int16x8_t
) __builtin_aarch64_ashrv8hi (__a
, __b
);
22383 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
22384 vshrq_n_s32 (int32x4_t __a
, const int __b
)
22386 return (int32x4_t
) __builtin_aarch64_ashrv4si (__a
, __b
);
22389 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
22390 vshrq_n_s64 (int64x2_t __a
, const int __b
)
22392 return (int64x2_t
) __builtin_aarch64_ashrv2di (__a
, __b
);
22395 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
22396 vshrq_n_u8 (uint8x16_t __a
, const int __b
)
22398 return (uint8x16_t
) __builtin_aarch64_lshrv16qi ((int8x16_t
) __a
, __b
);
22401 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22402 vshrq_n_u16 (uint16x8_t __a
, const int __b
)
22404 return (uint16x8_t
) __builtin_aarch64_lshrv8hi ((int16x8_t
) __a
, __b
);
22407 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22408 vshrq_n_u32 (uint32x4_t __a
, const int __b
)
22410 return (uint32x4_t
) __builtin_aarch64_lshrv4si ((int32x4_t
) __a
, __b
);
22413 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22414 vshrq_n_u64 (uint64x2_t __a
, const int __b
)
22416 return (uint64x2_t
) __builtin_aarch64_lshrv2di ((int64x2_t
) __a
, __b
);
22419 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
22420 vshrd_n_s64 (int64_t __a
, const int __b
)
22422 return __builtin_aarch64_ashr_simddi (__a
, __b
);
22425 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
22426 vshrd_n_u64 (uint64_t __a
, const int __b
)
22428 return __builtin_aarch64_lshr_simddi_uus (__a
, __b
);
22433 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
22434 vsli_n_s8 (int8x8_t __a
, int8x8_t __b
, const int __c
)
22436 return (int8x8_t
) __builtin_aarch64_ssli_nv8qi (__a
, __b
, __c
);
22439 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
22440 vsli_n_s16 (int16x4_t __a
, int16x4_t __b
, const int __c
)
22442 return (int16x4_t
) __builtin_aarch64_ssli_nv4hi (__a
, __b
, __c
);
22445 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
22446 vsli_n_s32 (int32x2_t __a
, int32x2_t __b
, const int __c
)
22448 return (int32x2_t
) __builtin_aarch64_ssli_nv2si (__a
, __b
, __c
);
22451 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
22452 vsli_n_s64 (int64x1_t __a
, int64x1_t __b
, const int __c
)
22454 return (int64x1_t
) {__builtin_aarch64_ssli_ndi (__a
[0], __b
[0], __c
)};
22457 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
22458 vsli_n_u8 (uint8x8_t __a
, uint8x8_t __b
, const int __c
)
22460 return __builtin_aarch64_usli_nv8qi_uuus (__a
, __b
, __c
);
22463 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
22464 vsli_n_u16 (uint16x4_t __a
, uint16x4_t __b
, const int __c
)
22466 return __builtin_aarch64_usli_nv4hi_uuus (__a
, __b
, __c
);
22469 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
22470 vsli_n_u32 (uint32x2_t __a
, uint32x2_t __b
, const int __c
)
22472 return __builtin_aarch64_usli_nv2si_uuus (__a
, __b
, __c
);
22475 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
22476 vsli_n_u64 (uint64x1_t __a
, uint64x1_t __b
, const int __c
)
22478 return (uint64x1_t
) {__builtin_aarch64_usli_ndi_uuus (__a
[0], __b
[0], __c
)};
22481 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
22482 vsliq_n_s8 (int8x16_t __a
, int8x16_t __b
, const int __c
)
22484 return (int8x16_t
) __builtin_aarch64_ssli_nv16qi (__a
, __b
, __c
);
22487 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
22488 vsliq_n_s16 (int16x8_t __a
, int16x8_t __b
, const int __c
)
22490 return (int16x8_t
) __builtin_aarch64_ssli_nv8hi (__a
, __b
, __c
);
22493 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
22494 vsliq_n_s32 (int32x4_t __a
, int32x4_t __b
, const int __c
)
22496 return (int32x4_t
) __builtin_aarch64_ssli_nv4si (__a
, __b
, __c
);
22499 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
22500 vsliq_n_s64 (int64x2_t __a
, int64x2_t __b
, const int __c
)
22502 return (int64x2_t
) __builtin_aarch64_ssli_nv2di (__a
, __b
, __c
);
22505 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
22506 vsliq_n_u8 (uint8x16_t __a
, uint8x16_t __b
, const int __c
)
22508 return __builtin_aarch64_usli_nv16qi_uuus (__a
, __b
, __c
);
22511 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22512 vsliq_n_u16 (uint16x8_t __a
, uint16x8_t __b
, const int __c
)
22514 return __builtin_aarch64_usli_nv8hi_uuus (__a
, __b
, __c
);
22517 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22518 vsliq_n_u32 (uint32x4_t __a
, uint32x4_t __b
, const int __c
)
22520 return __builtin_aarch64_usli_nv4si_uuus (__a
, __b
, __c
);
22523 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22524 vsliq_n_u64 (uint64x2_t __a
, uint64x2_t __b
, const int __c
)
22526 return __builtin_aarch64_usli_nv2di_uuus (__a
, __b
, __c
);
22529 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
22530 vslid_n_s64 (int64_t __a
, int64_t __b
, const int __c
)
22532 return __builtin_aarch64_ssli_ndi (__a
, __b
, __c
);
22535 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
22536 vslid_n_u64 (uint64_t __a
, uint64_t __b
, const int __c
)
22538 return __builtin_aarch64_usli_ndi_uuus (__a
, __b
, __c
);
22543 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
22544 vsqadd_u8 (uint8x8_t __a
, int8x8_t __b
)
22546 return __builtin_aarch64_usqaddv8qi_uus (__a
, __b
);
22549 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
22550 vsqadd_u16 (uint16x4_t __a
, int16x4_t __b
)
22552 return __builtin_aarch64_usqaddv4hi_uus (__a
, __b
);
22555 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
22556 vsqadd_u32 (uint32x2_t __a
, int32x2_t __b
)
22558 return __builtin_aarch64_usqaddv2si_uus (__a
, __b
);
22561 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
22562 vsqadd_u64 (uint64x1_t __a
, int64x1_t __b
)
22564 return (uint64x1_t
) {__builtin_aarch64_usqadddi_uus (__a
[0], __b
[0])};
22567 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
22568 vsqaddq_u8 (uint8x16_t __a
, int8x16_t __b
)
22570 return __builtin_aarch64_usqaddv16qi_uus (__a
, __b
);
22573 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22574 vsqaddq_u16 (uint16x8_t __a
, int16x8_t __b
)
22576 return __builtin_aarch64_usqaddv8hi_uus (__a
, __b
);
22579 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22580 vsqaddq_u32 (uint32x4_t __a
, int32x4_t __b
)
22582 return __builtin_aarch64_usqaddv4si_uus (__a
, __b
);
22585 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22586 vsqaddq_u64 (uint64x2_t __a
, int64x2_t __b
)
22588 return __builtin_aarch64_usqaddv2di_uus (__a
, __b
);
22591 __extension__
static __inline
uint8_t __attribute__ ((__always_inline__
))
22592 vsqaddb_u8 (uint8_t __a
, int8_t __b
)
22594 return __builtin_aarch64_usqaddqi_uus (__a
, __b
);
22597 __extension__
static __inline
uint16_t __attribute__ ((__always_inline__
))
22598 vsqaddh_u16 (uint16_t __a
, int16_t __b
)
22600 return __builtin_aarch64_usqaddhi_uus (__a
, __b
);
22603 __extension__
static __inline
uint32_t __attribute__ ((__always_inline__
))
22604 vsqadds_u32 (uint32_t __a
, int32_t __b
)
22606 return __builtin_aarch64_usqaddsi_uus (__a
, __b
);
22609 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
22610 vsqaddd_u64 (uint64_t __a
, int64_t __b
)
22612 return __builtin_aarch64_usqadddi_uus (__a
, __b
);
22616 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
22617 vsqrt_f32 (float32x2_t a
)
22619 return __builtin_aarch64_sqrtv2sf (a
);
22622 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
22623 vsqrtq_f32 (float32x4_t a
)
22625 return __builtin_aarch64_sqrtv4sf (a
);
22628 __extension__
static __inline float64x1_t
__attribute__ ((__always_inline__
))
22629 vsqrt_f64 (float64x1_t a
)
22631 return (float64x1_t
) { __builtin_aarch64_sqrtdf (a
[0]) };
22634 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
22635 vsqrtq_f64 (float64x2_t a
)
22637 return __builtin_aarch64_sqrtv2df (a
);
22642 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
22643 vsra_n_s8 (int8x8_t __a
, int8x8_t __b
, const int __c
)
22645 return (int8x8_t
) __builtin_aarch64_ssra_nv8qi (__a
, __b
, __c
);
22648 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
22649 vsra_n_s16 (int16x4_t __a
, int16x4_t __b
, const int __c
)
22651 return (int16x4_t
) __builtin_aarch64_ssra_nv4hi (__a
, __b
, __c
);
22654 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
22655 vsra_n_s32 (int32x2_t __a
, int32x2_t __b
, const int __c
)
22657 return (int32x2_t
) __builtin_aarch64_ssra_nv2si (__a
, __b
, __c
);
22660 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
22661 vsra_n_s64 (int64x1_t __a
, int64x1_t __b
, const int __c
)
22663 return (int64x1_t
) {__builtin_aarch64_ssra_ndi (__a
[0], __b
[0], __c
)};
22666 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
22667 vsra_n_u8 (uint8x8_t __a
, uint8x8_t __b
, const int __c
)
22669 return __builtin_aarch64_usra_nv8qi_uuus (__a
, __b
, __c
);
22672 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
22673 vsra_n_u16 (uint16x4_t __a
, uint16x4_t __b
, const int __c
)
22675 return __builtin_aarch64_usra_nv4hi_uuus (__a
, __b
, __c
);
22678 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
22679 vsra_n_u32 (uint32x2_t __a
, uint32x2_t __b
, const int __c
)
22681 return __builtin_aarch64_usra_nv2si_uuus (__a
, __b
, __c
);
22684 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
22685 vsra_n_u64 (uint64x1_t __a
, uint64x1_t __b
, const int __c
)
22687 return (uint64x1_t
) {__builtin_aarch64_usra_ndi_uuus (__a
[0], __b
[0], __c
)};
22690 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
22691 vsraq_n_s8 (int8x16_t __a
, int8x16_t __b
, const int __c
)
22693 return (int8x16_t
) __builtin_aarch64_ssra_nv16qi (__a
, __b
, __c
);
22696 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
22697 vsraq_n_s16 (int16x8_t __a
, int16x8_t __b
, const int __c
)
22699 return (int16x8_t
) __builtin_aarch64_ssra_nv8hi (__a
, __b
, __c
);
22702 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
22703 vsraq_n_s32 (int32x4_t __a
, int32x4_t __b
, const int __c
)
22705 return (int32x4_t
) __builtin_aarch64_ssra_nv4si (__a
, __b
, __c
);
22708 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
22709 vsraq_n_s64 (int64x2_t __a
, int64x2_t __b
, const int __c
)
22711 return (int64x2_t
) __builtin_aarch64_ssra_nv2di (__a
, __b
, __c
);
22714 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
22715 vsraq_n_u8 (uint8x16_t __a
, uint8x16_t __b
, const int __c
)
22717 return __builtin_aarch64_usra_nv16qi_uuus (__a
, __b
, __c
);
22720 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22721 vsraq_n_u16 (uint16x8_t __a
, uint16x8_t __b
, const int __c
)
22723 return __builtin_aarch64_usra_nv8hi_uuus (__a
, __b
, __c
);
22726 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22727 vsraq_n_u32 (uint32x4_t __a
, uint32x4_t __b
, const int __c
)
22729 return __builtin_aarch64_usra_nv4si_uuus (__a
, __b
, __c
);
22732 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22733 vsraq_n_u64 (uint64x2_t __a
, uint64x2_t __b
, const int __c
)
22735 return __builtin_aarch64_usra_nv2di_uuus (__a
, __b
, __c
);
22738 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
22739 vsrad_n_s64 (int64_t __a
, int64_t __b
, const int __c
)
22741 return __builtin_aarch64_ssra_ndi (__a
, __b
, __c
);
22744 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
22745 vsrad_n_u64 (uint64_t __a
, uint64_t __b
, const int __c
)
22747 return __builtin_aarch64_usra_ndi_uuus (__a
, __b
, __c
);
22752 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
22753 vsri_n_s8 (int8x8_t __a
, int8x8_t __b
, const int __c
)
22755 return (int8x8_t
) __builtin_aarch64_ssri_nv8qi (__a
, __b
, __c
);
22758 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
22759 vsri_n_s16 (int16x4_t __a
, int16x4_t __b
, const int __c
)
22761 return (int16x4_t
) __builtin_aarch64_ssri_nv4hi (__a
, __b
, __c
);
22764 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
22765 vsri_n_s32 (int32x2_t __a
, int32x2_t __b
, const int __c
)
22767 return (int32x2_t
) __builtin_aarch64_ssri_nv2si (__a
, __b
, __c
);
22770 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
22771 vsri_n_s64 (int64x1_t __a
, int64x1_t __b
, const int __c
)
22773 return (int64x1_t
) {__builtin_aarch64_ssri_ndi (__a
[0], __b
[0], __c
)};
22776 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
22777 vsri_n_u8 (uint8x8_t __a
, uint8x8_t __b
, const int __c
)
22779 return __builtin_aarch64_usri_nv8qi_uuus (__a
, __b
, __c
);
22782 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
22783 vsri_n_u16 (uint16x4_t __a
, uint16x4_t __b
, const int __c
)
22785 return __builtin_aarch64_usri_nv4hi_uuus (__a
, __b
, __c
);
22788 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
22789 vsri_n_u32 (uint32x2_t __a
, uint32x2_t __b
, const int __c
)
22791 return __builtin_aarch64_usri_nv2si_uuus (__a
, __b
, __c
);
22794 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
22795 vsri_n_u64 (uint64x1_t __a
, uint64x1_t __b
, const int __c
)
22797 return (uint64x1_t
) {__builtin_aarch64_usri_ndi_uuus (__a
[0], __b
[0], __c
)};
22800 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
22801 vsriq_n_s8 (int8x16_t __a
, int8x16_t __b
, const int __c
)
22803 return (int8x16_t
) __builtin_aarch64_ssri_nv16qi (__a
, __b
, __c
);
22806 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
22807 vsriq_n_s16 (int16x8_t __a
, int16x8_t __b
, const int __c
)
22809 return (int16x8_t
) __builtin_aarch64_ssri_nv8hi (__a
, __b
, __c
);
22812 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
22813 vsriq_n_s32 (int32x4_t __a
, int32x4_t __b
, const int __c
)
22815 return (int32x4_t
) __builtin_aarch64_ssri_nv4si (__a
, __b
, __c
);
22818 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
22819 vsriq_n_s64 (int64x2_t __a
, int64x2_t __b
, const int __c
)
22821 return (int64x2_t
) __builtin_aarch64_ssri_nv2di (__a
, __b
, __c
);
22824 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
22825 vsriq_n_u8 (uint8x16_t __a
, uint8x16_t __b
, const int __c
)
22827 return __builtin_aarch64_usri_nv16qi_uuus (__a
, __b
, __c
);
22830 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
22831 vsriq_n_u16 (uint16x8_t __a
, uint16x8_t __b
, const int __c
)
22833 return __builtin_aarch64_usri_nv8hi_uuus (__a
, __b
, __c
);
22836 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
22837 vsriq_n_u32 (uint32x4_t __a
, uint32x4_t __b
, const int __c
)
22839 return __builtin_aarch64_usri_nv4si_uuus (__a
, __b
, __c
);
22842 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
22843 vsriq_n_u64 (uint64x2_t __a
, uint64x2_t __b
, const int __c
)
22845 return __builtin_aarch64_usri_nv2di_uuus (__a
, __b
, __c
);
22848 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
22849 vsrid_n_s64 (int64_t __a
, int64_t __b
, const int __c
)
22851 return __builtin_aarch64_ssri_ndi (__a
, __b
, __c
);
22854 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
22855 vsrid_n_u64 (uint64_t __a
, uint64_t __b
, const int __c
)
22857 return __builtin_aarch64_usri_ndi_uuus (__a
, __b
, __c
);
22862 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22863 vst1_f16 (float16_t
*__a
, float16x4_t __b
)
22865 __builtin_aarch64_st1v4hf (__a
, __b
);
22868 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22869 vst1_f32 (float32_t
*a
, float32x2_t b
)
22871 __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf
*) a
, b
);
22874 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22875 vst1_f64 (float64_t
*a
, float64x1_t b
)
22880 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22881 vst1_p8 (poly8_t
*a
, poly8x8_t b
)
22883 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi
*) a
,
22887 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22888 vst1_p16 (poly16_t
*a
, poly16x4_t b
)
22890 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi
*) a
,
22894 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22895 vst1_s8 (int8_t *a
, int8x8_t b
)
22897 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi
*) a
, b
);
22900 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22901 vst1_s16 (int16_t *a
, int16x4_t b
)
22903 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi
*) a
, b
);
22906 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22907 vst1_s32 (int32_t *a
, int32x2_t b
)
22909 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si
*) a
, b
);
22912 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22913 vst1_s64 (int64_t *a
, int64x1_t b
)
22918 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22919 vst1_u8 (uint8_t *a
, uint8x8_t b
)
22921 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi
*) a
,
22925 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22926 vst1_u16 (uint16_t *a
, uint16x4_t b
)
22928 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi
*) a
,
22932 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22933 vst1_u32 (uint32_t *a
, uint32x2_t b
)
22935 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si
*) a
,
22939 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22940 vst1_u64 (uint64_t *a
, uint64x1_t b
)
22947 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22948 vst1q_f16 (float16_t
*__a
, float16x8_t __b
)
22950 __builtin_aarch64_st1v8hf (__a
, __b
);
22953 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22954 vst1q_f32 (float32_t
*a
, float32x4_t b
)
22956 __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf
*) a
, b
);
22959 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22960 vst1q_f64 (float64_t
*a
, float64x2_t b
)
22962 __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df
*) a
, b
);
22965 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22966 vst1q_p8 (poly8_t
*a
, poly8x16_t b
)
22968 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi
*) a
,
22972 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22973 vst1q_p16 (poly16_t
*a
, poly16x8_t b
)
22975 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi
*) a
,
22979 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22980 vst1q_s8 (int8_t *a
, int8x16_t b
)
22982 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi
*) a
, b
);
22985 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22986 vst1q_s16 (int16_t *a
, int16x8_t b
)
22988 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi
*) a
, b
);
22991 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22992 vst1q_s32 (int32_t *a
, int32x4_t b
)
22994 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si
*) a
, b
);
22997 __extension__
static __inline
void __attribute__ ((__always_inline__
))
22998 vst1q_s64 (int64_t *a
, int64x2_t b
)
23000 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di
*) a
, b
);
23003 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23004 vst1q_u8 (uint8_t *a
, uint8x16_t b
)
23006 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi
*) a
,
23010 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23011 vst1q_u16 (uint16_t *a
, uint16x8_t b
)
23013 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi
*) a
,
23017 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23018 vst1q_u32 (uint32_t *a
, uint32x4_t b
)
23020 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si
*) a
,
23024 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23025 vst1q_u64 (uint64_t *a
, uint64x2_t b
)
23027 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di
*) a
,
23033 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23034 vst1_lane_f16 (float16_t
*__a
, float16x4_t __b
, const int __lane
)
23036 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23039 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23040 vst1_lane_f32 (float32_t
*__a
, float32x2_t __b
, const int __lane
)
23042 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23045 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23046 vst1_lane_f64 (float64_t
*__a
, float64x1_t __b
, const int __lane
)
23048 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23051 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23052 vst1_lane_p8 (poly8_t
*__a
, poly8x8_t __b
, const int __lane
)
23054 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23057 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23058 vst1_lane_p16 (poly16_t
*__a
, poly16x4_t __b
, const int __lane
)
23060 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23063 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23064 vst1_lane_s8 (int8_t *__a
, int8x8_t __b
, const int __lane
)
23066 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23069 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23070 vst1_lane_s16 (int16_t *__a
, int16x4_t __b
, const int __lane
)
23072 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23075 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23076 vst1_lane_s32 (int32_t *__a
, int32x2_t __b
, const int __lane
)
23078 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23081 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23082 vst1_lane_s64 (int64_t *__a
, int64x1_t __b
, const int __lane
)
23084 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23087 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23088 vst1_lane_u8 (uint8_t *__a
, uint8x8_t __b
, const int __lane
)
23090 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23093 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23094 vst1_lane_u16 (uint16_t *__a
, uint16x4_t __b
, const int __lane
)
23096 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23099 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23100 vst1_lane_u32 (uint32_t *__a
, uint32x2_t __b
, const int __lane
)
23102 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23105 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23106 vst1_lane_u64 (uint64_t *__a
, uint64x1_t __b
, const int __lane
)
23108 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23113 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23114 vst1q_lane_f16 (float16_t
*__a
, float16x8_t __b
, const int __lane
)
23116 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23119 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23120 vst1q_lane_f32 (float32_t
*__a
, float32x4_t __b
, const int __lane
)
23122 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23125 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23126 vst1q_lane_f64 (float64_t
*__a
, float64x2_t __b
, const int __lane
)
23128 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23131 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23132 vst1q_lane_p8 (poly8_t
*__a
, poly8x16_t __b
, const int __lane
)
23134 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23137 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23138 vst1q_lane_p16 (poly16_t
*__a
, poly16x8_t __b
, const int __lane
)
23140 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23143 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23144 vst1q_lane_s8 (int8_t *__a
, int8x16_t __b
, const int __lane
)
23146 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23149 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23150 vst1q_lane_s16 (int16_t *__a
, int16x8_t __b
, const int __lane
)
23152 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23155 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23156 vst1q_lane_s32 (int32_t *__a
, int32x4_t __b
, const int __lane
)
23158 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23161 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23162 vst1q_lane_s64 (int64_t *__a
, int64x2_t __b
, const int __lane
)
23164 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23167 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23168 vst1q_lane_u8 (uint8_t *__a
, uint8x16_t __b
, const int __lane
)
23170 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23173 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23174 vst1q_lane_u16 (uint16_t *__a
, uint16x8_t __b
, const int __lane
)
23176 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23179 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23180 vst1q_lane_u32 (uint32_t *__a
, uint32x4_t __b
, const int __lane
)
23182 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23185 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23186 vst1q_lane_u64 (uint64_t *__a
, uint64x2_t __b
, const int __lane
)
23188 *__a
= __aarch64_vget_lane_any (__b
, __lane
);
23193 __extension__
static __inline
void
23194 vst2_s64 (int64_t * __a
, int64x1x2_t val
)
23196 __builtin_aarch64_simd_oi __o
;
23198 temp
.val
[0] = vcombine_s64 (val
.val
[0], vcreate_s64 (__AARCH64_INT64_C (0)));
23199 temp
.val
[1] = vcombine_s64 (val
.val
[1], vcreate_s64 (__AARCH64_INT64_C (0)));
23200 __o
= __builtin_aarch64_set_qregoiv2di (__o
, (int64x2_t
) temp
.val
[0], 0);
23201 __o
= __builtin_aarch64_set_qregoiv2di (__o
, (int64x2_t
) temp
.val
[1], 1);
23202 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23205 __extension__
static __inline
void
23206 vst2_u64 (uint64_t * __a
, uint64x1x2_t val
)
23208 __builtin_aarch64_simd_oi __o
;
23210 temp
.val
[0] = vcombine_u64 (val
.val
[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
23211 temp
.val
[1] = vcombine_u64 (val
.val
[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
23212 __o
= __builtin_aarch64_set_qregoiv2di (__o
, (int64x2_t
) temp
.val
[0], 0);
23213 __o
= __builtin_aarch64_set_qregoiv2di (__o
, (int64x2_t
) temp
.val
[1], 1);
23214 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23217 __extension__
static __inline
void
23218 vst2_f64 (float64_t
* __a
, float64x1x2_t val
)
23220 __builtin_aarch64_simd_oi __o
;
23221 float64x2x2_t temp
;
23222 temp
.val
[0] = vcombine_f64 (val
.val
[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
23223 temp
.val
[1] = vcombine_f64 (val
.val
[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
23224 __o
= __builtin_aarch64_set_qregoiv2df (__o
, (float64x2_t
) temp
.val
[0], 0);
23225 __o
= __builtin_aarch64_set_qregoiv2df (__o
, (float64x2_t
) temp
.val
[1], 1);
23226 __builtin_aarch64_st2df ((__builtin_aarch64_simd_df
*) __a
, __o
);
23229 __extension__
static __inline
void
23230 vst2_s8 (int8_t * __a
, int8x8x2_t val
)
23232 __builtin_aarch64_simd_oi __o
;
23234 temp
.val
[0] = vcombine_s8 (val
.val
[0], vcreate_s8 (__AARCH64_INT64_C (0)));
23235 temp
.val
[1] = vcombine_s8 (val
.val
[1], vcreate_s8 (__AARCH64_INT64_C (0)));
23236 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23237 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23238 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23241 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23242 vst2_p8 (poly8_t
* __a
, poly8x8x2_t val
)
23244 __builtin_aarch64_simd_oi __o
;
23246 temp
.val
[0] = vcombine_p8 (val
.val
[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
23247 temp
.val
[1] = vcombine_p8 (val
.val
[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
23248 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23249 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23250 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23253 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23254 vst2_s16 (int16_t * __a
, int16x4x2_t val
)
23256 __builtin_aarch64_simd_oi __o
;
23258 temp
.val
[0] = vcombine_s16 (val
.val
[0], vcreate_s16 (__AARCH64_INT64_C (0)));
23259 temp
.val
[1] = vcombine_s16 (val
.val
[1], vcreate_s16 (__AARCH64_INT64_C (0)));
23260 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23261 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23262 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23265 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23266 vst2_p16 (poly16_t
* __a
, poly16x4x2_t val
)
23268 __builtin_aarch64_simd_oi __o
;
23270 temp
.val
[0] = vcombine_p16 (val
.val
[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
23271 temp
.val
[1] = vcombine_p16 (val
.val
[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
23272 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23273 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23274 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23277 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23278 vst2_s32 (int32_t * __a
, int32x2x2_t val
)
23280 __builtin_aarch64_simd_oi __o
;
23282 temp
.val
[0] = vcombine_s32 (val
.val
[0], vcreate_s32 (__AARCH64_INT64_C (0)));
23283 temp
.val
[1] = vcombine_s32 (val
.val
[1], vcreate_s32 (__AARCH64_INT64_C (0)));
23284 __o
= __builtin_aarch64_set_qregoiv4si (__o
, (int32x4_t
) temp
.val
[0], 0);
23285 __o
= __builtin_aarch64_set_qregoiv4si (__o
, (int32x4_t
) temp
.val
[1], 1);
23286 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23289 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23290 vst2_u8 (uint8_t * __a
, uint8x8x2_t val
)
23292 __builtin_aarch64_simd_oi __o
;
23294 temp
.val
[0] = vcombine_u8 (val
.val
[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
23295 temp
.val
[1] = vcombine_u8 (val
.val
[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
23296 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23297 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23298 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23301 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23302 vst2_u16 (uint16_t * __a
, uint16x4x2_t val
)
23304 __builtin_aarch64_simd_oi __o
;
23306 temp
.val
[0] = vcombine_u16 (val
.val
[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
23307 temp
.val
[1] = vcombine_u16 (val
.val
[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
23308 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23309 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23310 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23313 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23314 vst2_u32 (uint32_t * __a
, uint32x2x2_t val
)
23316 __builtin_aarch64_simd_oi __o
;
23318 temp
.val
[0] = vcombine_u32 (val
.val
[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
23319 temp
.val
[1] = vcombine_u32 (val
.val
[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
23320 __o
= __builtin_aarch64_set_qregoiv4si (__o
, (int32x4_t
) temp
.val
[0], 0);
23321 __o
= __builtin_aarch64_set_qregoiv4si (__o
, (int32x4_t
) temp
.val
[1], 1);
23322 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23325 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23326 vst2_f16 (float16_t
* __a
, float16x4x2_t val
)
23328 __builtin_aarch64_simd_oi __o
;
23329 float16x8x2_t temp
;
23330 temp
.val
[0] = vcombine_f16 (val
.val
[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
23331 temp
.val
[1] = vcombine_f16 (val
.val
[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
23332 __o
= __builtin_aarch64_set_qregoiv8hf (__o
, temp
.val
[0], 0);
23333 __o
= __builtin_aarch64_set_qregoiv8hf (__o
, temp
.val
[1], 1);
23334 __builtin_aarch64_st2v4hf (__a
, __o
);
23337 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23338 vst2_f32 (float32_t
* __a
, float32x2x2_t val
)
23340 __builtin_aarch64_simd_oi __o
;
23341 float32x4x2_t temp
;
23342 temp
.val
[0] = vcombine_f32 (val
.val
[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
23343 temp
.val
[1] = vcombine_f32 (val
.val
[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
23344 __o
= __builtin_aarch64_set_qregoiv4sf (__o
, (float32x4_t
) temp
.val
[0], 0);
23345 __o
= __builtin_aarch64_set_qregoiv4sf (__o
, (float32x4_t
) temp
.val
[1], 1);
23346 __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf
*) __a
, __o
);
23349 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23350 vst2q_s8 (int8_t * __a
, int8x16x2_t val
)
23352 __builtin_aarch64_simd_oi __o
;
23353 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
23354 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
23355 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23358 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23359 vst2q_p8 (poly8_t
* __a
, poly8x16x2_t val
)
23361 __builtin_aarch64_simd_oi __o
;
23362 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
23363 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
23364 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23367 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23368 vst2q_s16 (int16_t * __a
, int16x8x2_t val
)
23370 __builtin_aarch64_simd_oi __o
;
23371 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
23372 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
23373 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23376 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23377 vst2q_p16 (poly16_t
* __a
, poly16x8x2_t val
)
23379 __builtin_aarch64_simd_oi __o
;
23380 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
23381 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
23382 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23385 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23386 vst2q_s32 (int32_t * __a
, int32x4x2_t val
)
23388 __builtin_aarch64_simd_oi __o
;
23389 __o
= __builtin_aarch64_set_qregoiv4si (__o
, (int32x4_t
) val
.val
[0], 0);
23390 __o
= __builtin_aarch64_set_qregoiv4si (__o
, (int32x4_t
) val
.val
[1], 1);
23391 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23394 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23395 vst2q_s64 (int64_t * __a
, int64x2x2_t val
)
23397 __builtin_aarch64_simd_oi __o
;
23398 __o
= __builtin_aarch64_set_qregoiv2di (__o
, (int64x2_t
) val
.val
[0], 0);
23399 __o
= __builtin_aarch64_set_qregoiv2di (__o
, (int64x2_t
) val
.val
[1], 1);
23400 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23403 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23404 vst2q_u8 (uint8_t * __a
, uint8x16x2_t val
)
23406 __builtin_aarch64_simd_oi __o
;
23407 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
23408 __o
= __builtin_aarch64_set_qregoiv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
23409 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23412 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23413 vst2q_u16 (uint16_t * __a
, uint16x8x2_t val
)
23415 __builtin_aarch64_simd_oi __o
;
23416 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
23417 __o
= __builtin_aarch64_set_qregoiv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
23418 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23421 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23422 vst2q_u32 (uint32_t * __a
, uint32x4x2_t val
)
23424 __builtin_aarch64_simd_oi __o
;
23425 __o
= __builtin_aarch64_set_qregoiv4si (__o
, (int32x4_t
) val
.val
[0], 0);
23426 __o
= __builtin_aarch64_set_qregoiv4si (__o
, (int32x4_t
) val
.val
[1], 1);
23427 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23430 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23431 vst2q_u64 (uint64_t * __a
, uint64x2x2_t val
)
23433 __builtin_aarch64_simd_oi __o
;
23434 __o
= __builtin_aarch64_set_qregoiv2di (__o
, (int64x2_t
) val
.val
[0], 0);
23435 __o
= __builtin_aarch64_set_qregoiv2di (__o
, (int64x2_t
) val
.val
[1], 1);
23436 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23439 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23440 vst2q_f16 (float16_t
* __a
, float16x8x2_t val
)
23442 __builtin_aarch64_simd_oi __o
;
23443 __o
= __builtin_aarch64_set_qregoiv8hf (__o
, val
.val
[0], 0);
23444 __o
= __builtin_aarch64_set_qregoiv8hf (__o
, val
.val
[1], 1);
23445 __builtin_aarch64_st2v8hf (__a
, __o
);
23448 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23449 vst2q_f32 (float32_t
* __a
, float32x4x2_t val
)
23451 __builtin_aarch64_simd_oi __o
;
23452 __o
= __builtin_aarch64_set_qregoiv4sf (__o
, (float32x4_t
) val
.val
[0], 0);
23453 __o
= __builtin_aarch64_set_qregoiv4sf (__o
, (float32x4_t
) val
.val
[1], 1);
23454 __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf
*) __a
, __o
);
23457 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23458 vst2q_f64 (float64_t
* __a
, float64x2x2_t val
)
23460 __builtin_aarch64_simd_oi __o
;
23461 __o
= __builtin_aarch64_set_qregoiv2df (__o
, (float64x2_t
) val
.val
[0], 0);
23462 __o
= __builtin_aarch64_set_qregoiv2df (__o
, (float64x2_t
) val
.val
[1], 1);
23463 __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df
*) __a
, __o
);
23466 __extension__
static __inline
void
23467 vst3_s64 (int64_t * __a
, int64x1x3_t val
)
23469 __builtin_aarch64_simd_ci __o
;
23471 temp
.val
[0] = vcombine_s64 (val
.val
[0], vcreate_s64 (__AARCH64_INT64_C (0)));
23472 temp
.val
[1] = vcombine_s64 (val
.val
[1], vcreate_s64 (__AARCH64_INT64_C (0)));
23473 temp
.val
[2] = vcombine_s64 (val
.val
[2], vcreate_s64 (__AARCH64_INT64_C (0)));
23474 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) temp
.val
[0], 0);
23475 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) temp
.val
[1], 1);
23476 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) temp
.val
[2], 2);
23477 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23480 __extension__
static __inline
void
23481 vst3_u64 (uint64_t * __a
, uint64x1x3_t val
)
23483 __builtin_aarch64_simd_ci __o
;
23485 temp
.val
[0] = vcombine_u64 (val
.val
[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
23486 temp
.val
[1] = vcombine_u64 (val
.val
[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
23487 temp
.val
[2] = vcombine_u64 (val
.val
[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
23488 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) temp
.val
[0], 0);
23489 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) temp
.val
[1], 1);
23490 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) temp
.val
[2], 2);
23491 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23494 __extension__
static __inline
void
23495 vst3_f64 (float64_t
* __a
, float64x1x3_t val
)
23497 __builtin_aarch64_simd_ci __o
;
23498 float64x2x3_t temp
;
23499 temp
.val
[0] = vcombine_f64 (val
.val
[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
23500 temp
.val
[1] = vcombine_f64 (val
.val
[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
23501 temp
.val
[2] = vcombine_f64 (val
.val
[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
23502 __o
= __builtin_aarch64_set_qregciv2df (__o
, (float64x2_t
) temp
.val
[0], 0);
23503 __o
= __builtin_aarch64_set_qregciv2df (__o
, (float64x2_t
) temp
.val
[1], 1);
23504 __o
= __builtin_aarch64_set_qregciv2df (__o
, (float64x2_t
) temp
.val
[2], 2);
23505 __builtin_aarch64_st3df ((__builtin_aarch64_simd_df
*) __a
, __o
);
23508 __extension__
static __inline
void
23509 vst3_s8 (int8_t * __a
, int8x8x3_t val
)
23511 __builtin_aarch64_simd_ci __o
;
23513 temp
.val
[0] = vcombine_s8 (val
.val
[0], vcreate_s8 (__AARCH64_INT64_C (0)));
23514 temp
.val
[1] = vcombine_s8 (val
.val
[1], vcreate_s8 (__AARCH64_INT64_C (0)));
23515 temp
.val
[2] = vcombine_s8 (val
.val
[2], vcreate_s8 (__AARCH64_INT64_C (0)));
23516 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23517 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23518 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[2], 2);
23519 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23522 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23523 vst3_p8 (poly8_t
* __a
, poly8x8x3_t val
)
23525 __builtin_aarch64_simd_ci __o
;
23527 temp
.val
[0] = vcombine_p8 (val
.val
[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
23528 temp
.val
[1] = vcombine_p8 (val
.val
[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
23529 temp
.val
[2] = vcombine_p8 (val
.val
[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
23530 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23531 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23532 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[2], 2);
23533 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23536 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23537 vst3_s16 (int16_t * __a
, int16x4x3_t val
)
23539 __builtin_aarch64_simd_ci __o
;
23541 temp
.val
[0] = vcombine_s16 (val
.val
[0], vcreate_s16 (__AARCH64_INT64_C (0)));
23542 temp
.val
[1] = vcombine_s16 (val
.val
[1], vcreate_s16 (__AARCH64_INT64_C (0)));
23543 temp
.val
[2] = vcombine_s16 (val
.val
[2], vcreate_s16 (__AARCH64_INT64_C (0)));
23544 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23545 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23546 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[2], 2);
23547 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23550 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23551 vst3_p16 (poly16_t
* __a
, poly16x4x3_t val
)
23553 __builtin_aarch64_simd_ci __o
;
23555 temp
.val
[0] = vcombine_p16 (val
.val
[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
23556 temp
.val
[1] = vcombine_p16 (val
.val
[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
23557 temp
.val
[2] = vcombine_p16 (val
.val
[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
23558 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23559 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23560 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[2], 2);
23561 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23564 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23565 vst3_s32 (int32_t * __a
, int32x2x3_t val
)
23567 __builtin_aarch64_simd_ci __o
;
23569 temp
.val
[0] = vcombine_s32 (val
.val
[0], vcreate_s32 (__AARCH64_INT64_C (0)));
23570 temp
.val
[1] = vcombine_s32 (val
.val
[1], vcreate_s32 (__AARCH64_INT64_C (0)));
23571 temp
.val
[2] = vcombine_s32 (val
.val
[2], vcreate_s32 (__AARCH64_INT64_C (0)));
23572 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) temp
.val
[0], 0);
23573 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) temp
.val
[1], 1);
23574 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) temp
.val
[2], 2);
23575 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23578 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23579 vst3_u8 (uint8_t * __a
, uint8x8x3_t val
)
23581 __builtin_aarch64_simd_ci __o
;
23583 temp
.val
[0] = vcombine_u8 (val
.val
[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
23584 temp
.val
[1] = vcombine_u8 (val
.val
[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
23585 temp
.val
[2] = vcombine_u8 (val
.val
[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
23586 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23587 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23588 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) temp
.val
[2], 2);
23589 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23592 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23593 vst3_u16 (uint16_t * __a
, uint16x4x3_t val
)
23595 __builtin_aarch64_simd_ci __o
;
23597 temp
.val
[0] = vcombine_u16 (val
.val
[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
23598 temp
.val
[1] = vcombine_u16 (val
.val
[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
23599 temp
.val
[2] = vcombine_u16 (val
.val
[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
23600 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23601 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23602 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) temp
.val
[2], 2);
23603 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23606 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23607 vst3_u32 (uint32_t * __a
, uint32x2x3_t val
)
23609 __builtin_aarch64_simd_ci __o
;
23611 temp
.val
[0] = vcombine_u32 (val
.val
[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
23612 temp
.val
[1] = vcombine_u32 (val
.val
[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
23613 temp
.val
[2] = vcombine_u32 (val
.val
[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
23614 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) temp
.val
[0], 0);
23615 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) temp
.val
[1], 1);
23616 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) temp
.val
[2], 2);
23617 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23620 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23621 vst3_f16 (float16_t
* __a
, float16x4x3_t val
)
23623 __builtin_aarch64_simd_ci __o
;
23624 float16x8x3_t temp
;
23625 temp
.val
[0] = vcombine_f16 (val
.val
[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
23626 temp
.val
[1] = vcombine_f16 (val
.val
[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
23627 temp
.val
[2] = vcombine_f16 (val
.val
[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
23628 __o
= __builtin_aarch64_set_qregciv8hf (__o
, (float16x8_t
) temp
.val
[0], 0);
23629 __o
= __builtin_aarch64_set_qregciv8hf (__o
, (float16x8_t
) temp
.val
[1], 1);
23630 __o
= __builtin_aarch64_set_qregciv8hf (__o
, (float16x8_t
) temp
.val
[2], 2);
23631 __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf
*) __a
, __o
);
23634 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23635 vst3_f32 (float32_t
* __a
, float32x2x3_t val
)
23637 __builtin_aarch64_simd_ci __o
;
23638 float32x4x3_t temp
;
23639 temp
.val
[0] = vcombine_f32 (val
.val
[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
23640 temp
.val
[1] = vcombine_f32 (val
.val
[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
23641 temp
.val
[2] = vcombine_f32 (val
.val
[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
23642 __o
= __builtin_aarch64_set_qregciv4sf (__o
, (float32x4_t
) temp
.val
[0], 0);
23643 __o
= __builtin_aarch64_set_qregciv4sf (__o
, (float32x4_t
) temp
.val
[1], 1);
23644 __o
= __builtin_aarch64_set_qregciv4sf (__o
, (float32x4_t
) temp
.val
[2], 2);
23645 __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf
*) __a
, __o
);
23648 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23649 vst3q_s8 (int8_t * __a
, int8x16x3_t val
)
23651 __builtin_aarch64_simd_ci __o
;
23652 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
23653 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
23654 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[2], 2);
23655 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23658 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23659 vst3q_p8 (poly8_t
* __a
, poly8x16x3_t val
)
23661 __builtin_aarch64_simd_ci __o
;
23662 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
23663 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
23664 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[2], 2);
23665 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23668 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23669 vst3q_s16 (int16_t * __a
, int16x8x3_t val
)
23671 __builtin_aarch64_simd_ci __o
;
23672 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
23673 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
23674 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[2], 2);
23675 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23678 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23679 vst3q_p16 (poly16_t
* __a
, poly16x8x3_t val
)
23681 __builtin_aarch64_simd_ci __o
;
23682 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
23683 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
23684 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[2], 2);
23685 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23688 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23689 vst3q_s32 (int32_t * __a
, int32x4x3_t val
)
23691 __builtin_aarch64_simd_ci __o
;
23692 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) val
.val
[0], 0);
23693 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) val
.val
[1], 1);
23694 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) val
.val
[2], 2);
23695 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23698 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23699 vst3q_s64 (int64_t * __a
, int64x2x3_t val
)
23701 __builtin_aarch64_simd_ci __o
;
23702 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) val
.val
[0], 0);
23703 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) val
.val
[1], 1);
23704 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) val
.val
[2], 2);
23705 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23708 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23709 vst3q_u8 (uint8_t * __a
, uint8x16x3_t val
)
23711 __builtin_aarch64_simd_ci __o
;
23712 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
23713 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
23714 __o
= __builtin_aarch64_set_qregciv16qi (__o
, (int8x16_t
) val
.val
[2], 2);
23715 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23718 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23719 vst3q_u16 (uint16_t * __a
, uint16x8x3_t val
)
23721 __builtin_aarch64_simd_ci __o
;
23722 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
23723 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
23724 __o
= __builtin_aarch64_set_qregciv8hi (__o
, (int16x8_t
) val
.val
[2], 2);
23725 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23728 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23729 vst3q_u32 (uint32_t * __a
, uint32x4x3_t val
)
23731 __builtin_aarch64_simd_ci __o
;
23732 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) val
.val
[0], 0);
23733 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) val
.val
[1], 1);
23734 __o
= __builtin_aarch64_set_qregciv4si (__o
, (int32x4_t
) val
.val
[2], 2);
23735 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23738 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23739 vst3q_u64 (uint64_t * __a
, uint64x2x3_t val
)
23741 __builtin_aarch64_simd_ci __o
;
23742 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) val
.val
[0], 0);
23743 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) val
.val
[1], 1);
23744 __o
= __builtin_aarch64_set_qregciv2di (__o
, (int64x2_t
) val
.val
[2], 2);
23745 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23748 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23749 vst3q_f16 (float16_t
* __a
, float16x8x3_t val
)
23751 __builtin_aarch64_simd_ci __o
;
23752 __o
= __builtin_aarch64_set_qregciv8hf (__o
, (float16x8_t
) val
.val
[0], 0);
23753 __o
= __builtin_aarch64_set_qregciv8hf (__o
, (float16x8_t
) val
.val
[1], 1);
23754 __o
= __builtin_aarch64_set_qregciv8hf (__o
, (float16x8_t
) val
.val
[2], 2);
23755 __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf
*) __a
, __o
);
23758 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23759 vst3q_f32 (float32_t
* __a
, float32x4x3_t val
)
23761 __builtin_aarch64_simd_ci __o
;
23762 __o
= __builtin_aarch64_set_qregciv4sf (__o
, (float32x4_t
) val
.val
[0], 0);
23763 __o
= __builtin_aarch64_set_qregciv4sf (__o
, (float32x4_t
) val
.val
[1], 1);
23764 __o
= __builtin_aarch64_set_qregciv4sf (__o
, (float32x4_t
) val
.val
[2], 2);
23765 __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf
*) __a
, __o
);
23768 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23769 vst3q_f64 (float64_t
* __a
, float64x2x3_t val
)
23771 __builtin_aarch64_simd_ci __o
;
23772 __o
= __builtin_aarch64_set_qregciv2df (__o
, (float64x2_t
) val
.val
[0], 0);
23773 __o
= __builtin_aarch64_set_qregciv2df (__o
, (float64x2_t
) val
.val
[1], 1);
23774 __o
= __builtin_aarch64_set_qregciv2df (__o
, (float64x2_t
) val
.val
[2], 2);
23775 __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df
*) __a
, __o
);
23778 __extension__
static __inline
void
23779 vst4_s64 (int64_t * __a
, int64x1x4_t val
)
23781 __builtin_aarch64_simd_xi __o
;
23783 temp
.val
[0] = vcombine_s64 (val
.val
[0], vcreate_s64 (__AARCH64_INT64_C (0)));
23784 temp
.val
[1] = vcombine_s64 (val
.val
[1], vcreate_s64 (__AARCH64_INT64_C (0)));
23785 temp
.val
[2] = vcombine_s64 (val
.val
[2], vcreate_s64 (__AARCH64_INT64_C (0)));
23786 temp
.val
[3] = vcombine_s64 (val
.val
[3], vcreate_s64 (__AARCH64_INT64_C (0)));
23787 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) temp
.val
[0], 0);
23788 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) temp
.val
[1], 1);
23789 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) temp
.val
[2], 2);
23790 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) temp
.val
[3], 3);
23791 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23794 __extension__
static __inline
void
23795 vst4_u64 (uint64_t * __a
, uint64x1x4_t val
)
23797 __builtin_aarch64_simd_xi __o
;
23799 temp
.val
[0] = vcombine_u64 (val
.val
[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
23800 temp
.val
[1] = vcombine_u64 (val
.val
[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
23801 temp
.val
[2] = vcombine_u64 (val
.val
[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
23802 temp
.val
[3] = vcombine_u64 (val
.val
[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
23803 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) temp
.val
[0], 0);
23804 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) temp
.val
[1], 1);
23805 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) temp
.val
[2], 2);
23806 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) temp
.val
[3], 3);
23807 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di
*) __a
, __o
);
23810 __extension__
static __inline
void
23811 vst4_f64 (float64_t
* __a
, float64x1x4_t val
)
23813 __builtin_aarch64_simd_xi __o
;
23814 float64x2x4_t temp
;
23815 temp
.val
[0] = vcombine_f64 (val
.val
[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
23816 temp
.val
[1] = vcombine_f64 (val
.val
[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
23817 temp
.val
[2] = vcombine_f64 (val
.val
[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
23818 temp
.val
[3] = vcombine_f64 (val
.val
[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
23819 __o
= __builtin_aarch64_set_qregxiv2df (__o
, (float64x2_t
) temp
.val
[0], 0);
23820 __o
= __builtin_aarch64_set_qregxiv2df (__o
, (float64x2_t
) temp
.val
[1], 1);
23821 __o
= __builtin_aarch64_set_qregxiv2df (__o
, (float64x2_t
) temp
.val
[2], 2);
23822 __o
= __builtin_aarch64_set_qregxiv2df (__o
, (float64x2_t
) temp
.val
[3], 3);
23823 __builtin_aarch64_st4df ((__builtin_aarch64_simd_df
*) __a
, __o
);
23826 __extension__
static __inline
void
23827 vst4_s8 (int8_t * __a
, int8x8x4_t val
)
23829 __builtin_aarch64_simd_xi __o
;
23831 temp
.val
[0] = vcombine_s8 (val
.val
[0], vcreate_s8 (__AARCH64_INT64_C (0)));
23832 temp
.val
[1] = vcombine_s8 (val
.val
[1], vcreate_s8 (__AARCH64_INT64_C (0)));
23833 temp
.val
[2] = vcombine_s8 (val
.val
[2], vcreate_s8 (__AARCH64_INT64_C (0)));
23834 temp
.val
[3] = vcombine_s8 (val
.val
[3], vcreate_s8 (__AARCH64_INT64_C (0)));
23835 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23836 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23837 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[2], 2);
23838 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[3], 3);
23839 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23842 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23843 vst4_p8 (poly8_t
* __a
, poly8x8x4_t val
)
23845 __builtin_aarch64_simd_xi __o
;
23847 temp
.val
[0] = vcombine_p8 (val
.val
[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
23848 temp
.val
[1] = vcombine_p8 (val
.val
[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
23849 temp
.val
[2] = vcombine_p8 (val
.val
[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
23850 temp
.val
[3] = vcombine_p8 (val
.val
[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
23851 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23852 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23853 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[2], 2);
23854 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[3], 3);
23855 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23858 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23859 vst4_s16 (int16_t * __a
, int16x4x4_t val
)
23861 __builtin_aarch64_simd_xi __o
;
23863 temp
.val
[0] = vcombine_s16 (val
.val
[0], vcreate_s16 (__AARCH64_INT64_C (0)));
23864 temp
.val
[1] = vcombine_s16 (val
.val
[1], vcreate_s16 (__AARCH64_INT64_C (0)));
23865 temp
.val
[2] = vcombine_s16 (val
.val
[2], vcreate_s16 (__AARCH64_INT64_C (0)));
23866 temp
.val
[3] = vcombine_s16 (val
.val
[3], vcreate_s16 (__AARCH64_INT64_C (0)));
23867 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23868 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23869 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[2], 2);
23870 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[3], 3);
23871 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23874 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23875 vst4_p16 (poly16_t
* __a
, poly16x4x4_t val
)
23877 __builtin_aarch64_simd_xi __o
;
23879 temp
.val
[0] = vcombine_p16 (val
.val
[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
23880 temp
.val
[1] = vcombine_p16 (val
.val
[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
23881 temp
.val
[2] = vcombine_p16 (val
.val
[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
23882 temp
.val
[3] = vcombine_p16 (val
.val
[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
23883 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23884 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23885 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[2], 2);
23886 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[3], 3);
23887 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23890 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23891 vst4_s32 (int32_t * __a
, int32x2x4_t val
)
23893 __builtin_aarch64_simd_xi __o
;
23895 temp
.val
[0] = vcombine_s32 (val
.val
[0], vcreate_s32 (__AARCH64_INT64_C (0)));
23896 temp
.val
[1] = vcombine_s32 (val
.val
[1], vcreate_s32 (__AARCH64_INT64_C (0)));
23897 temp
.val
[2] = vcombine_s32 (val
.val
[2], vcreate_s32 (__AARCH64_INT64_C (0)));
23898 temp
.val
[3] = vcombine_s32 (val
.val
[3], vcreate_s32 (__AARCH64_INT64_C (0)));
23899 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) temp
.val
[0], 0);
23900 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) temp
.val
[1], 1);
23901 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) temp
.val
[2], 2);
23902 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) temp
.val
[3], 3);
23903 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23906 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23907 vst4_u8 (uint8_t * __a
, uint8x8x4_t val
)
23909 __builtin_aarch64_simd_xi __o
;
23911 temp
.val
[0] = vcombine_u8 (val
.val
[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
23912 temp
.val
[1] = vcombine_u8 (val
.val
[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
23913 temp
.val
[2] = vcombine_u8 (val
.val
[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
23914 temp
.val
[3] = vcombine_u8 (val
.val
[3], vcreate_u8 (__AARCH64_UINT64_C (0)));
23915 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[0], 0);
23916 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[1], 1);
23917 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[2], 2);
23918 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) temp
.val
[3], 3);
23919 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23922 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23923 vst4_u16 (uint16_t * __a
, uint16x4x4_t val
)
23925 __builtin_aarch64_simd_xi __o
;
23927 temp
.val
[0] = vcombine_u16 (val
.val
[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
23928 temp
.val
[1] = vcombine_u16 (val
.val
[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
23929 temp
.val
[2] = vcombine_u16 (val
.val
[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
23930 temp
.val
[3] = vcombine_u16 (val
.val
[3], vcreate_u16 (__AARCH64_UINT64_C (0)));
23931 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[0], 0);
23932 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[1], 1);
23933 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[2], 2);
23934 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) temp
.val
[3], 3);
23935 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
23938 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23939 vst4_u32 (uint32_t * __a
, uint32x2x4_t val
)
23941 __builtin_aarch64_simd_xi __o
;
23943 temp
.val
[0] = vcombine_u32 (val
.val
[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
23944 temp
.val
[1] = vcombine_u32 (val
.val
[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
23945 temp
.val
[2] = vcombine_u32 (val
.val
[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
23946 temp
.val
[3] = vcombine_u32 (val
.val
[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
23947 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) temp
.val
[0], 0);
23948 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) temp
.val
[1], 1);
23949 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) temp
.val
[2], 2);
23950 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) temp
.val
[3], 3);
23951 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si
*) __a
, __o
);
23954 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23955 vst4_f16 (float16_t
* __a
, float16x4x4_t val
)
23957 __builtin_aarch64_simd_xi __o
;
23958 float16x8x4_t temp
;
23959 temp
.val
[0] = vcombine_f16 (val
.val
[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
23960 temp
.val
[1] = vcombine_f16 (val
.val
[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
23961 temp
.val
[2] = vcombine_f16 (val
.val
[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
23962 temp
.val
[3] = vcombine_f16 (val
.val
[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
23963 __o
= __builtin_aarch64_set_qregxiv8hf (__o
, (float16x8_t
) temp
.val
[0], 0);
23964 __o
= __builtin_aarch64_set_qregxiv8hf (__o
, (float16x8_t
) temp
.val
[1], 1);
23965 __o
= __builtin_aarch64_set_qregxiv8hf (__o
, (float16x8_t
) temp
.val
[2], 2);
23966 __o
= __builtin_aarch64_set_qregxiv8hf (__o
, (float16x8_t
) temp
.val
[3], 3);
23967 __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf
*) __a
, __o
);
23970 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23971 vst4_f32 (float32_t
* __a
, float32x2x4_t val
)
23973 __builtin_aarch64_simd_xi __o
;
23974 float32x4x4_t temp
;
23975 temp
.val
[0] = vcombine_f32 (val
.val
[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
23976 temp
.val
[1] = vcombine_f32 (val
.val
[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
23977 temp
.val
[2] = vcombine_f32 (val
.val
[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
23978 temp
.val
[3] = vcombine_f32 (val
.val
[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
23979 __o
= __builtin_aarch64_set_qregxiv4sf (__o
, (float32x4_t
) temp
.val
[0], 0);
23980 __o
= __builtin_aarch64_set_qregxiv4sf (__o
, (float32x4_t
) temp
.val
[1], 1);
23981 __o
= __builtin_aarch64_set_qregxiv4sf (__o
, (float32x4_t
) temp
.val
[2], 2);
23982 __o
= __builtin_aarch64_set_qregxiv4sf (__o
, (float32x4_t
) temp
.val
[3], 3);
23983 __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf
*) __a
, __o
);
23986 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23987 vst4q_s8 (int8_t * __a
, int8x16x4_t val
)
23989 __builtin_aarch64_simd_xi __o
;
23990 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
23991 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
23992 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[2], 2);
23993 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[3], 3);
23994 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
23997 __extension__
static __inline
void __attribute__ ((__always_inline__
))
23998 vst4q_p8 (poly8_t
* __a
, poly8x16x4_t val
)
24000 __builtin_aarch64_simd_xi __o
;
24001 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
24002 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
24003 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[2], 2);
24004 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[3], 3);
24005 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
24008 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24009 vst4q_s16 (int16_t * __a
, int16x8x4_t val
)
24011 __builtin_aarch64_simd_xi __o
;
24012 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
24013 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
24014 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[2], 2);
24015 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[3], 3);
24016 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
24019 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24020 vst4q_p16 (poly16_t
* __a
, poly16x8x4_t val
)
24022 __builtin_aarch64_simd_xi __o
;
24023 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
24024 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
24025 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[2], 2);
24026 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[3], 3);
24027 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
24030 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24031 vst4q_s32 (int32_t * __a
, int32x4x4_t val
)
24033 __builtin_aarch64_simd_xi __o
;
24034 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) val
.val
[0], 0);
24035 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) val
.val
[1], 1);
24036 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) val
.val
[2], 2);
24037 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) val
.val
[3], 3);
24038 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si
*) __a
, __o
);
24041 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24042 vst4q_s64 (int64_t * __a
, int64x2x4_t val
)
24044 __builtin_aarch64_simd_xi __o
;
24045 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) val
.val
[0], 0);
24046 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) val
.val
[1], 1);
24047 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) val
.val
[2], 2);
24048 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) val
.val
[3], 3);
24049 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di
*) __a
, __o
);
24052 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24053 vst4q_u8 (uint8_t * __a
, uint8x16x4_t val
)
24055 __builtin_aarch64_simd_xi __o
;
24056 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[0], 0);
24057 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[1], 1);
24058 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[2], 2);
24059 __o
= __builtin_aarch64_set_qregxiv16qi (__o
, (int8x16_t
) val
.val
[3], 3);
24060 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi
*) __a
, __o
);
24063 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24064 vst4q_u16 (uint16_t * __a
, uint16x8x4_t val
)
24066 __builtin_aarch64_simd_xi __o
;
24067 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[0], 0);
24068 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[1], 1);
24069 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[2], 2);
24070 __o
= __builtin_aarch64_set_qregxiv8hi (__o
, (int16x8_t
) val
.val
[3], 3);
24071 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi
*) __a
, __o
);
24074 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24075 vst4q_u32 (uint32_t * __a
, uint32x4x4_t val
)
24077 __builtin_aarch64_simd_xi __o
;
24078 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) val
.val
[0], 0);
24079 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) val
.val
[1], 1);
24080 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) val
.val
[2], 2);
24081 __o
= __builtin_aarch64_set_qregxiv4si (__o
, (int32x4_t
) val
.val
[3], 3);
24082 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si
*) __a
, __o
);
24085 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24086 vst4q_u64 (uint64_t * __a
, uint64x2x4_t val
)
24088 __builtin_aarch64_simd_xi __o
;
24089 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) val
.val
[0], 0);
24090 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) val
.val
[1], 1);
24091 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) val
.val
[2], 2);
24092 __o
= __builtin_aarch64_set_qregxiv2di (__o
, (int64x2_t
) val
.val
[3], 3);
24093 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di
*) __a
, __o
);
24096 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24097 vst4q_f16 (float16_t
* __a
, float16x8x4_t val
)
24099 __builtin_aarch64_simd_xi __o
;
24100 __o
= __builtin_aarch64_set_qregxiv8hf (__o
, (float16x8_t
) val
.val
[0], 0);
24101 __o
= __builtin_aarch64_set_qregxiv8hf (__o
, (float16x8_t
) val
.val
[1], 1);
24102 __o
= __builtin_aarch64_set_qregxiv8hf (__o
, (float16x8_t
) val
.val
[2], 2);
24103 __o
= __builtin_aarch64_set_qregxiv8hf (__o
, (float16x8_t
) val
.val
[3], 3);
24104 __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf
*) __a
, __o
);
24107 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24108 vst4q_f32 (float32_t
* __a
, float32x4x4_t val
)
24110 __builtin_aarch64_simd_xi __o
;
24111 __o
= __builtin_aarch64_set_qregxiv4sf (__o
, (float32x4_t
) val
.val
[0], 0);
24112 __o
= __builtin_aarch64_set_qregxiv4sf (__o
, (float32x4_t
) val
.val
[1], 1);
24113 __o
= __builtin_aarch64_set_qregxiv4sf (__o
, (float32x4_t
) val
.val
[2], 2);
24114 __o
= __builtin_aarch64_set_qregxiv4sf (__o
, (float32x4_t
) val
.val
[3], 3);
24115 __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf
*) __a
, __o
);
24118 __extension__
static __inline
void __attribute__ ((__always_inline__
))
24119 vst4q_f64 (float64_t
* __a
, float64x2x4_t val
)
24121 __builtin_aarch64_simd_xi __o
;
24122 __o
= __builtin_aarch64_set_qregxiv2df (__o
, (float64x2_t
) val
.val
[0], 0);
24123 __o
= __builtin_aarch64_set_qregxiv2df (__o
, (float64x2_t
) val
.val
[1], 1);
24124 __o
= __builtin_aarch64_set_qregxiv2df (__o
, (float64x2_t
) val
.val
[2], 2);
24125 __o
= __builtin_aarch64_set_qregxiv2df (__o
, (float64x2_t
) val
.val
[3], 3);
24126 __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df
*) __a
, __o
);
24131 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
24132 vsubd_s64 (int64_t __a
, int64_t __b
)
24137 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
24138 vsubd_u64 (uint64_t __a
, uint64_t __b
)
24145 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
24146 vtbx1_s8 (int8x8_t __r
, int8x8_t __tab
, int8x8_t __idx
)
24148 uint8x8_t __mask
= vclt_u8 (vreinterpret_u8_s8 (__idx
),
24150 int8x8_t __tbl
= vtbl1_s8 (__tab
, __idx
);
24152 return vbsl_s8 (__mask
, __tbl
, __r
);
24155 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
24156 vtbx1_u8 (uint8x8_t __r
, uint8x8_t __tab
, uint8x8_t __idx
)
24158 uint8x8_t __mask
= vclt_u8 (__idx
, vmov_n_u8 (8));
24159 uint8x8_t __tbl
= vtbl1_u8 (__tab
, __idx
);
24161 return vbsl_u8 (__mask
, __tbl
, __r
);
24164 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
24165 vtbx1_p8 (poly8x8_t __r
, poly8x8_t __tab
, uint8x8_t __idx
)
24167 uint8x8_t __mask
= vclt_u8 (__idx
, vmov_n_u8 (8));
24168 poly8x8_t __tbl
= vtbl1_p8 (__tab
, __idx
);
24170 return vbsl_p8 (__mask
, __tbl
, __r
);
24175 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
24176 vtbx3_s8 (int8x8_t __r
, int8x8x3_t __tab
, int8x8_t __idx
)
24178 uint8x8_t __mask
= vclt_u8 (vreinterpret_u8_s8 (__idx
),
24180 int8x8_t __tbl
= vtbl3_s8 (__tab
, __idx
);
24182 return vbsl_s8 (__mask
, __tbl
, __r
);
24185 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
24186 vtbx3_u8 (uint8x8_t __r
, uint8x8x3_t __tab
, uint8x8_t __idx
)
24188 uint8x8_t __mask
= vclt_u8 (__idx
, vmov_n_u8 (24));
24189 uint8x8_t __tbl
= vtbl3_u8 (__tab
, __idx
);
24191 return vbsl_u8 (__mask
, __tbl
, __r
);
24194 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
24195 vtbx3_p8 (poly8x8_t __r
, poly8x8x3_t __tab
, uint8x8_t __idx
)
24197 uint8x8_t __mask
= vclt_u8 (__idx
, vmov_n_u8 (24));
24198 poly8x8_t __tbl
= vtbl3_p8 (__tab
, __idx
);
24200 return vbsl_p8 (__mask
, __tbl
, __r
);
24205 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
24206 vtbx4_s8 (int8x8_t __r
, int8x8x4_t __tab
, int8x8_t __idx
)
24210 __builtin_aarch64_simd_oi __o
;
24211 temp
.val
[0] = vcombine_s8 (__tab
.val
[0], __tab
.val
[1]);
24212 temp
.val
[1] = vcombine_s8 (__tab
.val
[2], __tab
.val
[3]);
24213 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
24214 (int8x16_t
) temp
.val
[0], 0);
24215 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
24216 (int8x16_t
) temp
.val
[1], 1);
24217 result
= __builtin_aarch64_tbx4v8qi (__r
, __o
, __idx
);
24221 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
24222 vtbx4_u8 (uint8x8_t __r
, uint8x8x4_t __tab
, uint8x8_t __idx
)
24226 __builtin_aarch64_simd_oi __o
;
24227 temp
.val
[0] = vcombine_u8 (__tab
.val
[0], __tab
.val
[1]);
24228 temp
.val
[1] = vcombine_u8 (__tab
.val
[2], __tab
.val
[3]);
24229 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
24230 (int8x16_t
) temp
.val
[0], 0);
24231 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
24232 (int8x16_t
) temp
.val
[1], 1);
24233 result
= (uint8x8_t
)__builtin_aarch64_tbx4v8qi ((int8x8_t
)__r
, __o
,
24238 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
24239 vtbx4_p8 (poly8x8_t __r
, poly8x8x4_t __tab
, uint8x8_t __idx
)
24243 __builtin_aarch64_simd_oi __o
;
24244 temp
.val
[0] = vcombine_p8 (__tab
.val
[0], __tab
.val
[1]);
24245 temp
.val
[1] = vcombine_p8 (__tab
.val
[2], __tab
.val
[3]);
24246 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
24247 (int8x16_t
) temp
.val
[0], 0);
24248 __o
= __builtin_aarch64_set_qregoiv16qi (__o
,
24249 (int8x16_t
) temp
.val
[1], 1);
24250 result
= (poly8x8_t
)__builtin_aarch64_tbx4v8qi ((int8x8_t
)__r
, __o
,
24257 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
24258 vtrn1_f16 (float16x4_t __a
, float16x4_t __b
)
24260 #ifdef __AARCH64EB__
24261 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {5, 1, 7, 3});
24263 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 4, 2, 6});
24267 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
24268 vtrn1_f32 (float32x2_t __a
, float32x2_t __b
)
24270 #ifdef __AARCH64EB__
24271 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
24273 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
24277 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
24278 vtrn1_p8 (poly8x8_t __a
, poly8x8_t __b
)
24280 #ifdef __AARCH64EB__
24281 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {9, 1, 11, 3, 13, 5, 15, 7});
24283 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 8, 2, 10, 4, 12, 6, 14});
24287 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
24288 vtrn1_p16 (poly16x4_t __a
, poly16x4_t __b
)
24290 #ifdef __AARCH64EB__
24291 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {5, 1, 7, 3});
24293 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 4, 2, 6});
24297 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
24298 vtrn1_s8 (int8x8_t __a
, int8x8_t __b
)
24300 #ifdef __AARCH64EB__
24301 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {9, 1, 11, 3, 13, 5, 15, 7});
24303 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 8, 2, 10, 4, 12, 6, 14});
24307 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
24308 vtrn1_s16 (int16x4_t __a
, int16x4_t __b
)
24310 #ifdef __AARCH64EB__
24311 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {5, 1, 7, 3});
24313 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 4, 2, 6});
24317 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
24318 vtrn1_s32 (int32x2_t __a
, int32x2_t __b
)
24320 #ifdef __AARCH64EB__
24321 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
24323 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
24327 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
24328 vtrn1_u8 (uint8x8_t __a
, uint8x8_t __b
)
24330 #ifdef __AARCH64EB__
24331 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {9, 1, 11, 3, 13, 5, 15, 7});
24333 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 8, 2, 10, 4, 12, 6, 14});
24337 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
24338 vtrn1_u16 (uint16x4_t __a
, uint16x4_t __b
)
24340 #ifdef __AARCH64EB__
24341 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {5, 1, 7, 3});
24343 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 4, 2, 6});
24347 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
24348 vtrn1_u32 (uint32x2_t __a
, uint32x2_t __b
)
24350 #ifdef __AARCH64EB__
24351 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
24353 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
24357 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
24358 vtrn1q_f16 (float16x8_t __a
, float16x8_t __b
)
24360 #ifdef __AARCH64EB__
24361 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {9, 1, 11, 3, 13, 5, 15, 7});
24363 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 8, 2, 10, 4, 12, 6, 14});
24367 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
24368 vtrn1q_f32 (float32x4_t __a
, float32x4_t __b
)
24370 #ifdef __AARCH64EB__
24371 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {5, 1, 7, 3});
24373 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 4, 2, 6});
24377 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
24378 vtrn1q_f64 (float64x2_t __a
, float64x2_t __b
)
24380 #ifdef __AARCH64EB__
24381 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
24383 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
24387 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
24388 vtrn1q_p8 (poly8x16_t __a
, poly8x16_t __b
)
24390 #ifdef __AARCH64EB__
24391 return __builtin_shuffle (__a
, __b
,
24392 (uint8x16_t
) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
24394 return __builtin_shuffle (__a
, __b
,
24395 (uint8x16_t
) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
24399 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
24400 vtrn1q_p16 (poly16x8_t __a
, poly16x8_t __b
)
24402 #ifdef __AARCH64EB__
24403 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {9, 1, 11, 3, 13, 5, 15, 7});
24405 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 8, 2, 10, 4, 12, 6, 14});
24409 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
24410 vtrn1q_s8 (int8x16_t __a
, int8x16_t __b
)
24412 #ifdef __AARCH64EB__
24413 return __builtin_shuffle (__a
, __b
,
24414 (uint8x16_t
) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
24416 return __builtin_shuffle (__a
, __b
,
24417 (uint8x16_t
) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
24421 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
24422 vtrn1q_s16 (int16x8_t __a
, int16x8_t __b
)
24424 #ifdef __AARCH64EB__
24425 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {9, 1, 11, 3, 13, 5, 15, 7});
24427 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 8, 2, 10, 4, 12, 6, 14});
24431 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
24432 vtrn1q_s32 (int32x4_t __a
, int32x4_t __b
)
24434 #ifdef __AARCH64EB__
24435 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {5, 1, 7, 3});
24437 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 4, 2, 6});
24441 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
24442 vtrn1q_s64 (int64x2_t __a
, int64x2_t __b
)
24444 #ifdef __AARCH64EB__
24445 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
24447 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
24451 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
24452 vtrn1q_u8 (uint8x16_t __a
, uint8x16_t __b
)
24454 #ifdef __AARCH64EB__
24455 return __builtin_shuffle (__a
, __b
,
24456 (uint8x16_t
) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
24458 return __builtin_shuffle (__a
, __b
,
24459 (uint8x16_t
) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
24463 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
24464 vtrn1q_u16 (uint16x8_t __a
, uint16x8_t __b
)
24466 #ifdef __AARCH64EB__
24467 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {9, 1, 11, 3, 13, 5, 15, 7});
24469 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 8, 2, 10, 4, 12, 6, 14});
24473 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
24474 vtrn1q_u32 (uint32x4_t __a
, uint32x4_t __b
)
24476 #ifdef __AARCH64EB__
24477 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {5, 1, 7, 3});
24479 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 4, 2, 6});
24483 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
24484 vtrn1q_u64 (uint64x2_t __a
, uint64x2_t __b
)
24486 #ifdef __AARCH64EB__
24487 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
24489 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
24493 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
24494 vtrn2_f16 (float16x4_t __a
, float16x4_t __b
)
24496 #ifdef __AARCH64EB__
24497 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 0, 6, 2});
24499 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {1, 5, 3, 7});
24503 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
24504 vtrn2_f32 (float32x2_t __a
, float32x2_t __b
)
24506 #ifdef __AARCH64EB__
24507 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
24509 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
24513 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
24514 vtrn2_p8 (poly8x8_t __a
, poly8x8_t __b
)
24516 #ifdef __AARCH64EB__
24517 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 0, 10, 2, 12, 4, 14, 6});
24519 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {1, 9, 3, 11, 5, 13, 7, 15});
24523 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
24524 vtrn2_p16 (poly16x4_t __a
, poly16x4_t __b
)
24526 #ifdef __AARCH64EB__
24527 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 0, 6, 2});
24529 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {1, 5, 3, 7});
24533 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
24534 vtrn2_s8 (int8x8_t __a
, int8x8_t __b
)
24536 #ifdef __AARCH64EB__
24537 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 0, 10, 2, 12, 4, 14, 6});
24539 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {1, 9, 3, 11, 5, 13, 7, 15});
24543 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
24544 vtrn2_s16 (int16x4_t __a
, int16x4_t __b
)
24546 #ifdef __AARCH64EB__
24547 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 0, 6, 2});
24549 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {1, 5, 3, 7});
24553 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
24554 vtrn2_s32 (int32x2_t __a
, int32x2_t __b
)
24556 #ifdef __AARCH64EB__
24557 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
24559 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
24563 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
24564 vtrn2_u8 (uint8x8_t __a
, uint8x8_t __b
)
24566 #ifdef __AARCH64EB__
24567 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 0, 10, 2, 12, 4, 14, 6});
24569 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {1, 9, 3, 11, 5, 13, 7, 15});
24573 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
24574 vtrn2_u16 (uint16x4_t __a
, uint16x4_t __b
)
24576 #ifdef __AARCH64EB__
24577 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 0, 6, 2});
24579 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {1, 5, 3, 7});
24583 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
24584 vtrn2_u32 (uint32x2_t __a
, uint32x2_t __b
)
24586 #ifdef __AARCH64EB__
24587 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
24589 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
24593 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
24594 vtrn2q_f16 (float16x8_t __a
, float16x8_t __b
)
24596 #ifdef __AARCH64EB__
24597 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 0, 10, 2, 12, 4, 14, 6});
24599 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {1, 9, 3, 11, 5, 13, 7, 15});
24603 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
24604 vtrn2q_f32 (float32x4_t __a
, float32x4_t __b
)
24606 #ifdef __AARCH64EB__
24607 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 0, 6, 2});
24609 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {1, 5, 3, 7});
24613 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
24614 vtrn2q_f64 (float64x2_t __a
, float64x2_t __b
)
24616 #ifdef __AARCH64EB__
24617 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
24619 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
24623 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
24624 vtrn2q_p8 (poly8x16_t __a
, poly8x16_t __b
)
24626 #ifdef __AARCH64EB__
24627 return __builtin_shuffle (__a
, __b
,
24628 (uint8x16_t
) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
24630 return __builtin_shuffle (__a
, __b
,
24631 (uint8x16_t
) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
24635 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
24636 vtrn2q_p16 (poly16x8_t __a
, poly16x8_t __b
)
24638 #ifdef __AARCH64EB__
24639 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 0, 10, 2, 12, 4, 14, 6});
24641 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {1, 9, 3, 11, 5, 13, 7, 15});
24645 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
24646 vtrn2q_s8 (int8x16_t __a
, int8x16_t __b
)
24648 #ifdef __AARCH64EB__
24649 return __builtin_shuffle (__a
, __b
,
24650 (uint8x16_t
) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
24652 return __builtin_shuffle (__a
, __b
,
24653 (uint8x16_t
) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
24657 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
24658 vtrn2q_s16 (int16x8_t __a
, int16x8_t __b
)
24660 #ifdef __AARCH64EB__
24661 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 0, 10, 2, 12, 4, 14, 6});
24663 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {1, 9, 3, 11, 5, 13, 7, 15});
24667 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
24668 vtrn2q_s32 (int32x4_t __a
, int32x4_t __b
)
24670 #ifdef __AARCH64EB__
24671 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 0, 6, 2});
24673 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {1, 5, 3, 7});
24677 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
24678 vtrn2q_s64 (int64x2_t __a
, int64x2_t __b
)
24680 #ifdef __AARCH64EB__
24681 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
24683 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
24687 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
24688 vtrn2q_u8 (uint8x16_t __a
, uint8x16_t __b
)
24690 #ifdef __AARCH64EB__
24691 return __builtin_shuffle (__a
, __b
,
24692 (uint8x16_t
) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
24694 return __builtin_shuffle (__a
, __b
,
24695 (uint8x16_t
) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
24699 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
24700 vtrn2q_u16 (uint16x8_t __a
, uint16x8_t __b
)
24702 #ifdef __AARCH64EB__
24703 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 0, 10, 2, 12, 4, 14, 6});
24705 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {1, 9, 3, 11, 5, 13, 7, 15});
24709 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
24710 vtrn2q_u32 (uint32x4_t __a
, uint32x4_t __b
)
24712 #ifdef __AARCH64EB__
24713 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 0, 6, 2});
24715 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {1, 5, 3, 7});
24719 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
24720 vtrn2q_u64 (uint64x2_t __a
, uint64x2_t __b
)
24722 #ifdef __AARCH64EB__
24723 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
24725 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
24729 __extension__
static __inline float16x4x2_t
__attribute__ ((__always_inline__
))
24730 vtrn_f16 (float16x4_t __a
, float16x4_t __b
)
24732 return (float16x4x2_t
) {vtrn1_f16 (__a
, __b
), vtrn2_f16 (__a
, __b
)};
24735 __extension__
static __inline float32x2x2_t
__attribute__ ((__always_inline__
))
24736 vtrn_f32 (float32x2_t a
, float32x2_t b
)
24738 return (float32x2x2_t
) {vtrn1_f32 (a
, b
), vtrn2_f32 (a
, b
)};
24741 __extension__
static __inline poly8x8x2_t
__attribute__ ((__always_inline__
))
24742 vtrn_p8 (poly8x8_t a
, poly8x8_t b
)
24744 return (poly8x8x2_t
) {vtrn1_p8 (a
, b
), vtrn2_p8 (a
, b
)};
24747 __extension__
static __inline poly16x4x2_t
__attribute__ ((__always_inline__
))
24748 vtrn_p16 (poly16x4_t a
, poly16x4_t b
)
24750 return (poly16x4x2_t
) {vtrn1_p16 (a
, b
), vtrn2_p16 (a
, b
)};
24753 __extension__
static __inline int8x8x2_t
__attribute__ ((__always_inline__
))
24754 vtrn_s8 (int8x8_t a
, int8x8_t b
)
24756 return (int8x8x2_t
) {vtrn1_s8 (a
, b
), vtrn2_s8 (a
, b
)};
24759 __extension__
static __inline int16x4x2_t
__attribute__ ((__always_inline__
))
24760 vtrn_s16 (int16x4_t a
, int16x4_t b
)
24762 return (int16x4x2_t
) {vtrn1_s16 (a
, b
), vtrn2_s16 (a
, b
)};
24765 __extension__
static __inline int32x2x2_t
__attribute__ ((__always_inline__
))
24766 vtrn_s32 (int32x2_t a
, int32x2_t b
)
24768 return (int32x2x2_t
) {vtrn1_s32 (a
, b
), vtrn2_s32 (a
, b
)};
24771 __extension__
static __inline uint8x8x2_t
__attribute__ ((__always_inline__
))
24772 vtrn_u8 (uint8x8_t a
, uint8x8_t b
)
24774 return (uint8x8x2_t
) {vtrn1_u8 (a
, b
), vtrn2_u8 (a
, b
)};
24777 __extension__
static __inline uint16x4x2_t
__attribute__ ((__always_inline__
))
24778 vtrn_u16 (uint16x4_t a
, uint16x4_t b
)
24780 return (uint16x4x2_t
) {vtrn1_u16 (a
, b
), vtrn2_u16 (a
, b
)};
24783 __extension__
static __inline uint32x2x2_t
__attribute__ ((__always_inline__
))
24784 vtrn_u32 (uint32x2_t a
, uint32x2_t b
)
24786 return (uint32x2x2_t
) {vtrn1_u32 (a
, b
), vtrn2_u32 (a
, b
)};
24789 __extension__
static __inline float16x8x2_t
__attribute__ ((__always_inline__
))
24790 vtrnq_f16 (float16x8_t __a
, float16x8_t __b
)
24792 return (float16x8x2_t
) {vtrn1q_f16 (__a
, __b
), vtrn2q_f16 (__a
, __b
)};
24795 __extension__
static __inline float32x4x2_t
__attribute__ ((__always_inline__
))
24796 vtrnq_f32 (float32x4_t a
, float32x4_t b
)
24798 return (float32x4x2_t
) {vtrn1q_f32 (a
, b
), vtrn2q_f32 (a
, b
)};
24801 __extension__
static __inline poly8x16x2_t
__attribute__ ((__always_inline__
))
24802 vtrnq_p8 (poly8x16_t a
, poly8x16_t b
)
24804 return (poly8x16x2_t
) {vtrn1q_p8 (a
, b
), vtrn2q_p8 (a
, b
)};
24807 __extension__
static __inline poly16x8x2_t
__attribute__ ((__always_inline__
))
24808 vtrnq_p16 (poly16x8_t a
, poly16x8_t b
)
24810 return (poly16x8x2_t
) {vtrn1q_p16 (a
, b
), vtrn2q_p16 (a
, b
)};
24813 __extension__
static __inline int8x16x2_t
__attribute__ ((__always_inline__
))
24814 vtrnq_s8 (int8x16_t a
, int8x16_t b
)
24816 return (int8x16x2_t
) {vtrn1q_s8 (a
, b
), vtrn2q_s8 (a
, b
)};
24819 __extension__
static __inline int16x8x2_t
__attribute__ ((__always_inline__
))
24820 vtrnq_s16 (int16x8_t a
, int16x8_t b
)
24822 return (int16x8x2_t
) {vtrn1q_s16 (a
, b
), vtrn2q_s16 (a
, b
)};
24825 __extension__
static __inline int32x4x2_t
__attribute__ ((__always_inline__
))
24826 vtrnq_s32 (int32x4_t a
, int32x4_t b
)
24828 return (int32x4x2_t
) {vtrn1q_s32 (a
, b
), vtrn2q_s32 (a
, b
)};
24831 __extension__
static __inline uint8x16x2_t
__attribute__ ((__always_inline__
))
24832 vtrnq_u8 (uint8x16_t a
, uint8x16_t b
)
24834 return (uint8x16x2_t
) {vtrn1q_u8 (a
, b
), vtrn2q_u8 (a
, b
)};
24837 __extension__
static __inline uint16x8x2_t
__attribute__ ((__always_inline__
))
24838 vtrnq_u16 (uint16x8_t a
, uint16x8_t b
)
24840 return (uint16x8x2_t
) {vtrn1q_u16 (a
, b
), vtrn2q_u16 (a
, b
)};
24843 __extension__
static __inline uint32x4x2_t
__attribute__ ((__always_inline__
))
24844 vtrnq_u32 (uint32x4_t a
, uint32x4_t b
)
24846 return (uint32x4x2_t
) {vtrn1q_u32 (a
, b
), vtrn2q_u32 (a
, b
)};
24851 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
24852 vtst_s8 (int8x8_t __a
, int8x8_t __b
)
24854 return (uint8x8_t
) ((__a
& __b
) != 0);
24857 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
24858 vtst_s16 (int16x4_t __a
, int16x4_t __b
)
24860 return (uint16x4_t
) ((__a
& __b
) != 0);
24863 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
24864 vtst_s32 (int32x2_t __a
, int32x2_t __b
)
24866 return (uint32x2_t
) ((__a
& __b
) != 0);
24869 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
24870 vtst_s64 (int64x1_t __a
, int64x1_t __b
)
24872 return (uint64x1_t
) ((__a
& __b
) != __AARCH64_INT64_C (0));
24875 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
24876 vtst_u8 (uint8x8_t __a
, uint8x8_t __b
)
24878 return ((__a
& __b
) != 0);
24881 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
24882 vtst_u16 (uint16x4_t __a
, uint16x4_t __b
)
24884 return ((__a
& __b
) != 0);
24887 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
24888 vtst_u32 (uint32x2_t __a
, uint32x2_t __b
)
24890 return ((__a
& __b
) != 0);
24893 __extension__
static __inline uint64x1_t
__attribute__ ((__always_inline__
))
24894 vtst_u64 (uint64x1_t __a
, uint64x1_t __b
)
24896 return ((__a
& __b
) != __AARCH64_UINT64_C (0));
24899 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
24900 vtstq_s8 (int8x16_t __a
, int8x16_t __b
)
24902 return (uint8x16_t
) ((__a
& __b
) != 0);
24905 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
24906 vtstq_s16 (int16x8_t __a
, int16x8_t __b
)
24908 return (uint16x8_t
) ((__a
& __b
) != 0);
24911 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
24912 vtstq_s32 (int32x4_t __a
, int32x4_t __b
)
24914 return (uint32x4_t
) ((__a
& __b
) != 0);
24917 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
24918 vtstq_s64 (int64x2_t __a
, int64x2_t __b
)
24920 return (uint64x2_t
) ((__a
& __b
) != __AARCH64_INT64_C (0));
24923 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
24924 vtstq_u8 (uint8x16_t __a
, uint8x16_t __b
)
24926 return ((__a
& __b
) != 0);
24929 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
24930 vtstq_u16 (uint16x8_t __a
, uint16x8_t __b
)
24932 return ((__a
& __b
) != 0);
24935 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
24936 vtstq_u32 (uint32x4_t __a
, uint32x4_t __b
)
24938 return ((__a
& __b
) != 0);
24941 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
24942 vtstq_u64 (uint64x2_t __a
, uint64x2_t __b
)
24944 return ((__a
& __b
) != __AARCH64_UINT64_C (0));
24947 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
24948 vtstd_s64 (int64_t __a
, int64_t __b
)
24950 return (__a
& __b
) ? -1ll : 0ll;
24953 __extension__
static __inline
uint64_t __attribute__ ((__always_inline__
))
24954 vtstd_u64 (uint64_t __a
, uint64_t __b
)
24956 return (__a
& __b
) ? -1ll : 0ll;
24961 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
24962 vuqadd_s8 (int8x8_t __a
, uint8x8_t __b
)
24964 return __builtin_aarch64_suqaddv8qi_ssu (__a
, __b
);
24967 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
24968 vuqadd_s16 (int16x4_t __a
, uint16x4_t __b
)
24970 return __builtin_aarch64_suqaddv4hi_ssu (__a
, __b
);
24973 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
24974 vuqadd_s32 (int32x2_t __a
, uint32x2_t __b
)
24976 return __builtin_aarch64_suqaddv2si_ssu (__a
, __b
);
24979 __extension__
static __inline int64x1_t
__attribute__ ((__always_inline__
))
24980 vuqadd_s64 (int64x1_t __a
, uint64x1_t __b
)
24982 return (int64x1_t
) {__builtin_aarch64_suqadddi_ssu (__a
[0], __b
[0])};
24985 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
24986 vuqaddq_s8 (int8x16_t __a
, uint8x16_t __b
)
24988 return __builtin_aarch64_suqaddv16qi_ssu (__a
, __b
);
24991 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
24992 vuqaddq_s16 (int16x8_t __a
, uint16x8_t __b
)
24994 return __builtin_aarch64_suqaddv8hi_ssu (__a
, __b
);
24997 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
24998 vuqaddq_s32 (int32x4_t __a
, uint32x4_t __b
)
25000 return __builtin_aarch64_suqaddv4si_ssu (__a
, __b
);
25003 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
25004 vuqaddq_s64 (int64x2_t __a
, uint64x2_t __b
)
25006 return __builtin_aarch64_suqaddv2di_ssu (__a
, __b
);
25009 __extension__
static __inline
int8_t __attribute__ ((__always_inline__
))
25010 vuqaddb_s8 (int8_t __a
, uint8_t __b
)
25012 return __builtin_aarch64_suqaddqi_ssu (__a
, __b
);
25015 __extension__
static __inline
int16_t __attribute__ ((__always_inline__
))
25016 vuqaddh_s16 (int16_t __a
, uint16_t __b
)
25018 return __builtin_aarch64_suqaddhi_ssu (__a
, __b
);
25021 __extension__
static __inline
int32_t __attribute__ ((__always_inline__
))
25022 vuqadds_s32 (int32_t __a
, uint32_t __b
)
25024 return __builtin_aarch64_suqaddsi_ssu (__a
, __b
);
25027 __extension__
static __inline
int64_t __attribute__ ((__always_inline__
))
25028 vuqaddd_s64 (int64_t __a
, uint64_t __b
)
25030 return __builtin_aarch64_suqadddi_ssu (__a
, __b
);
25033 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) \
25034 __extension__ static __inline rettype \
25035 __attribute__ ((__always_inline__)) \
25036 v ## op ## Q ## _ ## funcsuffix (intype a, intype b) \
25038 return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b), \
25039 v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)}; \
25042 #define __INTERLEAVE_LIST(op) \
25043 __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,) \
25044 __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,) \
25045 __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,) \
25046 __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,) \
25047 __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,) \
25048 __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,) \
25049 __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,) \
25050 __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,) \
25051 __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,) \
25052 __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,) \
25053 __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q) \
25054 __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q) \
25055 __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q) \
25056 __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q) \
25057 __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q) \
25058 __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q) \
25059 __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q) \
25060 __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q) \
25061 __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q) \
25062 __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
25066 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
25067 vuzp1_f16 (float16x4_t __a
, float16x4_t __b
)
25069 #ifdef __AARCH64EB__
25070 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {5, 7, 1, 3});
25072 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 2, 4, 6});
25076 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
25077 vuzp1_f32 (float32x2_t __a
, float32x2_t __b
)
25079 #ifdef __AARCH64EB__
25080 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
25082 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
25086 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
25087 vuzp1_p8 (poly8x8_t __a
, poly8x8_t __b
)
25089 #ifdef __AARCH64EB__
25090 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {9, 11, 13, 15, 1, 3, 5, 7});
25092 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 2, 4, 6, 8, 10, 12, 14});
25096 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
25097 vuzp1_p16 (poly16x4_t __a
, poly16x4_t __b
)
25099 #ifdef __AARCH64EB__
25100 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {5, 7, 1, 3});
25102 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 2, 4, 6});
25106 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
25107 vuzp1_s8 (int8x8_t __a
, int8x8_t __b
)
25109 #ifdef __AARCH64EB__
25110 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {9, 11, 13, 15, 1, 3, 5, 7});
25112 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 2, 4, 6, 8, 10, 12, 14});
25116 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
25117 vuzp1_s16 (int16x4_t __a
, int16x4_t __b
)
25119 #ifdef __AARCH64EB__
25120 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {5, 7, 1, 3});
25122 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 2, 4, 6});
25126 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
25127 vuzp1_s32 (int32x2_t __a
, int32x2_t __b
)
25129 #ifdef __AARCH64EB__
25130 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
25132 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
25136 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
25137 vuzp1_u8 (uint8x8_t __a
, uint8x8_t __b
)
25139 #ifdef __AARCH64EB__
25140 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {9, 11, 13, 15, 1, 3, 5, 7});
25142 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 2, 4, 6, 8, 10, 12, 14});
25146 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
25147 vuzp1_u16 (uint16x4_t __a
, uint16x4_t __b
)
25149 #ifdef __AARCH64EB__
25150 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {5, 7, 1, 3});
25152 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 2, 4, 6});
25156 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
25157 vuzp1_u32 (uint32x2_t __a
, uint32x2_t __b
)
25159 #ifdef __AARCH64EB__
25160 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
25162 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
25166 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
25167 vuzp1q_f16 (float16x8_t __a
, float16x8_t __b
)
25169 #ifdef __AARCH64EB__
25170 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {9, 11, 13, 15, 1, 3, 5, 7});
25172 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 2, 4, 6, 8, 10, 12, 14});
25176 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
25177 vuzp1q_f32 (float32x4_t __a
, float32x4_t __b
)
25179 #ifdef __AARCH64EB__
25180 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {5, 7, 1, 3});
25182 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 2, 4, 6});
25186 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
25187 vuzp1q_f64 (float64x2_t __a
, float64x2_t __b
)
25189 #ifdef __AARCH64EB__
25190 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
25192 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
25196 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
25197 vuzp1q_p8 (poly8x16_t __a
, poly8x16_t __b
)
25199 #ifdef __AARCH64EB__
25200 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25201 {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
25203 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25204 {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
25208 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
25209 vuzp1q_p16 (poly16x8_t __a
, poly16x8_t __b
)
25211 #ifdef __AARCH64EB__
25212 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {9, 11, 13, 15, 1, 3, 5, 7});
25214 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 2, 4, 6, 8, 10, 12, 14});
25218 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
25219 vuzp1q_s8 (int8x16_t __a
, int8x16_t __b
)
25221 #ifdef __AARCH64EB__
25222 return __builtin_shuffle (__a
, __b
,
25223 (uint8x16_t
) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
25225 return __builtin_shuffle (__a
, __b
,
25226 (uint8x16_t
) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
25230 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
25231 vuzp1q_s16 (int16x8_t __a
, int16x8_t __b
)
25233 #ifdef __AARCH64EB__
25234 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {9, 11, 13, 15, 1, 3, 5, 7});
25236 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 2, 4, 6, 8, 10, 12, 14});
25240 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
25241 vuzp1q_s32 (int32x4_t __a
, int32x4_t __b
)
25243 #ifdef __AARCH64EB__
25244 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {5, 7, 1, 3});
25246 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 2, 4, 6});
25250 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
25251 vuzp1q_s64 (int64x2_t __a
, int64x2_t __b
)
25253 #ifdef __AARCH64EB__
25254 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
25256 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
25260 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
25261 vuzp1q_u8 (uint8x16_t __a
, uint8x16_t __b
)
25263 #ifdef __AARCH64EB__
25264 return __builtin_shuffle (__a
, __b
,
25265 (uint8x16_t
) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
25267 return __builtin_shuffle (__a
, __b
,
25268 (uint8x16_t
) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
25272 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
25273 vuzp1q_u16 (uint16x8_t __a
, uint16x8_t __b
)
25275 #ifdef __AARCH64EB__
25276 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {9, 11, 13, 15, 1, 3, 5, 7});
25278 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 2, 4, 6, 8, 10, 12, 14});
25282 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
25283 vuzp1q_u32 (uint32x4_t __a
, uint32x4_t __b
)
25285 #ifdef __AARCH64EB__
25286 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {5, 7, 1, 3});
25288 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 2, 4, 6});
25292 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
25293 vuzp1q_u64 (uint64x2_t __a
, uint64x2_t __b
)
25295 #ifdef __AARCH64EB__
25296 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
25298 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
25302 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
25303 vuzp2_f16 (float16x4_t __a
, float16x4_t __b
)
25305 #ifdef __AARCH64EB__
25306 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 6, 0, 2});
25308 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {1, 3, 5, 7});
25312 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
25313 vuzp2_f32 (float32x2_t __a
, float32x2_t __b
)
25315 #ifdef __AARCH64EB__
25316 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
25318 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
25322 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
25323 vuzp2_p8 (poly8x8_t __a
, poly8x8_t __b
)
25325 #ifdef __AARCH64EB__
25326 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 10, 12, 14, 0, 2, 4, 6});
25328 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {1, 3, 5, 7, 9, 11, 13, 15});
25332 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
25333 vuzp2_p16 (poly16x4_t __a
, poly16x4_t __b
)
25335 #ifdef __AARCH64EB__
25336 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 6, 0, 2});
25338 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {1, 3, 5, 7});
25342 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
25343 vuzp2_s8 (int8x8_t __a
, int8x8_t __b
)
25345 #ifdef __AARCH64EB__
25346 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 10, 12, 14, 0, 2, 4, 6});
25348 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {1, 3, 5, 7, 9, 11, 13, 15});
25352 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
25353 vuzp2_s16 (int16x4_t __a
, int16x4_t __b
)
25355 #ifdef __AARCH64EB__
25356 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 6, 0, 2});
25358 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {1, 3, 5, 7});
25362 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
25363 vuzp2_s32 (int32x2_t __a
, int32x2_t __b
)
25365 #ifdef __AARCH64EB__
25366 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
25368 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
25372 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
25373 vuzp2_u8 (uint8x8_t __a
, uint8x8_t __b
)
25375 #ifdef __AARCH64EB__
25376 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 10, 12, 14, 0, 2, 4, 6});
25378 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {1, 3, 5, 7, 9, 11, 13, 15});
25382 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
25383 vuzp2_u16 (uint16x4_t __a
, uint16x4_t __b
)
25385 #ifdef __AARCH64EB__
25386 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 6, 0, 2});
25388 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {1, 3, 5, 7});
25392 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
25393 vuzp2_u32 (uint32x2_t __a
, uint32x2_t __b
)
25395 #ifdef __AARCH64EB__
25396 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
25398 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
25402 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
25403 vuzp2q_f16 (float16x8_t __a
, float16x8_t __b
)
25405 #ifdef __AARCH64EB__
25406 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 10, 12, 14, 0, 2, 4, 6});
25408 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {1, 3, 5, 7, 9, 11, 13, 15});
25412 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
25413 vuzp2q_f32 (float32x4_t __a
, float32x4_t __b
)
25415 #ifdef __AARCH64EB__
25416 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 6, 0, 2});
25418 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {1, 3, 5, 7});
25422 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
25423 vuzp2q_f64 (float64x2_t __a
, float64x2_t __b
)
25425 #ifdef __AARCH64EB__
25426 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
25428 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
25432 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
25433 vuzp2q_p8 (poly8x16_t __a
, poly8x16_t __b
)
25435 #ifdef __AARCH64EB__
25436 return __builtin_shuffle (__a
, __b
,
25437 (uint8x16_t
) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
25439 return __builtin_shuffle (__a
, __b
,
25440 (uint8x16_t
) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
25444 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
25445 vuzp2q_p16 (poly16x8_t __a
, poly16x8_t __b
)
25447 #ifdef __AARCH64EB__
25448 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 10, 12, 14, 0, 2, 4, 6});
25450 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {1, 3, 5, 7, 9, 11, 13, 15});
25454 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
25455 vuzp2q_s8 (int8x16_t __a
, int8x16_t __b
)
25457 #ifdef __AARCH64EB__
25458 return __builtin_shuffle (__a
, __b
,
25459 (uint8x16_t
) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
25461 return __builtin_shuffle (__a
, __b
,
25462 (uint8x16_t
) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
25466 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
25467 vuzp2q_s16 (int16x8_t __a
, int16x8_t __b
)
25469 #ifdef __AARCH64EB__
25470 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 10, 12, 14, 0, 2, 4, 6});
25472 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {1, 3, 5, 7, 9, 11, 13, 15});
25476 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
25477 vuzp2q_s32 (int32x4_t __a
, int32x4_t __b
)
25479 #ifdef __AARCH64EB__
25480 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 6, 0, 2});
25482 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {1, 3, 5, 7});
25486 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
25487 vuzp2q_s64 (int64x2_t __a
, int64x2_t __b
)
25489 #ifdef __AARCH64EB__
25490 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
25492 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
25496 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
25497 vuzp2q_u8 (uint8x16_t __a
, uint8x16_t __b
)
25499 #ifdef __AARCH64EB__
25500 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25501 {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
25503 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25504 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
25508 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
25509 vuzp2q_u16 (uint16x8_t __a
, uint16x8_t __b
)
25511 #ifdef __AARCH64EB__
25512 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 10, 12, 14, 0, 2, 4, 6});
25514 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {1, 3, 5, 7, 9, 11, 13, 15});
25518 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
25519 vuzp2q_u32 (uint32x4_t __a
, uint32x4_t __b
)
25521 #ifdef __AARCH64EB__
25522 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 6, 0, 2});
25524 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {1, 3, 5, 7});
25528 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
25529 vuzp2q_u64 (uint64x2_t __a
, uint64x2_t __b
)
25531 #ifdef __AARCH64EB__
25532 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
25534 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
25538 __INTERLEAVE_LIST (uzp
)
25542 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
25543 vzip1_f16 (float16x4_t __a
, float16x4_t __b
)
25545 #ifdef __AARCH64EB__
25546 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {6, 2, 7, 3});
25548 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 4, 1, 5});
25552 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
25553 vzip1_f32 (float32x2_t __a
, float32x2_t __b
)
25555 #ifdef __AARCH64EB__
25556 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
25558 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
25562 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
25563 vzip1_p8 (poly8x8_t __a
, poly8x8_t __b
)
25565 #ifdef __AARCH64EB__
25566 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {12, 4, 13, 5, 14, 6, 15, 7});
25568 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 8, 1, 9, 2, 10, 3, 11});
25572 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
25573 vzip1_p16 (poly16x4_t __a
, poly16x4_t __b
)
25575 #ifdef __AARCH64EB__
25576 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {6, 2, 7, 3});
25578 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 4, 1, 5});
25582 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
25583 vzip1_s8 (int8x8_t __a
, int8x8_t __b
)
25585 #ifdef __AARCH64EB__
25586 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {12, 4, 13, 5, 14, 6, 15, 7});
25588 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 8, 1, 9, 2, 10, 3, 11});
25592 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
25593 vzip1_s16 (int16x4_t __a
, int16x4_t __b
)
25595 #ifdef __AARCH64EB__
25596 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {6, 2, 7, 3});
25598 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 4, 1, 5});
25602 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
25603 vzip1_s32 (int32x2_t __a
, int32x2_t __b
)
25605 #ifdef __AARCH64EB__
25606 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
25608 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
25612 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
25613 vzip1_u8 (uint8x8_t __a
, uint8x8_t __b
)
25615 #ifdef __AARCH64EB__
25616 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {12, 4, 13, 5, 14, 6, 15, 7});
25618 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {0, 8, 1, 9, 2, 10, 3, 11});
25622 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
25623 vzip1_u16 (uint16x4_t __a
, uint16x4_t __b
)
25625 #ifdef __AARCH64EB__
25626 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {6, 2, 7, 3});
25628 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {0, 4, 1, 5});
25632 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
25633 vzip1_u32 (uint32x2_t __a
, uint32x2_t __b
)
25635 #ifdef __AARCH64EB__
25636 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {3, 1});
25638 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {0, 2});
25642 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
25643 vzip1q_f16 (float16x8_t __a
, float16x8_t __b
)
25645 #ifdef __AARCH64EB__
25646 return __builtin_shuffle (__a
, __b
,
25647 (uint16x8_t
) {12, 4, 13, 5, 14, 6, 15, 7});
25649 return __builtin_shuffle (__a
, __b
,
25650 (uint16x8_t
) {0, 8, 1, 9, 2, 10, 3, 11});
25654 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
25655 vzip1q_f32 (float32x4_t __a
, float32x4_t __b
)
25657 #ifdef __AARCH64EB__
25658 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {6, 2, 7, 3});
25660 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 4, 1, 5});
25664 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
25665 vzip1q_f64 (float64x2_t __a
, float64x2_t __b
)
25667 #ifdef __AARCH64EB__
25668 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
25670 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
25674 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
25675 vzip1q_p8 (poly8x16_t __a
, poly8x16_t __b
)
25677 #ifdef __AARCH64EB__
25678 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25679 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
25681 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25682 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
25686 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
25687 vzip1q_p16 (poly16x8_t __a
, poly16x8_t __b
)
25689 #ifdef __AARCH64EB__
25690 return __builtin_shuffle (__a
, __b
, (uint16x8_t
)
25691 {12, 4, 13, 5, 14, 6, 15, 7});
25693 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 8, 1, 9, 2, 10, 3, 11});
25697 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
25698 vzip1q_s8 (int8x16_t __a
, int8x16_t __b
)
25700 #ifdef __AARCH64EB__
25701 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25702 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
25704 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25705 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
25709 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
25710 vzip1q_s16 (int16x8_t __a
, int16x8_t __b
)
25712 #ifdef __AARCH64EB__
25713 return __builtin_shuffle (__a
, __b
, (uint16x8_t
)
25714 {12, 4, 13, 5, 14, 6, 15, 7});
25716 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 8, 1, 9, 2, 10, 3, 11});
25720 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
25721 vzip1q_s32 (int32x4_t __a
, int32x4_t __b
)
25723 #ifdef __AARCH64EB__
25724 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {6, 2, 7, 3});
25726 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 4, 1, 5});
25730 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
25731 vzip1q_s64 (int64x2_t __a
, int64x2_t __b
)
25733 #ifdef __AARCH64EB__
25734 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
25736 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
25740 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
25741 vzip1q_u8 (uint8x16_t __a
, uint8x16_t __b
)
25743 #ifdef __AARCH64EB__
25744 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25745 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
25747 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25748 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
25752 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
25753 vzip1q_u16 (uint16x8_t __a
, uint16x8_t __b
)
25755 #ifdef __AARCH64EB__
25756 return __builtin_shuffle (__a
, __b
, (uint16x8_t
)
25757 {12, 4, 13, 5, 14, 6, 15, 7});
25759 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {0, 8, 1, 9, 2, 10, 3, 11});
25763 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
25764 vzip1q_u32 (uint32x4_t __a
, uint32x4_t __b
)
25766 #ifdef __AARCH64EB__
25767 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {6, 2, 7, 3});
25769 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {0, 4, 1, 5});
25773 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
25774 vzip1q_u64 (uint64x2_t __a
, uint64x2_t __b
)
25776 #ifdef __AARCH64EB__
25777 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {3, 1});
25779 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {0, 2});
25783 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
25784 vzip2_f16 (float16x4_t __a
, float16x4_t __b
)
25786 #ifdef __AARCH64EB__
25787 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 0, 5, 1});
25789 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {2, 6, 3, 7});
25793 __extension__
static __inline float32x2_t
__attribute__ ((__always_inline__
))
25794 vzip2_f32 (float32x2_t __a
, float32x2_t __b
)
25796 #ifdef __AARCH64EB__
25797 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
25799 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
25803 __extension__
static __inline poly8x8_t
__attribute__ ((__always_inline__
))
25804 vzip2_p8 (poly8x8_t __a
, poly8x8_t __b
)
25806 #ifdef __AARCH64EB__
25807 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 0, 9, 1, 10, 2, 11, 3});
25809 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {4, 12, 5, 13, 6, 14, 7, 15});
25813 __extension__
static __inline poly16x4_t
__attribute__ ((__always_inline__
))
25814 vzip2_p16 (poly16x4_t __a
, poly16x4_t __b
)
25816 #ifdef __AARCH64EB__
25817 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 0, 5, 1});
25819 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {2, 6, 3, 7});
25823 __extension__
static __inline int8x8_t
__attribute__ ((__always_inline__
))
25824 vzip2_s8 (int8x8_t __a
, int8x8_t __b
)
25826 #ifdef __AARCH64EB__
25827 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 0, 9, 1, 10, 2, 11, 3});
25829 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {4, 12, 5, 13, 6, 14, 7, 15});
25833 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
25834 vzip2_s16 (int16x4_t __a
, int16x4_t __b
)
25836 #ifdef __AARCH64EB__
25837 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 0, 5, 1});
25839 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {2, 6, 3, 7});
25843 __extension__
static __inline int32x2_t
__attribute__ ((__always_inline__
))
25844 vzip2_s32 (int32x2_t __a
, int32x2_t __b
)
25846 #ifdef __AARCH64EB__
25847 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
25849 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
25853 __extension__
static __inline uint8x8_t
__attribute__ ((__always_inline__
))
25854 vzip2_u8 (uint8x8_t __a
, uint8x8_t __b
)
25856 #ifdef __AARCH64EB__
25857 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {8, 0, 9, 1, 10, 2, 11, 3});
25859 return __builtin_shuffle (__a
, __b
, (uint8x8_t
) {4, 12, 5, 13, 6, 14, 7, 15});
25863 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
25864 vzip2_u16 (uint16x4_t __a
, uint16x4_t __b
)
25866 #ifdef __AARCH64EB__
25867 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {4, 0, 5, 1});
25869 return __builtin_shuffle (__a
, __b
, (uint16x4_t
) {2, 6, 3, 7});
25873 __extension__
static __inline uint32x2_t
__attribute__ ((__always_inline__
))
25874 vzip2_u32 (uint32x2_t __a
, uint32x2_t __b
)
25876 #ifdef __AARCH64EB__
25877 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {2, 0});
25879 return __builtin_shuffle (__a
, __b
, (uint32x2_t
) {1, 3});
25883 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
25884 vzip2q_f16 (float16x8_t __a
, float16x8_t __b
)
25886 #ifdef __AARCH64EB__
25887 return __builtin_shuffle (__a
, __b
,
25888 (uint16x8_t
) {8, 0, 9, 1, 10, 2, 11, 3});
25890 return __builtin_shuffle (__a
, __b
,
25891 (uint16x8_t
) {4, 12, 5, 13, 6, 14, 7, 15});
25895 __extension__
static __inline float32x4_t
__attribute__ ((__always_inline__
))
25896 vzip2q_f32 (float32x4_t __a
, float32x4_t __b
)
25898 #ifdef __AARCH64EB__
25899 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 0, 5, 1});
25901 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {2, 6, 3, 7});
25905 __extension__
static __inline float64x2_t
__attribute__ ((__always_inline__
))
25906 vzip2q_f64 (float64x2_t __a
, float64x2_t __b
)
25908 #ifdef __AARCH64EB__
25909 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
25911 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
25915 __extension__
static __inline poly8x16_t
__attribute__ ((__always_inline__
))
25916 vzip2q_p8 (poly8x16_t __a
, poly8x16_t __b
)
25918 #ifdef __AARCH64EB__
25919 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25920 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
25922 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25923 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
25927 __extension__
static __inline poly16x8_t
__attribute__ ((__always_inline__
))
25928 vzip2q_p16 (poly16x8_t __a
, poly16x8_t __b
)
25930 #ifdef __AARCH64EB__
25931 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 0, 9, 1, 10, 2, 11, 3});
25933 return __builtin_shuffle (__a
, __b
, (uint16x8_t
)
25934 {4, 12, 5, 13, 6, 14, 7, 15});
25938 __extension__
static __inline int8x16_t
__attribute__ ((__always_inline__
))
25939 vzip2q_s8 (int8x16_t __a
, int8x16_t __b
)
25941 #ifdef __AARCH64EB__
25942 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25943 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
25945 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25946 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
25950 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
25951 vzip2q_s16 (int16x8_t __a
, int16x8_t __b
)
25953 #ifdef __AARCH64EB__
25954 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 0, 9, 1, 10, 2, 11, 3});
25956 return __builtin_shuffle (__a
, __b
, (uint16x8_t
)
25957 {4, 12, 5, 13, 6, 14, 7, 15});
25961 __extension__
static __inline int32x4_t
__attribute__ ((__always_inline__
))
25962 vzip2q_s32 (int32x4_t __a
, int32x4_t __b
)
25964 #ifdef __AARCH64EB__
25965 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 0, 5, 1});
25967 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {2, 6, 3, 7});
25971 __extension__
static __inline int64x2_t
__attribute__ ((__always_inline__
))
25972 vzip2q_s64 (int64x2_t __a
, int64x2_t __b
)
25974 #ifdef __AARCH64EB__
25975 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
25977 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
25981 __extension__
static __inline uint8x16_t
__attribute__ ((__always_inline__
))
25982 vzip2q_u8 (uint8x16_t __a
, uint8x16_t __b
)
25984 #ifdef __AARCH64EB__
25985 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25986 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
25988 return __builtin_shuffle (__a
, __b
, (uint8x16_t
)
25989 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
25993 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
25994 vzip2q_u16 (uint16x8_t __a
, uint16x8_t __b
)
25996 #ifdef __AARCH64EB__
25997 return __builtin_shuffle (__a
, __b
, (uint16x8_t
) {8, 0, 9, 1, 10, 2, 11, 3});
25999 return __builtin_shuffle (__a
, __b
, (uint16x8_t
)
26000 {4, 12, 5, 13, 6, 14, 7, 15});
26004 __extension__
static __inline uint32x4_t
__attribute__ ((__always_inline__
))
26005 vzip2q_u32 (uint32x4_t __a
, uint32x4_t __b
)
26007 #ifdef __AARCH64EB__
26008 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {4, 0, 5, 1});
26010 return __builtin_shuffle (__a
, __b
, (uint32x4_t
) {2, 6, 3, 7});
26014 __extension__
static __inline uint64x2_t
__attribute__ ((__always_inline__
))
26015 vzip2q_u64 (uint64x2_t __a
, uint64x2_t __b
)
26017 #ifdef __AARCH64EB__
26018 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {2, 0});
26020 return __builtin_shuffle (__a
, __b
, (uint64x2_t
) {1, 3});
26024 __INTERLEAVE_LIST (zip
)
26026 #undef __INTERLEAVE_LIST
26027 #undef __DEFINTERLEAVE
26029 /* End of optimal implementations in approved order. */
26031 #pragma GCC pop_options
26033 /* ARMv8.2-A FP16 intrinsics. */
26035 #pragma GCC push_options
26036 #pragma GCC target ("arch=armv8.2-a+fp16")
26038 /* ARMv8.2-A FP16 one operand vector intrinsics. */
26040 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26041 vabs_f16 (float16x4_t __a
)
26043 return __builtin_aarch64_absv4hf (__a
);
26046 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26047 vabsq_f16 (float16x8_t __a
)
26049 return __builtin_aarch64_absv8hf (__a
);
26052 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26053 vceqz_f16 (float16x4_t __a
)
26055 return __builtin_aarch64_cmeqv4hf_uss (__a
, vdup_n_f16 (0.0f
));
26058 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26059 vceqzq_f16 (float16x8_t __a
)
26061 return __builtin_aarch64_cmeqv8hf_uss (__a
, vdupq_n_f16 (0.0f
));
26064 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26065 vcgez_f16 (float16x4_t __a
)
26067 return __builtin_aarch64_cmgev4hf_uss (__a
, vdup_n_f16 (0.0f
));
26070 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26071 vcgezq_f16 (float16x8_t __a
)
26073 return __builtin_aarch64_cmgev8hf_uss (__a
, vdupq_n_f16 (0.0f
));
26076 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26077 vcgtz_f16 (float16x4_t __a
)
26079 return __builtin_aarch64_cmgtv4hf_uss (__a
, vdup_n_f16 (0.0f
));
26082 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26083 vcgtzq_f16 (float16x8_t __a
)
26085 return __builtin_aarch64_cmgtv8hf_uss (__a
, vdupq_n_f16 (0.0f
));
26088 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26089 vclez_f16 (float16x4_t __a
)
26091 return __builtin_aarch64_cmlev4hf_uss (__a
, vdup_n_f16 (0.0f
));
26094 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26095 vclezq_f16 (float16x8_t __a
)
26097 return __builtin_aarch64_cmlev8hf_uss (__a
, vdupq_n_f16 (0.0f
));
26100 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26101 vcltz_f16 (float16x4_t __a
)
26103 return __builtin_aarch64_cmltv4hf_uss (__a
, vdup_n_f16 (0.0f
));
26106 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26107 vcltzq_f16 (float16x8_t __a
)
26109 return __builtin_aarch64_cmltv8hf_uss (__a
, vdupq_n_f16 (0.0f
));
26112 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26113 vcvt_f16_s16 (int16x4_t __a
)
26115 return __builtin_aarch64_floatv4hiv4hf (__a
);
26118 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26119 vcvtq_f16_s16 (int16x8_t __a
)
26121 return __builtin_aarch64_floatv8hiv8hf (__a
);
26124 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26125 vcvt_f16_u16 (uint16x4_t __a
)
26127 return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t
) __a
);
26130 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26131 vcvtq_f16_u16 (uint16x8_t __a
)
26133 return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t
) __a
);
26136 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
26137 vcvt_s16_f16 (float16x4_t __a
)
26139 return __builtin_aarch64_lbtruncv4hfv4hi (__a
);
26142 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
26143 vcvtq_s16_f16 (float16x8_t __a
)
26145 return __builtin_aarch64_lbtruncv8hfv8hi (__a
);
26148 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26149 vcvt_u16_f16 (float16x4_t __a
)
26151 return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a
);
26154 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26155 vcvtq_u16_f16 (float16x8_t __a
)
26157 return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a
);
26160 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
26161 vcvta_s16_f16 (float16x4_t __a
)
26163 return __builtin_aarch64_lroundv4hfv4hi (__a
);
26166 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
26167 vcvtaq_s16_f16 (float16x8_t __a
)
26169 return __builtin_aarch64_lroundv8hfv8hi (__a
);
26172 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26173 vcvta_u16_f16 (float16x4_t __a
)
26175 return __builtin_aarch64_lrounduv4hfv4hi_us (__a
);
26178 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26179 vcvtaq_u16_f16 (float16x8_t __a
)
26181 return __builtin_aarch64_lrounduv8hfv8hi_us (__a
);
26184 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
26185 vcvtm_s16_f16 (float16x4_t __a
)
26187 return __builtin_aarch64_lfloorv4hfv4hi (__a
);
26190 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
26191 vcvtmq_s16_f16 (float16x8_t __a
)
26193 return __builtin_aarch64_lfloorv8hfv8hi (__a
);
26196 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26197 vcvtm_u16_f16 (float16x4_t __a
)
26199 return __builtin_aarch64_lflooruv4hfv4hi_us (__a
);
26202 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26203 vcvtmq_u16_f16 (float16x8_t __a
)
26205 return __builtin_aarch64_lflooruv8hfv8hi_us (__a
);
26208 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
26209 vcvtn_s16_f16 (float16x4_t __a
)
26211 return __builtin_aarch64_lfrintnv4hfv4hi (__a
);
26214 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
26215 vcvtnq_s16_f16 (float16x8_t __a
)
26217 return __builtin_aarch64_lfrintnv8hfv8hi (__a
);
26220 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26221 vcvtn_u16_f16 (float16x4_t __a
)
26223 return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a
);
26226 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26227 vcvtnq_u16_f16 (float16x8_t __a
)
26229 return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a
);
26232 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
26233 vcvtp_s16_f16 (float16x4_t __a
)
26235 return __builtin_aarch64_lceilv4hfv4hi (__a
);
26238 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
26239 vcvtpq_s16_f16 (float16x8_t __a
)
26241 return __builtin_aarch64_lceilv8hfv8hi (__a
);
26244 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26245 vcvtp_u16_f16 (float16x4_t __a
)
26247 return __builtin_aarch64_lceiluv4hfv4hi_us (__a
);
26250 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26251 vcvtpq_u16_f16 (float16x8_t __a
)
26253 return __builtin_aarch64_lceiluv8hfv8hi_us (__a
);
26256 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26257 vneg_f16 (float16x4_t __a
)
26262 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26263 vnegq_f16 (float16x8_t __a
)
26268 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26269 vrecpe_f16 (float16x4_t __a
)
26271 return __builtin_aarch64_frecpev4hf (__a
);
26274 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26275 vrecpeq_f16 (float16x8_t __a
)
26277 return __builtin_aarch64_frecpev8hf (__a
);
26280 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26281 vrnd_f16 (float16x4_t __a
)
26283 return __builtin_aarch64_btruncv4hf (__a
);
26286 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26287 vrndq_f16 (float16x8_t __a
)
26289 return __builtin_aarch64_btruncv8hf (__a
);
26292 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26293 vrnda_f16 (float16x4_t __a
)
26295 return __builtin_aarch64_roundv4hf (__a
);
26298 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26299 vrndaq_f16 (float16x8_t __a
)
26301 return __builtin_aarch64_roundv8hf (__a
);
26304 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26305 vrndi_f16 (float16x4_t __a
)
26307 return __builtin_aarch64_nearbyintv4hf (__a
);
26310 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26311 vrndiq_f16 (float16x8_t __a
)
26313 return __builtin_aarch64_nearbyintv8hf (__a
);
26316 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26317 vrndm_f16 (float16x4_t __a
)
26319 return __builtin_aarch64_floorv4hf (__a
);
26322 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26323 vrndmq_f16 (float16x8_t __a
)
26325 return __builtin_aarch64_floorv8hf (__a
);
26328 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26329 vrndn_f16 (float16x4_t __a
)
26331 return __builtin_aarch64_frintnv4hf (__a
);
26334 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26335 vrndnq_f16 (float16x8_t __a
)
26337 return __builtin_aarch64_frintnv8hf (__a
);
26340 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26341 vrndp_f16 (float16x4_t __a
)
26343 return __builtin_aarch64_ceilv4hf (__a
);
26346 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26347 vrndpq_f16 (float16x8_t __a
)
26349 return __builtin_aarch64_ceilv8hf (__a
);
26352 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26353 vrndx_f16 (float16x4_t __a
)
26355 return __builtin_aarch64_rintv4hf (__a
);
26358 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26359 vrndxq_f16 (float16x8_t __a
)
26361 return __builtin_aarch64_rintv8hf (__a
);
26364 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26365 vrsqrte_f16 (float16x4_t a
)
26367 return __builtin_aarch64_rsqrtev4hf (a
);
26370 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26371 vrsqrteq_f16 (float16x8_t a
)
26373 return __builtin_aarch64_rsqrtev8hf (a
);
26376 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26377 vsqrt_f16 (float16x4_t a
)
26379 return __builtin_aarch64_sqrtv4hf (a
);
26382 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26383 vsqrtq_f16 (float16x8_t a
)
26385 return __builtin_aarch64_sqrtv8hf (a
);
26388 /* ARMv8.2-A FP16 two operands vector intrinsics. */
26390 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26391 vadd_f16 (float16x4_t __a
, float16x4_t __b
)
26396 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26397 vaddq_f16 (float16x8_t __a
, float16x8_t __b
)
26402 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26403 vabd_f16 (float16x4_t a
, float16x4_t b
)
26405 return __builtin_aarch64_fabdv4hf (a
, b
);
26408 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26409 vabdq_f16 (float16x8_t a
, float16x8_t b
)
26411 return __builtin_aarch64_fabdv8hf (a
, b
);
26414 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26415 vcage_f16 (float16x4_t __a
, float16x4_t __b
)
26417 return __builtin_aarch64_facgev4hf_uss (__a
, __b
);
26420 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26421 vcageq_f16 (float16x8_t __a
, float16x8_t __b
)
26423 return __builtin_aarch64_facgev8hf_uss (__a
, __b
);
26426 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26427 vcagt_f16 (float16x4_t __a
, float16x4_t __b
)
26429 return __builtin_aarch64_facgtv4hf_uss (__a
, __b
);
26432 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26433 vcagtq_f16 (float16x8_t __a
, float16x8_t __b
)
26435 return __builtin_aarch64_facgtv8hf_uss (__a
, __b
);
26438 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26439 vcale_f16 (float16x4_t __a
, float16x4_t __b
)
26441 return __builtin_aarch64_faclev4hf_uss (__a
, __b
);
26444 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26445 vcaleq_f16 (float16x8_t __a
, float16x8_t __b
)
26447 return __builtin_aarch64_faclev8hf_uss (__a
, __b
);
26450 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26451 vcalt_f16 (float16x4_t __a
, float16x4_t __b
)
26453 return __builtin_aarch64_facltv4hf_uss (__a
, __b
);
26456 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26457 vcaltq_f16 (float16x8_t __a
, float16x8_t __b
)
26459 return __builtin_aarch64_facltv8hf_uss (__a
, __b
);
26462 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26463 vceq_f16 (float16x4_t __a
, float16x4_t __b
)
26465 return __builtin_aarch64_cmeqv4hf_uss (__a
, __b
);
26468 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26469 vceqq_f16 (float16x8_t __a
, float16x8_t __b
)
26471 return __builtin_aarch64_cmeqv8hf_uss (__a
, __b
);
26474 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26475 vcge_f16 (float16x4_t __a
, float16x4_t __b
)
26477 return __builtin_aarch64_cmgev4hf_uss (__a
, __b
);
26480 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26481 vcgeq_f16 (float16x8_t __a
, float16x8_t __b
)
26483 return __builtin_aarch64_cmgev8hf_uss (__a
, __b
);
26486 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26487 vcgt_f16 (float16x4_t __a
, float16x4_t __b
)
26489 return __builtin_aarch64_cmgtv4hf_uss (__a
, __b
);
26492 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26493 vcgtq_f16 (float16x8_t __a
, float16x8_t __b
)
26495 return __builtin_aarch64_cmgtv8hf_uss (__a
, __b
);
26498 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26499 vcle_f16 (float16x4_t __a
, float16x4_t __b
)
26501 return __builtin_aarch64_cmlev4hf_uss (__a
, __b
);
26504 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26505 vcleq_f16 (float16x8_t __a
, float16x8_t __b
)
26507 return __builtin_aarch64_cmlev8hf_uss (__a
, __b
);
26510 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26511 vclt_f16 (float16x4_t __a
, float16x4_t __b
)
26513 return __builtin_aarch64_cmltv4hf_uss (__a
, __b
);
26516 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26517 vcltq_f16 (float16x8_t __a
, float16x8_t __b
)
26519 return __builtin_aarch64_cmltv8hf_uss (__a
, __b
);
26522 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26523 vcvt_n_f16_s16 (int16x4_t __a
, const int __b
)
26525 return __builtin_aarch64_scvtfv4hi (__a
, __b
);
26528 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26529 vcvtq_n_f16_s16 (int16x8_t __a
, const int __b
)
26531 return __builtin_aarch64_scvtfv8hi (__a
, __b
);
26534 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26535 vcvt_n_f16_u16 (uint16x4_t __a
, const int __b
)
26537 return __builtin_aarch64_ucvtfv4hi_sus (__a
, __b
);
26540 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26541 vcvtq_n_f16_u16 (uint16x8_t __a
, const int __b
)
26543 return __builtin_aarch64_ucvtfv8hi_sus (__a
, __b
);
26546 __extension__
static __inline int16x4_t
__attribute__ ((__always_inline__
))
26547 vcvt_n_s16_f16 (float16x4_t __a
, const int __b
)
26549 return __builtin_aarch64_fcvtzsv4hf (__a
, __b
);
26552 __extension__
static __inline int16x8_t
__attribute__ ((__always_inline__
))
26553 vcvtq_n_s16_f16 (float16x8_t __a
, const int __b
)
26555 return __builtin_aarch64_fcvtzsv8hf (__a
, __b
);
26558 __extension__
static __inline uint16x4_t
__attribute__ ((__always_inline__
))
26559 vcvt_n_u16_f16 (float16x4_t __a
, const int __b
)
26561 return __builtin_aarch64_fcvtzuv4hf_uss (__a
, __b
);
26564 __extension__
static __inline uint16x8_t
__attribute__ ((__always_inline__
))
26565 vcvtq_n_u16_f16 (float16x8_t __a
, const int __b
)
26567 return __builtin_aarch64_fcvtzuv8hf_uss (__a
, __b
);
26570 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26571 vdiv_f16 (float16x4_t __a
, float16x4_t __b
)
26576 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26577 vdivq_f16 (float16x8_t __a
, float16x8_t __b
)
26582 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26583 vmax_f16 (float16x4_t __a
, float16x4_t __b
)
26585 return __builtin_aarch64_smax_nanv4hf (__a
, __b
);
26588 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26589 vmaxq_f16 (float16x8_t __a
, float16x8_t __b
)
26591 return __builtin_aarch64_smax_nanv8hf (__a
, __b
);
26594 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26595 vmaxnm_f16 (float16x4_t __a
, float16x4_t __b
)
26597 return __builtin_aarch64_fmaxv4hf (__a
, __b
);
26600 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26601 vmaxnmq_f16 (float16x8_t __a
, float16x8_t __b
)
26603 return __builtin_aarch64_fmaxv8hf (__a
, __b
);
26606 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26607 vmin_f16 (float16x4_t __a
, float16x4_t __b
)
26609 return __builtin_aarch64_smin_nanv4hf (__a
, __b
);
26612 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26613 vminq_f16 (float16x8_t __a
, float16x8_t __b
)
26615 return __builtin_aarch64_smin_nanv8hf (__a
, __b
);
26618 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26619 vminnm_f16 (float16x4_t __a
, float16x4_t __b
)
26621 return __builtin_aarch64_fminv4hf (__a
, __b
);
26624 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26625 vminnmq_f16 (float16x8_t __a
, float16x8_t __b
)
26627 return __builtin_aarch64_fminv8hf (__a
, __b
);
26630 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26631 vmul_f16 (float16x4_t __a
, float16x4_t __b
)
26636 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26637 vmulq_f16 (float16x8_t __a
, float16x8_t __b
)
26642 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26643 vmulx_f16 (float16x4_t __a
, float16x4_t __b
)
26645 return __builtin_aarch64_fmulxv4hf (__a
, __b
);
26648 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26649 vmulxq_f16 (float16x8_t __a
, float16x8_t __b
)
26651 return __builtin_aarch64_fmulxv8hf (__a
, __b
);
26654 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26655 vpadd_f16 (float16x4_t a
, float16x4_t b
)
26657 return __builtin_aarch64_faddpv4hf (a
, b
);
26660 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26661 vpaddq_f16 (float16x8_t a
, float16x8_t b
)
26663 return __builtin_aarch64_faddpv8hf (a
, b
);
26666 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26667 vpmax_f16 (float16x4_t a
, float16x4_t b
)
26669 return __builtin_aarch64_smax_nanpv4hf (a
, b
);
26672 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26673 vpmaxq_f16 (float16x8_t a
, float16x8_t b
)
26675 return __builtin_aarch64_smax_nanpv8hf (a
, b
);
26678 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26679 vpmaxnm_f16 (float16x4_t a
, float16x4_t b
)
26681 return __builtin_aarch64_smaxpv4hf (a
, b
);
26684 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26685 vpmaxnmq_f16 (float16x8_t a
, float16x8_t b
)
26687 return __builtin_aarch64_smaxpv8hf (a
, b
);
26690 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26691 vpmin_f16 (float16x4_t a
, float16x4_t b
)
26693 return __builtin_aarch64_smin_nanpv4hf (a
, b
);
26696 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26697 vpminq_f16 (float16x8_t a
, float16x8_t b
)
26699 return __builtin_aarch64_smin_nanpv8hf (a
, b
);
26702 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26703 vpminnm_f16 (float16x4_t a
, float16x4_t b
)
26705 return __builtin_aarch64_sminpv4hf (a
, b
);
26708 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26709 vpminnmq_f16 (float16x8_t a
, float16x8_t b
)
26711 return __builtin_aarch64_sminpv8hf (a
, b
);
26714 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26715 vrecps_f16 (float16x4_t __a
, float16x4_t __b
)
26717 return __builtin_aarch64_frecpsv4hf (__a
, __b
);
26720 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26721 vrecpsq_f16 (float16x8_t __a
, float16x8_t __b
)
26723 return __builtin_aarch64_frecpsv8hf (__a
, __b
);
26726 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26727 vrsqrts_f16 (float16x4_t a
, float16x4_t b
)
26729 return __builtin_aarch64_rsqrtsv4hf (a
, b
);
26732 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26733 vrsqrtsq_f16 (float16x8_t a
, float16x8_t b
)
26735 return __builtin_aarch64_rsqrtsv8hf (a
, b
);
26738 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26739 vsub_f16 (float16x4_t __a
, float16x4_t __b
)
26744 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26745 vsubq_f16 (float16x8_t __a
, float16x8_t __b
)
26750 /* ARMv8.2-A FP16 three operands vector intrinsics. */
26752 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26753 vfma_f16 (float16x4_t __a
, float16x4_t __b
, float16x4_t __c
)
26755 return __builtin_aarch64_fmav4hf (__b
, __c
, __a
);
26758 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26759 vfmaq_f16 (float16x8_t __a
, float16x8_t __b
, float16x8_t __c
)
26761 return __builtin_aarch64_fmav8hf (__b
, __c
, __a
);
26764 __extension__
static __inline float16x4_t
__attribute__ ((__always_inline__
))
26765 vfms_f16 (float16x4_t __a
, float16x4_t __b
, float16x4_t __c
)
26767 return __builtin_aarch64_fnmav4hf (__b
, __c
, __a
);
26770 __extension__
static __inline float16x8_t
__attribute__ ((__always_inline__
))
26771 vfmsq_f16 (float16x8_t __a
, float16x8_t __b
, float16x8_t __c
)
26773 return __builtin_aarch64_fnmav8hf (__b
, __c
, __a
);
26776 #pragma GCC pop_options
26778 #undef __aarch64_vget_lane_any
26780 #undef __aarch64_vdup_lane_any
26781 #undef __aarch64_vdup_lane_f16
26782 #undef __aarch64_vdup_lane_f32
26783 #undef __aarch64_vdup_lane_f64
26784 #undef __aarch64_vdup_lane_p8
26785 #undef __aarch64_vdup_lane_p16
26786 #undef __aarch64_vdup_lane_s8
26787 #undef __aarch64_vdup_lane_s16
26788 #undef __aarch64_vdup_lane_s32
26789 #undef __aarch64_vdup_lane_s64
26790 #undef __aarch64_vdup_lane_u8
26791 #undef __aarch64_vdup_lane_u16
26792 #undef __aarch64_vdup_lane_u32
26793 #undef __aarch64_vdup_lane_u64
26794 #undef __aarch64_vdup_laneq_f16
26795 #undef __aarch64_vdup_laneq_f32
26796 #undef __aarch64_vdup_laneq_f64
26797 #undef __aarch64_vdup_laneq_p8
26798 #undef __aarch64_vdup_laneq_p16
26799 #undef __aarch64_vdup_laneq_s8
26800 #undef __aarch64_vdup_laneq_s16
26801 #undef __aarch64_vdup_laneq_s32
26802 #undef __aarch64_vdup_laneq_s64
26803 #undef __aarch64_vdup_laneq_u8
26804 #undef __aarch64_vdup_laneq_u16
26805 #undef __aarch64_vdup_laneq_u32
26806 #undef __aarch64_vdup_laneq_u64
26807 #undef __aarch64_vdupq_lane_f16
26808 #undef __aarch64_vdupq_lane_f32
26809 #undef __aarch64_vdupq_lane_f64
26810 #undef __aarch64_vdupq_lane_p8
26811 #undef __aarch64_vdupq_lane_p16
26812 #undef __aarch64_vdupq_lane_s8
26813 #undef __aarch64_vdupq_lane_s16
26814 #undef __aarch64_vdupq_lane_s32
26815 #undef __aarch64_vdupq_lane_s64
26816 #undef __aarch64_vdupq_lane_u8
26817 #undef __aarch64_vdupq_lane_u16
26818 #undef __aarch64_vdupq_lane_u32
26819 #undef __aarch64_vdupq_lane_u64
26820 #undef __aarch64_vdupq_laneq_f16
26821 #undef __aarch64_vdupq_laneq_f32
26822 #undef __aarch64_vdupq_laneq_f64
26823 #undef __aarch64_vdupq_laneq_p8
26824 #undef __aarch64_vdupq_laneq_p16
26825 #undef __aarch64_vdupq_laneq_s8
26826 #undef __aarch64_vdupq_laneq_s16
26827 #undef __aarch64_vdupq_laneq_s32
26828 #undef __aarch64_vdupq_laneq_s64
26829 #undef __aarch64_vdupq_laneq_u8
26830 #undef __aarch64_vdupq_laneq_u16
26831 #undef __aarch64_vdupq_laneq_u32
26832 #undef __aarch64_vdupq_laneq_u64