diff options
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/aarch64/aarch64-simd-builtins.def | 3 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-simd.md | 15 | ||||
-rw-r--r-- | gcc/config/aarch64/arm_neon.h | 443 |
3 files changed, 178 insertions, 283 deletions
diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def index 9f479e8b07f..16fdb5a59e0 100644 --- a/gcc/config/aarch64/aarch64-simd-builtins.def +++ b/gcc/config/aarch64/aarch64-simd-builtins.def @@ -49,9 +49,6 @@ BUILTIN_VS (UNOP, ctz, 2) BUILTIN_VB (UNOP, popcount, 2) - /* be_checked_get_lane does its own lane swapping, so not a lane index. */ - BUILTIN_VALL (GETREG, be_checked_get_lane, 0) - /* Implemented by aarch64_<sur>q<r>shl<mode>. */ BUILTIN_VSDQ_I (BINOP, sqshl, 0) BUILTIN_VSDQ_I (BINOP_UUS, uqshl, 0) diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index 49a2e888ae7..78c9df0d27c 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -2438,22 +2438,9 @@ [(set_attr "type" "neon_to_gp<q>")] ) -(define_expand "aarch64_be_checked_get_lane<mode>" - [(match_operand:<VEL> 0 "aarch64_simd_nonimmediate_operand") - (match_operand:VALL 1 "register_operand") - (match_operand:SI 2 "immediate_operand")] - "TARGET_SIMD" - { - operands[2] = GEN_INT (ENDIAN_LANE_N (<MODE>mode, INTVAL (operands[2]))); - emit_insn (gen_aarch64_get_lane<mode> (operands[0], - operands[1], - operands[2])); - DONE; - } -) - ;; Lane extraction of a value, neither sign nor zero extension ;; is guaranteed so upper bits should be considered undefined. +;; RTL uses GCC vector extension indices throughout so flip only for assembly. (define_insn "aarch64_get_lane<mode>" [(set (match_operand:<VEL> 0 "aarch64_simd_nonimmediate_operand" "=r, w, Utv") (vec_select:<VEL> diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index d4d4ee973ef..319cd8c1a0a 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -426,183 +426,112 @@ typedef struct poly16x8x4_t poly16x8_t val[4]; } poly16x8x4_t; -/* vget_lane internal macros. */ - -#define __aarch64_vget_lane_any(__size, __cast_ret, __cast_a, __a, __b) \ - (__cast_ret \ - __builtin_aarch64_be_checked_get_lane##__size (__cast_a __a, __b)) - -#define __aarch64_vget_lane_f32(__a, __b) \ - __aarch64_vget_lane_any (v2sf, , , __a, __b) -#define __aarch64_vget_lane_f64(__a, __b) __extension__ \ - ({ \ - __AARCH64_LANE_CHECK (__a, __b); \ - __a[0]; \ - }) - -#define __aarch64_vget_lane_p8(__a, __b) \ - __aarch64_vget_lane_any (v8qi, (poly8_t), (int8x8_t), __a, __b) -#define __aarch64_vget_lane_p16(__a, __b) \ - __aarch64_vget_lane_any (v4hi, (poly16_t), (int16x4_t), __a, __b) - -#define __aarch64_vget_lane_s8(__a, __b) \ - __aarch64_vget_lane_any (v8qi, , ,__a, __b) -#define __aarch64_vget_lane_s16(__a, __b) \ - __aarch64_vget_lane_any (v4hi, , ,__a, __b) -#define __aarch64_vget_lane_s32(__a, __b) \ - __aarch64_vget_lane_any (v2si, , ,__a, __b) -#define __aarch64_vget_lane_s64(__a, __b) __extension__ \ - ({ \ - __AARCH64_LANE_CHECK (__a, __b); \ - __a[0]; \ - }) - -#define __aarch64_vget_lane_u8(__a, __b) \ - __aarch64_vget_lane_any (v8qi, (uint8_t), (int8x8_t), __a, __b) -#define __aarch64_vget_lane_u16(__a, __b) \ - __aarch64_vget_lane_any (v4hi, (uint16_t), (int16x4_t), __a, __b) -#define __aarch64_vget_lane_u32(__a, __b) \ - __aarch64_vget_lane_any (v2si, (uint32_t), (int32x2_t), __a, __b) -#define __aarch64_vget_lane_u64(__a, __b) __extension__ \ - ({ \ - __AARCH64_LANE_CHECK (__a, __b); \ - __a[0]; \ - }) - -#define __aarch64_vgetq_lane_f32(__a, __b) \ - __aarch64_vget_lane_any (v4sf, , , __a, __b) -#define __aarch64_vgetq_lane_f64(__a, __b) \ - __aarch64_vget_lane_any (v2df, , , __a, __b) - -#define __aarch64_vgetq_lane_p8(__a, __b) \ - __aarch64_vget_lane_any (v16qi, (poly8_t), (int8x16_t), __a, __b) -#define __aarch64_vgetq_lane_p16(__a, __b) \ - __aarch64_vget_lane_any (v8hi, (poly16_t), (int16x8_t), __a, __b) - -#define __aarch64_vgetq_lane_s8(__a, __b) \ - __aarch64_vget_lane_any (v16qi, , ,__a, __b) -#define __aarch64_vgetq_lane_s16(__a, __b) \ - __aarch64_vget_lane_any (v8hi, , ,__a, __b) -#define __aarch64_vgetq_lane_s32(__a, __b) \ - __aarch64_vget_lane_any (v4si, , ,__a, __b) -#define __aarch64_vgetq_lane_s64(__a, __b) \ - __aarch64_vget_lane_any (v2di, , ,__a, __b) - -#define __aarch64_vgetq_lane_u8(__a, __b) \ - __aarch64_vget_lane_any (v16qi, (uint8_t), (int8x16_t), __a, __b) -#define __aarch64_vgetq_lane_u16(__a, __b) \ - __aarch64_vget_lane_any (v8hi, (uint16_t), (int16x8_t), __a, __b) -#define __aarch64_vgetq_lane_u32(__a, __b) \ - __aarch64_vget_lane_any (v4si, (uint32_t), (int32x4_t), __a, __b) -#define __aarch64_vgetq_lane_u64(__a, __b) \ - __aarch64_vget_lane_any (v2di, (uint64_t), (int64x2_t), __a, __b) - /* __aarch64_vdup_lane internal macros. */ -#define __aarch64_vdup_lane_any(__size, __q1, __q2, __a, __b) \ - vdup##__q1##_n_##__size (__aarch64_vget##__q2##_lane_##__size (__a, __b)) +#define __aarch64_vdup_lane_any(__size, __q, __a, __b) \ + vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b)) #define __aarch64_vdup_lane_f32(__a, __b) \ - __aarch64_vdup_lane_any (f32, , , __a, __b) + __aarch64_vdup_lane_any (f32, , __a, __b) #define __aarch64_vdup_lane_f64(__a, __b) \ - __aarch64_vdup_lane_any (f64, , , __a, __b) + __aarch64_vdup_lane_any (f64, , __a, __b) #define __aarch64_vdup_lane_p8(__a, __b) \ - __aarch64_vdup_lane_any (p8, , , __a, __b) + __aarch64_vdup_lane_any (p8, , __a, __b) #define __aarch64_vdup_lane_p16(__a, __b) \ - __aarch64_vdup_lane_any (p16, , , __a, __b) + __aarch64_vdup_lane_any (p16, , __a, __b) #define __aarch64_vdup_lane_s8(__a, __b) \ - __aarch64_vdup_lane_any (s8, , , __a, __b) + __aarch64_vdup_lane_any (s8, , __a, __b) #define __aarch64_vdup_lane_s16(__a, __b) \ - __aarch64_vdup_lane_any (s16, , , __a, __b) + __aarch64_vdup_lane_any (s16, , __a, __b) #define __aarch64_vdup_lane_s32(__a, __b) \ - __aarch64_vdup_lane_any (s32, , , __a, __b) + __aarch64_vdup_lane_any (s32, , __a, __b) #define __aarch64_vdup_lane_s64(__a, __b) \ - __aarch64_vdup_lane_any (s64, , , __a, __b) + __aarch64_vdup_lane_any (s64, , __a, __b) #define __aarch64_vdup_lane_u8(__a, __b) \ - __aarch64_vdup_lane_any (u8, , , __a, __b) + __aarch64_vdup_lane_any (u8, , __a, __b) #define __aarch64_vdup_lane_u16(__a, __b) \ - __aarch64_vdup_lane_any (u16, , , __a, __b) + __aarch64_vdup_lane_any (u16, , __a, __b) #define __aarch64_vdup_lane_u32(__a, __b) \ - __aarch64_vdup_lane_any (u32, , , __a, __b) + __aarch64_vdup_lane_any (u32, , __a, __b) #define __aarch64_vdup_lane_u64(__a, __b) \ - __aarch64_vdup_lane_any (u64, , , __a, __b) + __aarch64_vdup_lane_any (u64, , __a, __b) /* __aarch64_vdup_laneq internal macros. */ #define __aarch64_vdup_laneq_f32(__a, __b) \ - __aarch64_vdup_lane_any (f32, , q, __a, __b) + __aarch64_vdup_lane_any (f32, , __a, __b) #define __aarch64_vdup_laneq_f64(__a, __b) \ - __aarch64_vdup_lane_any (f64, , q, __a, __b) + __aarch64_vdup_lane_any (f64, , __a, __b) #define __aarch64_vdup_laneq_p8(__a, __b) \ - __aarch64_vdup_lane_any (p8, , q, __a, __b) + __aarch64_vdup_lane_any (p8, , __a, __b) #define __aarch64_vdup_laneq_p16(__a, __b) \ - __aarch64_vdup_lane_any (p16, , q, __a, __b) + __aarch64_vdup_lane_any (p16, , __a, __b) #define __aarch64_vdup_laneq_s8(__a, __b) \ - __aarch64_vdup_lane_any (s8, , q, __a, __b) + __aarch64_vdup_lane_any (s8, , __a, __b) #define __aarch64_vdup_laneq_s16(__a, __b) \ - __aarch64_vdup_lane_any (s16, , q, __a, __b) + __aarch64_vdup_lane_any (s16, , __a, __b) #define __aarch64_vdup_laneq_s32(__a, __b) \ - __aarch64_vdup_lane_any (s32, , q, __a, __b) + __aarch64_vdup_lane_any (s32, , __a, __b) #define __aarch64_vdup_laneq_s64(__a, __b) \ - __aarch64_vdup_lane_any (s64, , q, __a, __b) + __aarch64_vdup_lane_any (s64, , __a, __b) #define __aarch64_vdup_laneq_u8(__a, __b) \ - __aarch64_vdup_lane_any (u8, , q, __a, __b) + __aarch64_vdup_lane_any (u8, , __a, __b) #define __aarch64_vdup_laneq_u16(__a, __b) \ - __aarch64_vdup_lane_any (u16, , q, __a, __b) + __aarch64_vdup_lane_any (u16, , __a, __b) #define __aarch64_vdup_laneq_u32(__a, __b) \ - __aarch64_vdup_lane_any (u32, , q, __a, __b) + __aarch64_vdup_lane_any (u32, , __a, __b) #define __aarch64_vdup_laneq_u64(__a, __b) \ - __aarch64_vdup_lane_any (u64, , q, __a, __b) + __aarch64_vdup_lane_any (u64, , __a, __b) /* __aarch64_vdupq_lane internal macros. */ #define __aarch64_vdupq_lane_f32(__a, __b) \ - __aarch64_vdup_lane_any (f32, q, , __a, __b) + __aarch64_vdup_lane_any (f32, q, __a, __b) #define __aarch64_vdupq_lane_f64(__a, __b) \ - __aarch64_vdup_lane_any (f64, q, , __a, __b) + __aarch64_vdup_lane_any (f64, q, __a, __b) #define __aarch64_vdupq_lane_p8(__a, __b) \ - __aarch64_vdup_lane_any (p8, q, , __a, __b) + __aarch64_vdup_lane_any (p8, q, __a, __b) #define __aarch64_vdupq_lane_p16(__a, __b) \ - __aarch64_vdup_lane_any (p16, q, , __a, __b) + __aarch64_vdup_lane_any (p16, q, __a, __b) #define __aarch64_vdupq_lane_s8(__a, __b) \ - __aarch64_vdup_lane_any (s8, q, , __a, __b) + __aarch64_vdup_lane_any (s8, q, __a, __b) #define __aarch64_vdupq_lane_s16(__a, __b) \ - __aarch64_vdup_lane_any (s16, q, , __a, __b) + __aarch64_vdup_lane_any (s16, q, __a, __b) #define __aarch64_vdupq_lane_s32(__a, __b) \ - __aarch64_vdup_lane_any (s32, q, , __a, __b) + __aarch64_vdup_lane_any (s32, q, __a, __b) #define __aarch64_vdupq_lane_s64(__a, __b) \ - __aarch64_vdup_lane_any (s64, q, , __a, __b) + __aarch64_vdup_lane_any (s64, q, __a, __b) #define __aarch64_vdupq_lane_u8(__a, __b) \ - __aarch64_vdup_lane_any (u8, q, , __a, __b) + __aarch64_vdup_lane_any (u8, q, __a, __b) #define __aarch64_vdupq_lane_u16(__a, __b) \ - __aarch64_vdup_lane_any (u16, q, , __a, __b) + __aarch64_vdup_lane_any (u16, q, __a, __b) #define __aarch64_vdupq_lane_u32(__a, __b) \ - __aarch64_vdup_lane_any (u32, q, , __a, __b) + __aarch64_vdup_lane_any (u32, q, __a, __b) #define __aarch64_vdupq_lane_u64(__a, __b) \ - __aarch64_vdup_lane_any (u64, q, , __a, __b) + __aarch64_vdup_lane_any (u64, q, __a, __b) /* __aarch64_vdupq_laneq internal macros. */ #define __aarch64_vdupq_laneq_f32(__a, __b) \ - __aarch64_vdup_lane_any (f32, q, q, __a, __b) + __aarch64_vdup_lane_any (f32, q, __a, __b) #define __aarch64_vdupq_laneq_f64(__a, __b) \ - __aarch64_vdup_lane_any (f64, q, q, __a, __b) + __aarch64_vdup_lane_any (f64, q, __a, __b) #define __aarch64_vdupq_laneq_p8(__a, __b) \ - __aarch64_vdup_lane_any (p8, q, q, __a, __b) + __aarch64_vdup_lane_any (p8, q, __a, __b) #define __aarch64_vdupq_laneq_p16(__a, __b) \ - __aarch64_vdup_lane_any (p16, q, q, __a, __b) + __aarch64_vdup_lane_any (p16, q, __a, __b) #define __aarch64_vdupq_laneq_s8(__a, __b) \ - __aarch64_vdup_lane_any (s8, q, q, __a, __b) + __aarch64_vdup_lane_any (s8, q, __a, __b) #define __aarch64_vdupq_laneq_s16(__a, __b) \ - __aarch64_vdup_lane_any (s16, q, q, __a, __b) + __aarch64_vdup_lane_any (s16, q, __a, __b) #define __aarch64_vdupq_laneq_s32(__a, __b) \ - __aarch64_vdup_lane_any (s32, q, q, __a, __b) + __aarch64_vdup_lane_any (s32, q, __a, __b) #define __aarch64_vdupq_laneq_s64(__a, __b) \ - __aarch64_vdup_lane_any (s64, q, q, __a, __b) + __aarch64_vdup_lane_any (s64, q, __a, __b) #define __aarch64_vdupq_laneq_u8(__a, __b) \ - __aarch64_vdup_lane_any (u8, q, q, __a, __b) + __aarch64_vdup_lane_any (u8, q, __a, __b) #define __aarch64_vdupq_laneq_u16(__a, __b) \ - __aarch64_vdup_lane_any (u16, q, q, __a, __b) + __aarch64_vdup_lane_any (u16, q, __a, __b) #define __aarch64_vdupq_laneq_u32(__a, __b) \ - __aarch64_vdup_lane_any (u32, q, q, __a, __b) + __aarch64_vdup_lane_any (u32, q, __a, __b) #define __aarch64_vdupq_laneq_u64(__a, __b) \ - __aarch64_vdup_lane_any (u64, q, q, __a, __b) + __aarch64_vdup_lane_any (u64, q, __a, __b) /* Internal macro for lane indices. */ @@ -618,8 +547,15 @@ typedef struct poly16x8x4_t #define __aarch64_lane(__vec, __idx) __idx #endif -/* vset_lane and vld1_lane internal macro. */ +/* vget_lane internal macro. */ +#define __aarch64_vget_lane_any(__vec, __index) \ + __extension__ \ + ({ \ + __AARCH64_LANE_CHECK (__vec, __index); \ + __vec[__aarch64_lane (__vec, __index)]; \ + }) +/* vset_lane and vld1_lane internal macro. */ #define __aarch64_vset_lane_any(__elem, __vec, __index) \ __extension__ \ ({ \ @@ -2754,73 +2690,73 @@ vcreate_p16 (uint64_t __a) __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vget_lane_f32 (float32x2_t __a, const int __b) { - return __aarch64_vget_lane_f32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline float64_t __attribute__ ((__always_inline__)) vget_lane_f64 (float64x1_t __a, const int __b) { - return __aarch64_vget_lane_f64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline poly8_t __attribute__ ((__always_inline__)) vget_lane_p8 (poly8x8_t __a, const int __b) { - return __aarch64_vget_lane_p8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline poly16_t __attribute__ ((__always_inline__)) vget_lane_p16 (poly16x4_t __a, const int __b) { - return __aarch64_vget_lane_p16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int8_t __attribute__ ((__always_inline__)) vget_lane_s8 (int8x8_t __a, const int __b) { - return __aarch64_vget_lane_s8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int16_t __attribute__ ((__always_inline__)) vget_lane_s16 (int16x4_t __a, const int __b) { - return __aarch64_vget_lane_s16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int32_t __attribute__ ((__always_inline__)) vget_lane_s32 (int32x2_t __a, const int __b) { - return __aarch64_vget_lane_s32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int64_t __attribute__ ((__always_inline__)) vget_lane_s64 (int64x1_t __a, const int __b) { - return __aarch64_vget_lane_s64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint8_t __attribute__ ((__always_inline__)) vget_lane_u8 (uint8x8_t __a, const int __b) { - return __aarch64_vget_lane_u8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint16_t __attribute__ ((__always_inline__)) vget_lane_u16 (uint16x4_t __a, const int __b) { - return __aarch64_vget_lane_u16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) vget_lane_u32 (uint32x2_t __a, const int __b) { - return __aarch64_vget_lane_u32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) vget_lane_u64 (uint64x1_t __a, const int __b) { - return __aarch64_vget_lane_u64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vgetq_lane */ @@ -2828,73 +2764,73 @@ vget_lane_u64 (uint64x1_t __a, const int __b) __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vgetq_lane_f32 (float32x4_t __a, const int __b) { - return __aarch64_vgetq_lane_f32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline float64_t __attribute__ ((__always_inline__)) vgetq_lane_f64 (float64x2_t __a, const int __b) { - return __aarch64_vgetq_lane_f64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline poly8_t __attribute__ ((__always_inline__)) vgetq_lane_p8 (poly8x16_t __a, const int __b) { - return __aarch64_vgetq_lane_p8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline poly16_t __attribute__ ((__always_inline__)) vgetq_lane_p16 (poly16x8_t __a, const int __b) { - return __aarch64_vgetq_lane_p16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int8_t __attribute__ ((__always_inline__)) vgetq_lane_s8 (int8x16_t __a, const int __b) { - return __aarch64_vgetq_lane_s8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int16_t __attribute__ ((__always_inline__)) vgetq_lane_s16 (int16x8_t __a, const int __b) { - return __aarch64_vgetq_lane_s16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int32_t __attribute__ ((__always_inline__)) vgetq_lane_s32 (int32x4_t __a, const int __b) { - return __aarch64_vgetq_lane_s32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int64_t __attribute__ ((__always_inline__)) vgetq_lane_s64 (int64x2_t __a, const int __b) { - return __aarch64_vgetq_lane_s64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint8_t __attribute__ ((__always_inline__)) vgetq_lane_u8 (uint8x16_t __a, const int __b) { - return __aarch64_vgetq_lane_u8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint16_t __attribute__ ((__always_inline__)) vgetq_lane_u16 (uint16x8_t __a, const int __b) { - return __aarch64_vgetq_lane_u16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) vgetq_lane_u32 (uint32x4_t __a, const int __b) { - return __aarch64_vgetq_lane_u32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) vgetq_lane_u64 (uint64x2_t __a, const int __b) { - return __aarch64_vgetq_lane_u64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vreinterpret */ @@ -14708,57 +14644,57 @@ vdupq_laneq_u64 (uint64x2_t __a, const int __b) __extension__ static __inline poly8_t __attribute__ ((__always_inline__)) vdupb_lane_p8 (poly8x8_t __a, const int __b) { - return __aarch64_vget_lane_p8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int8_t __attribute__ ((__always_inline__)) vdupb_lane_s8 (int8x8_t __a, const int __b) { - return __aarch64_vget_lane_s8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint8_t __attribute__ ((__always_inline__)) vdupb_lane_u8 (uint8x8_t __a, const int __b) { - return __aarch64_vget_lane_u8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vduph_lane */ __extension__ static __inline poly16_t __attribute__ ((__always_inline__)) vduph_lane_p16 (poly16x4_t __a, const int __b) { - return __aarch64_vget_lane_p16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int16_t __attribute__ ((__always_inline__)) vduph_lane_s16 (int16x4_t __a, const int __b) { - return __aarch64_vget_lane_s16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint16_t __attribute__ ((__always_inline__)) vduph_lane_u16 (uint16x4_t __a, const int __b) { - return __aarch64_vget_lane_u16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vdups_lane */ __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vdups_lane_f32 (float32x2_t __a, const int __b) { - return __aarch64_vget_lane_f32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int32_t __attribute__ ((__always_inline__)) vdups_lane_s32 (int32x2_t __a, const int __b) { - return __aarch64_vget_lane_s32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) vdups_lane_u32 (uint32x2_t __a, const int __b) { - return __aarch64_vget_lane_u32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vdupd_lane */ @@ -14787,76 +14723,76 @@ vdupd_lane_u64 (uint64x1_t __a, const int __b) __extension__ static __inline poly8_t __attribute__ ((__always_inline__)) vdupb_laneq_p8 (poly8x16_t __a, const int __b) { - return __aarch64_vgetq_lane_p8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int8_t __attribute__ ((__always_inline__)) vdupb_laneq_s8 (int8x16_t __a, const int __attribute__ ((unused)) __b) { - return __aarch64_vgetq_lane_s8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint8_t __attribute__ ((__always_inline__)) vdupb_laneq_u8 (uint8x16_t __a, const int __b) { - return __aarch64_vgetq_lane_u8 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vduph_laneq */ __extension__ static __inline poly16_t __attribute__ ((__always_inline__)) vduph_laneq_p16 (poly16x8_t __a, const int __b) { - return __aarch64_vgetq_lane_p16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int16_t __attribute__ ((__always_inline__)) vduph_laneq_s16 (int16x8_t __a, const int __b) { - return __aarch64_vgetq_lane_s16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint16_t __attribute__ ((__always_inline__)) vduph_laneq_u16 (uint16x8_t __a, const int __b) { - return __aarch64_vgetq_lane_u16 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vdups_laneq */ __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vdups_laneq_f32 (float32x4_t __a, const int __b) { - return __aarch64_vgetq_lane_f32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int32_t __attribute__ ((__always_inline__)) vdups_laneq_s32 (int32x4_t __a, const int __b) { - return __aarch64_vgetq_lane_s32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) vdups_laneq_u32 (uint32x4_t __a, const int __b) { - return __aarch64_vgetq_lane_u32 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vdupd_laneq */ __extension__ static __inline float64_t __attribute__ ((__always_inline__)) vdupd_laneq_f64 (float64x2_t __a, const int __b) { - return __aarch64_vgetq_lane_f64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline int64_t __attribute__ ((__always_inline__)) vdupd_laneq_s64 (int64x2_t __a, const int __b) { - return __aarch64_vgetq_lane_s64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) vdupd_laneq_u64 (uint64x2_t __a, const int __b) { - return __aarch64_vgetq_lane_u64 (__a, __b); + return __aarch64_vget_lane_any (__a, __b); } /* vext */ @@ -15218,7 +15154,7 @@ __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vfmas_lane_f32 (float32_t __a, float32_t __b, float32x2_t __c, const int __lane) { - return __builtin_fmaf (__b, __aarch64_vget_lane_f32 (__c, __lane), __a); + return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a); } /* vfma_laneq */ @@ -15236,7 +15172,7 @@ __extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) vfma_laneq_f64 (float64x1_t __a, float64x1_t __b, float64x2_t __c, const int __lane) { - float64_t __c0 = __aarch64_vgetq_lane_f64 (__c, __lane); + float64_t __c0 = __aarch64_vget_lane_any (__c, __lane); return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])}; } @@ -15244,14 +15180,14 @@ __extension__ static __inline float64_t __attribute__ ((__always_inline__)) vfmad_laneq_f64 (float64_t __a, float64_t __b, float64x2_t __c, const int __lane) { - return __builtin_fma (__b, __aarch64_vgetq_lane_f64 (__c, __lane), __a); + return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a); } __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vfmas_laneq_f32 (float32_t __a, float32_t __b, float32x4_t __c, const int __lane) { - return __builtin_fmaf (__b, __aarch64_vgetq_lane_f32 (__c, __lane), __a); + return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a); } /* vfmaq_lane */ @@ -15348,7 +15284,7 @@ __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vfmss_lane_f32 (float32_t __a, float32_t __b, float32x2_t __c, const int __lane) { - return __builtin_fmaf (-__b, __aarch64_vget_lane_f32 (__c, __lane), __a); + return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a); } /* vfms_laneq */ @@ -15366,7 +15302,7 @@ __extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) vfms_laneq_f64 (float64x1_t __a, float64x1_t __b, float64x2_t __c, const int __lane) { - float64_t __c0 = __aarch64_vgetq_lane_f64 (__c, __lane); + float64_t __c0 = __aarch64_vget_lane_any (__c, __lane); return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])}; } @@ -15374,14 +15310,14 @@ __extension__ static __inline float64_t __attribute__ ((__always_inline__)) vfmsd_laneq_f64 (float64_t __a, float64_t __b, float64x2_t __c, const int __lane) { - return __builtin_fma (-__b, __aarch64_vgetq_lane_f64 (__c, __lane), __a); + return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a); } __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vfmss_laneq_f32 (float32_t __a, float32_t __b, float32x4_t __c, const int __lane) { - return __builtin_fmaf (-__b, __aarch64_vgetq_lane_f32 (__c, __lane), __a); + return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a); } /* vfmsq_lane */ @@ -18382,35 +18318,35 @@ __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_f32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_s16 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_s32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_u16 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_u32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } /* vmla_laneq */ @@ -18419,35 +18355,35 @@ __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) vmla_laneq_f32 (float32x2_t __a, float32x2_t __b, float32x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_f32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) vmla_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_s16 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) vmla_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_s32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b, uint16x8_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_u16 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b, uint32x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_u32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } /* vmlaq_lane */ @@ -18456,35 +18392,35 @@ __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_f32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_s16 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_s32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_u16 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __lane) { - return (__a + (__b * __aarch64_vget_lane_u32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } /* vmlaq_laneq */ @@ -18493,35 +18429,35 @@ __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_f32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_s16 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_s32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_u16 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __lane) { - return (__a + (__b * __aarch64_vgetq_lane_u32 (__c, __lane))); + return (__a + (__b * __aarch64_vget_lane_any (__c, __lane))); } /* vmls */ @@ -18556,35 +18492,35 @@ __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_f32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_s16 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_s32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_u16 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_u32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } /* vmls_laneq */ @@ -18593,35 +18529,35 @@ __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) vmls_laneq_f32 (float32x2_t __a, float32x2_t __b, float32x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_f32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) vmls_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_s16 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) vmls_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_s32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b, uint16x8_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_u16 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b, uint32x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_u32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } /* vmlsq_lane */ @@ -18630,35 +18566,35 @@ __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_f32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_s16 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_s32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_u16 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __lane) { - return (__a - (__b * __aarch64_vget_lane_u32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } /* vmlsq_laneq */ @@ -18667,34 +18603,34 @@ __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_f32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_s16 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_s32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_u16 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __lane) { - return (__a - (__b * __aarch64_vgetq_lane_u32 (__c, __lane))); + return (__a - (__b * __aarch64_vget_lane_any (__c, __lane))); } /* vmov_n_ */ @@ -18848,7 +18784,7 @@ vmovq_n_u64 (uint64_t __a) __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane) { - return __a * __aarch64_vget_lane_f32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) @@ -18860,25 +18796,25 @@ vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane) __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane) { - return __a * __aarch64_vget_lane_s16 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane) { - return __a * __aarch64_vget_lane_s32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane) { - return __a * __aarch64_vget_lane_u16 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane) { - return __a * __aarch64_vget_lane_u32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } /* vmuld_lane */ @@ -18886,13 +18822,13 @@ vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane) __extension__ static __inline float64_t __attribute__ ((__always_inline__)) vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane) { - return __a * __aarch64_vget_lane_f64 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline float64_t __attribute__ ((__always_inline__)) vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_f64 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } /* vmuls_lane */ @@ -18900,13 +18836,13 @@ vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane) __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane) { - return __a * __aarch64_vget_lane_f32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline float32_t __attribute__ ((__always_inline__)) vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_f32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } /* vmul_laneq */ @@ -18914,37 +18850,37 @@ vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane) __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_f32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_f64 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_s16 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_s32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_u16 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_u32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } /* vmul_n */ @@ -18960,7 +18896,7 @@ vmul_n_f64 (float64x1_t __a, float64_t __b) __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane) { - return __a * __aarch64_vget_lane_f32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) @@ -18973,25 +18909,25 @@ vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane) __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane) { - return __a * __aarch64_vget_lane_s16 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane) { - return __a * __aarch64_vget_lane_s32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane) { - return __a * __aarch64_vget_lane_u16 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane) { - return __a * __aarch64_vget_lane_u32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } /* vmulq_laneq */ @@ -18999,37 +18935,37 @@ vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane) __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_f32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_f64 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_s16 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_s32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_u16 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane) { - return __a * __aarch64_vgetq_lane_u32 (__b, __lane); + return __a * __aarch64_vget_lane_any (__b, __lane); } /* vneg */ @@ -25221,31 +25157,6 @@ __INTERLEAVE_LIST (zip) /* End of optimal implementations in approved order. */ #undef __aarch64_vget_lane_any -#undef __aarch64_vget_lane_f32 -#undef __aarch64_vget_lane_f64 -#undef __aarch64_vget_lane_p8 -#undef __aarch64_vget_lane_p16 -#undef __aarch64_vget_lane_s8 -#undef __aarch64_vget_lane_s16 -#undef __aarch64_vget_lane_s32 -#undef __aarch64_vget_lane_s64 -#undef __aarch64_vget_lane_u8 -#undef __aarch64_vget_lane_u16 -#undef __aarch64_vget_lane_u32 -#undef __aarch64_vget_lane_u64 - -#undef __aarch64_vgetq_lane_f32 -#undef __aarch64_vgetq_lane_f64 -#undef __aarch64_vgetq_lane_p8 -#undef __aarch64_vgetq_lane_p16 -#undef __aarch64_vgetq_lane_s8 -#undef __aarch64_vgetq_lane_s16 -#undef __aarch64_vgetq_lane_s32 -#undef __aarch64_vgetq_lane_s64 -#undef __aarch64_vgetq_lane_u8 -#undef __aarch64_vgetq_lane_u16 -#undef __aarch64_vgetq_lane_u32 -#undef __aarch64_vgetq_lane_u64 #undef __aarch64_vdup_lane_any #undef __aarch64_vdup_lane_f32 |