#define ENTRY_BINARY_FPM(N, T0, T1, T2, U) \
ENTRY (N, binary, T0, T1, T2, none, none, true, U)
+#undef ENTRY_BINARY_TWO_LANES
+#define ENTRY_BINARY_TWO_LANES(N, T0, T1, T2, U) \
+ ENTRY (N, quaternary, T0, T1, s32_index, T2, s32_index, false, U)
+
#undef ENTRY_TERNARY_FPM
#define ENTRY_TERNARY_FPM(N, T0, T1, T2, T3, U) \
ENTRY (N, ternary, T0, T1, T2, T3, none, true, U)
#define ENTRY_TERNARY_FPM_LANE(N, T0, T1, T2, T3, U) \
ENTRY (N, quaternary, T0, T1, T2, T3, s32_index, true, U)
+#undef ENTRY_UNARY
+#define ENTRY_UNARY(N, T0, T1, U) \
+ ENTRY (N, unary, T0, T1, none, none, none, false, U)
+
+#undef ENTRY_UNARY_LANE
+#define ENTRY_UNARY_LANE(N, T0, T1, U) \
+ ENTRY_BINARY (N, T0, T1, s32_index, U) \
+
#undef ENTRY_UNARY_FPM
#define ENTRY_UNARY_FPM(N, T0, T1, U) \
ENTRY (N, unary, T0, T1, none, none, none, true, U)
ENTRY_BINARY (NAME##q_f32, f32q, f32q, s32q, UNSPEC) \
ENTRY_BINARY (NAME##q_f64, f64q, f64q, s64q, UNSPEC)
+#undef ENTRY_UNARY_N_VALL_F16_SCALAR
+#define ENTRY_UNARY_N_VALL_F16_SCALAR(NAME, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_p8, p8, p8_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_p8, p8q, p8_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_p16, p16, p16_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_p16, p16q, p16_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_p64, p64, p64_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_p64, p64q, p64_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_s8, s8, s8_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_s8, s8q, s8_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_s16, s16, s16_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_s16, s16q, s16_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_s32, s32, s32_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_s32, s32q, s32_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_s64, s64, s64_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_s64, s64q, s64_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_u8, u8, u8_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_u8, u8q, u8_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_u16, u16, u16_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_u16, u16q, u16_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_u32, u32, u32_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_u32, u32q, u32_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_u64, u64, u64_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_u64, u64q, u64_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_f16, f16, f16_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_f16, f16q, f16_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_f32, f32, f32_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_f32, f32q, f32_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##_n_f64, f64, f64_scalar, UNSPEC) \
+ ENTRY_UNARY (NAME##q_n_f64, f64q, f64_scalar, UNSPEC) \
+
+#undef ENTRY_UNARY_VALL_F16_CONST_PTR
+#define ENTRY_UNARY_VALL_F16_CONST_PTR(NAME, UNSPEC) \
+ ENTRY_UNARY (NAME##_p8, p8, p8_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_p8, p8q, p8_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_p16, p16, p16_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_p16, p16q, p16_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_p64, p64, p64_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_p64, p64q, p64_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_s8, s8, s8_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_s8, s8q, s8_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_s16, s16, s16_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_s16, s16q, s16_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_s32, s32, s32_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_s32, s32q, s32_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_s64, s64, s64_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_s64, s64q, s64_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_u8, u8, u8_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_u8, u8q, u8_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_u16, u16, u16_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_u16, u16q, u16_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_u32, u32, u32_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_u32, u32q, u32_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_u64, u64, u64_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_u64, u64q, u64_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_f16, f16, f16_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_f16, f16q, f16_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_f32, f32, f32_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_f32, f32q, f32_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##_f64, f64, f64_scalar_const_ptr, UNSPEC) \
+ ENTRY_UNARY (NAME##q_f64, f64q, f64_scalar_const_ptr, UNSPEC) \
+
+#undef ENTRY_UNARY_LANE_VALL_F16
+#define ENTRY_UNARY_LANE_VALL_F16(NAME, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_p8, p8, p8, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_p8, p8, p8q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_p16, p16, p16, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_p16, p16, p16q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_p64, p64, p64, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_p64, p64, p64q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_s8, s8, s8, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_s8, s8, s8q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_s16, s16, s16, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_s16, s16, s16q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_s32, s32, s32, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_s32, s32, s32q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_s64, s64, s64, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_s64, s64, s64q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_u8, u8, u8, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_u8, u8, u8q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_u16, u16, u16, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_u16, u16, u16q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_u32, u32, u32, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_u32, u32, u32q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_u64, u64, u64, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_u64, u64, u64q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_f16, f16, f16, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_f16, f16, f16q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_f32, f32, f32, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_f32, f32, f32q, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_lane_f64, f64, f64, UNSPEC) \
+ ENTRY_UNARY_LANE (NAME##_laneq_f64, f64, f64q, UNSPEC) \
+
// faminmax
#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_FAMINMAX)
ENTRY_VHSDF (vamax, UNSPEC_FAMAX)
ENTRY_FMA_FPM (vmlalltbq, f32, UNSPEC_FMLALLTB)
ENTRY_FMA_FPM (vmlallttq, f32, UNSPEC_FMLALLTT)
#undef REQUIRED_EXTENSIONS
+
+// dup
+#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
+ENTRY_UNARY_N_VALL_F16_SCALAR (vdup, UNSPEC_DUP)
+ENTRY_UNARY_LANE_VALL_F16 (vdup, UNSPEC_DUP_LANE)
+#undef REQUIRED_EXTENSIONS
+
+// mov
+#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
+ENTRY_UNARY_N_VALL_F16_SCALAR (vmov, UNSPEC_DUP)
+#undef REQUIRED_EXTENSIONS
+
+// vcreate
+#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
+ENTRY_UNARY (vcreate_p8, p8, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_p16, p16, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_p64, p64, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_s8, s8, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_s16, s16, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_s32, s32, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_s64, s64, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_u8, u8, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_u16, u16, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_u32, u32, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_u64, u64, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_f16, f16, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_f32, f32, u64_scalar, UNSPEC_VCREATE)
+ENTRY_UNARY (vcreate_f64, f64, u64_scalar, UNSPEC_VCREATE)
+#undef REQUIRED_EXTENSIONS
+
+// vcopy_lane
+#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
+ENTRY_BINARY_TWO_LANES (vcopy_lane_p8, p8, p8, p8, UNSPEC_VEC_COPY)
+ENTRY_BINARY_TWO_LANES (vcopy_lane_s8, s8, s8, s8, UNSPEC_VEC_COPY)
+ENTRY_BINARY_TWO_LANES (vcopy_lane_u8, u8, u8, u8, UNSPEC_VEC_COPY)
+#undef REQUIRED_EXTENSIONS
+
+// vdupb_lane
+#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
+ENTRY_UNARY_LANE (vdupb_lane_s8, s8_scalar, s8, UNSPEC_DUPB)
+ENTRY_UNARY_LANE (vdupb_lane_u8, u8_scalar, u8, UNSPEC_DUPB)
+ENTRY_UNARY_LANE (vdupb_lane_p8, p8_scalar, p8, UNSPEC_DUPB)
+ENTRY_UNARY_LANE (vdupb_laneq_s8, s8_scalar, s8q, UNSPEC_DUPB)
+ENTRY_UNARY_LANE (vdupb_laneq_u8, u8_scalar, u8q, UNSPEC_DUPB)
+ENTRY_UNARY_LANE (vdupb_laneq_p8, p8_scalar, p8q, UNSPEC_DUPB)
+#undef REQUIRED_EXTENSIONS
+
+// ld1
+#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
+ENTRY_UNARY_VALL_F16_CONST_PTR (vld1, UNSPEC_LD1)
+#undef REQUIRED_EXTENSIONS
return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b);
}
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_s8 (uint64_t __a)
-{
- return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_s16 (uint64_t __a)
-{
- return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_s32 (uint64_t __a)
-{
- return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_s64 (uint64_t __a)
-{
- return (int64x1_t) {__a};
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_f16 (uint64_t __a)
-{
- return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_f32 (uint64_t __a)
-{
- return (float32x2_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_u8 (uint64_t __a)
-{
- return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_u16 (uint64_t __a)
-{
- return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_u32 (uint64_t __a)
-{
- return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_u64 (uint64_t __a)
-{
- return (uint64x1_t) {__a};
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_f64 (uint64_t __a)
-{
- return (float64x1_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_p8 (uint64_t __a)
-{
- return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_p16 (uint64_t __a)
-{
- return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcreate_p64 (uint64_t __a)
-{
- return (poly64x1_t) __a;
-}
-
/* vget_lane */
__extension__ extern __inline float16_t
__a, __lane1);
}
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
- poly8x8_t __b, const int __lane2)
-{
- return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
- __a, __lane1);
-}
+/* __extension__ extern __inline poly8x8_t */
+/* __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) */
+/* vcopy_lane_p8 (poly8x8_t __a, const int __lane1, */
+/* poly8x8_t __b, const int __lane2) */
+/* { */
+/* return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2), */
+/* __a, __lane1); */
+/* } */
__extension__ extern __inline poly16x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
__a, __lane1);
}
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
- uint8x8_t __b, const int __lane2)
-{
- return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
- __a, __lane1);
-}
+/* __extension__ extern __inline uint8x8_t */
+/* __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) */
+/* vcopy_lane_u8 (uint8x8_t __a, const int __lane1, */
+/* uint8x8_t __b, const int __lane2) */
+/* { */
+/* return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2), */
+/* __a, __lane1); */
+/* } */
__extension__ extern __inline uint16x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
/* vdup_n */
+__extension__ extern __inline poly64x1_t
+__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+vdup_n_p64 (poly64_t __a)
+{
+ return (poly64x1_t) {__a};
+}
+
+__extension__ extern __inline float64x1_t
+__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+vdup_n_f64 (float64_t __a)
+{
+ return (float64x1_t) {__a};
+}
+
+__extension__ extern __inline int64x1_t
+__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+vdup_n_s64 (int64_t __a)
+{
+ return (int64x1_t) {__a};
+}
+
+__extension__ extern __inline uint64x1_t
+__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+vdup_n_u64 (uint64_t __a)
+{
+ return (uint64x1_t) {__a};
+}
+
+/* vdup_lane */
+
+__extension__ extern __inline float64x1_t
+__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+vdup_lane_f64 (float64x1_t __a, const int __b)
+{
+ return __aarch64_vdup_lane_f64 (__a, __b);
+}
+
+__extension__ extern __inline poly64x1_t
+__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+vdup_lane_p64 (poly64x1_t __a, const int __b)
+{
+ return __aarch64_vdup_lane_p64 (__a, __b);
+}
+
+__extension__ extern __inline int64x1_t
+__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+vdup_lane_s64 (int64x1_t __a, const int __b)
+{
+ return __aarch64_vdup_lane_s64 (__a, __b);
+}
+
+__extension__ extern __inline uint64x1_t
+__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+vdup_lane_u64 (uint64x1_t __a, const int __b)
+{
+ return __aarch64_vdup_lane_u64 (__a, __b);
+}
+
+/* vdup_laneq */
+
__extension__ extern __inline float16x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_f16 (float16_t __a)
+vdup_laneq_f16 (float16x8_t __a, const int __b)
{
- return (float16x4_t) {__a, __a, __a, __a};
+ return __aarch64_vdup_laneq_f16 (__a, __b);
}
__extension__ extern __inline float32x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_f32 (float32_t __a)
+vdup_laneq_f32 (float32x4_t __a, const int __b)
{
- return (float32x2_t) {__a, __a};
+ return __aarch64_vdup_laneq_f32 (__a, __b);
}
__extension__ extern __inline float64x1_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_f64 (float64_t __a)
+vdup_laneq_f64 (float64x2_t __a, const int __b)
{
- return (float64x1_t) {__a};
+ return __aarch64_vdup_laneq_f64 (__a, __b);
}
__extension__ extern __inline poly8x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_p8 (poly8_t __a)
+vdup_laneq_p8 (poly8x16_t __a, const int __b)
{
- return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdup_laneq_p8 (__a, __b);
}
__extension__ extern __inline poly16x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_p16 (poly16_t __a)
+vdup_laneq_p16 (poly16x8_t __a, const int __b)
{
- return (poly16x4_t) {__a, __a, __a, __a};
+ return __aarch64_vdup_laneq_p16 (__a, __b);
}
__extension__ extern __inline poly64x1_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_p64 (poly64_t __a)
+vdup_laneq_p64 (poly64x2_t __a, const int __b)
{
- return (poly64x1_t) {__a};
+ return __aarch64_vdup_laneq_p64 (__a, __b);
}
__extension__ extern __inline int8x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_s8 (int8_t __a)
+vdup_laneq_s8 (int8x16_t __a, const int __b)
{
- return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdup_laneq_s8 (__a, __b);
}
__extension__ extern __inline int16x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_s16 (int16_t __a)
+vdup_laneq_s16 (int16x8_t __a, const int __b)
{
- return (int16x4_t) {__a, __a, __a, __a};
+ return __aarch64_vdup_laneq_s16 (__a, __b);
}
__extension__ extern __inline int32x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_s32 (int32_t __a)
+vdup_laneq_s32 (int32x4_t __a, const int __b)
{
- return (int32x2_t) {__a, __a};
+ return __aarch64_vdup_laneq_s32 (__a, __b);
}
__extension__ extern __inline int64x1_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_s64 (int64_t __a)
+vdup_laneq_s64 (int64x2_t __a, const int __b)
{
- return (int64x1_t) {__a};
+ return __aarch64_vdup_laneq_s64 (__a, __b);
}
__extension__ extern __inline uint8x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_u8 (uint8_t __a)
+vdup_laneq_u8 (uint8x16_t __a, const int __b)
{
- return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdup_laneq_u8 (__a, __b);
}
__extension__ extern __inline uint16x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_u16 (uint16_t __a)
+vdup_laneq_u16 (uint16x8_t __a, const int __b)
{
- return (uint16x4_t) {__a, __a, __a, __a};
+ return __aarch64_vdup_laneq_u16 (__a, __b);
}
__extension__ extern __inline uint32x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_u32 (uint32_t __a)
+vdup_laneq_u32 (uint32x4_t __a, const int __b)
{
- return (uint32x2_t) {__a, __a};
+ return __aarch64_vdup_laneq_u32 (__a, __b);
}
__extension__ extern __inline uint64x1_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_n_u64 (uint64_t __a)
+vdup_laneq_u64 (uint64x2_t __a, const int __b)
{
- return (uint64x1_t) {__a};
+ return __aarch64_vdup_laneq_u64 (__a, __b);
}
-/* vdupq_n */
+/* vdupq_lane */
__extension__ extern __inline float16x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_f16 (float16_t __a)
+vdupq_lane_f16 (float16x4_t __a, const int __b)
{
- return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdupq_lane_f16 (__a, __b);
}
__extension__ extern __inline float32x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_f32 (float32_t __a)
+vdupq_lane_f32 (float32x2_t __a, const int __b)
{
- return (float32x4_t) {__a, __a, __a, __a};
+ return __aarch64_vdupq_lane_f32 (__a, __b);
}
__extension__ extern __inline float64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_f64 (float64_t __a)
+vdupq_lane_f64 (float64x1_t __a, const int __b)
{
- return (float64x2_t) {__a, __a};
+ return __aarch64_vdupq_lane_f64 (__a, __b);
}
__extension__ extern __inline poly8x16_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_p8 (poly8_t __a)
+vdupq_lane_p8 (poly8x8_t __a, const int __b)
{
- return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
- __a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdupq_lane_p8 (__a, __b);
}
__extension__ extern __inline poly16x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_p16 (poly16_t __a)
+vdupq_lane_p16 (poly16x4_t __a, const int __b)
{
- return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdupq_lane_p16 (__a, __b);
}
__extension__ extern __inline poly64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_p64 (poly64_t __a)
+vdupq_lane_p64 (poly64x1_t __a, const int __b)
{
- return (poly64x2_t) {__a, __a};
+ return __aarch64_vdupq_lane_p64 (__a, __b);
}
__extension__ extern __inline int8x16_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_s8 (int8_t __a)
+vdupq_lane_s8 (int8x8_t __a, const int __b)
{
- return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
- __a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdupq_lane_s8 (__a, __b);
}
__extension__ extern __inline int16x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_s16 (int16_t __a)
+vdupq_lane_s16 (int16x4_t __a, const int __b)
{
- return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdupq_lane_s16 (__a, __b);
}
__extension__ extern __inline int32x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_s32 (int32_t __a)
+vdupq_lane_s32 (int32x2_t __a, const int __b)
{
- return (int32x4_t) {__a, __a, __a, __a};
+ return __aarch64_vdupq_lane_s32 (__a, __b);
}
__extension__ extern __inline int64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_s64 (int64_t __a)
+vdupq_lane_s64 (int64x1_t __a, const int __b)
{
- return (int64x2_t) {__a, __a};
+ return __aarch64_vdupq_lane_s64 (__a, __b);
}
__extension__ extern __inline uint8x16_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_u8 (uint8_t __a)
+vdupq_lane_u8 (uint8x8_t __a, const int __b)
{
- return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
- __a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdupq_lane_u8 (__a, __b);
}
__extension__ extern __inline uint16x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_u16 (uint16_t __a)
+vdupq_lane_u16 (uint16x4_t __a, const int __b)
{
- return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
+ return __aarch64_vdupq_lane_u16 (__a, __b);
}
__extension__ extern __inline uint32x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_u32 (uint32_t __a)
+vdupq_lane_u32 (uint32x2_t __a, const int __b)
{
- return (uint32x4_t) {__a, __a, __a, __a};
+ return __aarch64_vdupq_lane_u32 (__a, __b);
}
__extension__ extern __inline uint64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_n_u64 (uint64_t __a)
+vdupq_lane_u64 (uint64x1_t __a, const int __b)
{
- return (uint64x2_t) {__a, __a};
+ return __aarch64_vdupq_lane_u64 (__a, __b);
}
-/* vdup_lane */
+/* vdupq_laneq */
-__extension__ extern __inline float16x4_t
+__extension__ extern __inline float16x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_f16 (float16x4_t __a, const int __b)
+vdupq_laneq_f16 (float16x8_t __a, const int __b)
{
- return __aarch64_vdup_lane_f16 (__a, __b);
+ return __aarch64_vdupq_laneq_f16 (__a, __b);
}
-__extension__ extern __inline float32x2_t
+__extension__ extern __inline float32x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_f32 (float32x2_t __a, const int __b)
+vdupq_laneq_f32 (float32x4_t __a, const int __b)
{
- return __aarch64_vdup_lane_f32 (__a, __b);
+ return __aarch64_vdupq_laneq_f32 (__a, __b);
}
-__extension__ extern __inline float64x1_t
+__extension__ extern __inline float64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_f64 (float64x1_t __a, const int __b)
+vdupq_laneq_f64 (float64x2_t __a, const int __b)
{
- return __aarch64_vdup_lane_f64 (__a, __b);
+ return __aarch64_vdupq_laneq_f64 (__a, __b);
}
-__extension__ extern __inline poly8x8_t
+__extension__ extern __inline poly8x16_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_p8 (poly8x8_t __a, const int __b)
+vdupq_laneq_p8 (poly8x16_t __a, const int __b)
{
- return __aarch64_vdup_lane_p8 (__a, __b);
+ return __aarch64_vdupq_laneq_p8 (__a, __b);
}
-__extension__ extern __inline poly16x4_t
+__extension__ extern __inline poly16x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_p16 (poly16x4_t __a, const int __b)
+vdupq_laneq_p16 (poly16x8_t __a, const int __b)
{
- return __aarch64_vdup_lane_p16 (__a, __b);
+ return __aarch64_vdupq_laneq_p16 (__a, __b);
}
-__extension__ extern __inline poly64x1_t
+__extension__ extern __inline poly64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_p64 (poly64x1_t __a, const int __b)
+vdupq_laneq_p64 (poly64x2_t __a, const int __b)
{
- return __aarch64_vdup_lane_p64 (__a, __b);
+ return __aarch64_vdupq_laneq_p64 (__a, __b);
}
-__extension__ extern __inline int8x8_t
+__extension__ extern __inline int8x16_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_s8 (int8x8_t __a, const int __b)
+vdupq_laneq_s8 (int8x16_t __a, const int __b)
{
- return __aarch64_vdup_lane_s8 (__a, __b);
+ return __aarch64_vdupq_laneq_s8 (__a, __b);
}
-__extension__ extern __inline int16x4_t
+__extension__ extern __inline int16x8_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_s16 (int16x4_t __a, const int __b)
+vdupq_laneq_s16 (int16x8_t __a, const int __b)
{
- return __aarch64_vdup_lane_s16 (__a, __b);
+ return __aarch64_vdupq_laneq_s16 (__a, __b);
}
-__extension__ extern __inline int32x2_t
+__extension__ extern __inline int32x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_s32 (int32x2_t __a, const int __b)
+vdupq_laneq_s32 (int32x4_t __a, const int __b)
{
- return __aarch64_vdup_lane_s32 (__a, __b);
+ return __aarch64_vdupq_laneq_s32 (__a, __b);
}
-__extension__ extern __inline int64x1_t
+__extension__ extern __inline int64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_s64 (int64x1_t __a, const int __b)
-{
- return __aarch64_vdup_lane_s64 (__a, __b);
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_u8 (uint8x8_t __a, const int __b)
-{
- return __aarch64_vdup_lane_u8 (__a, __b);
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_u16 (uint16x4_t __a, const int __b)
-{
- return __aarch64_vdup_lane_u16 (__a, __b);
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_u32 (uint32x2_t __a, const int __b)
-{
- return __aarch64_vdup_lane_u32 (__a, __b);
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_lane_u64 (uint64x1_t __a, const int __b)
-{
- return __aarch64_vdup_lane_u64 (__a, __b);
-}
-
-/* vdup_laneq */
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_f16 (float16x8_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_f16 (__a, __b);
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_f32 (float32x4_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_f32 (__a, __b);
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_f64 (float64x2_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_f64 (__a, __b);
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_p8 (poly8x16_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_p8 (__a, __b);
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_p16 (poly16x8_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_p16 (__a, __b);
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_p64 (poly64x2_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_p64 (__a, __b);
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_s8 (int8x16_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_s8 (__a, __b);
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_s16 (int16x8_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_s16 (__a, __b);
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_s32 (int32x4_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_s32 (__a, __b);
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_s64 (int64x2_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_s64 (__a, __b);
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_u8 (uint8x16_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_u8 (__a, __b);
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_u16 (uint16x8_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_u16 (__a, __b);
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_u32 (uint32x4_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_u32 (__a, __b);
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdup_laneq_u64 (uint64x2_t __a, const int __b)
-{
- return __aarch64_vdup_laneq_u64 (__a, __b);
-}
-
-/* vdupq_lane */
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_f16 (float16x4_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_f16 (__a, __b);
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_f32 (float32x2_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_f32 (__a, __b);
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_f64 (float64x1_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_f64 (__a, __b);
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_p8 (poly8x8_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_p8 (__a, __b);
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_p16 (poly16x4_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_p16 (__a, __b);
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_p64 (poly64x1_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_p64 (__a, __b);
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_s8 (int8x8_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_s8 (__a, __b);
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_s16 (int16x4_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_s16 (__a, __b);
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_s32 (int32x2_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_s32 (__a, __b);
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_s64 (int64x1_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_s64 (__a, __b);
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_u8 (uint8x8_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_u8 (__a, __b);
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_u16 (uint16x4_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_u16 (__a, __b);
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_u32 (uint32x2_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_u32 (__a, __b);
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_lane_u64 (uint64x1_t __a, const int __b)
-{
- return __aarch64_vdupq_lane_u64 (__a, __b);
-}
-
-/* vdupq_laneq */
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_f16 (float16x8_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_f16 (__a, __b);
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_f32 (float32x4_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_f32 (__a, __b);
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_f64 (float64x2_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_f64 (__a, __b);
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_p8 (poly8x16_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_p8 (__a, __b);
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_p16 (poly16x8_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_p16 (__a, __b);
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_p64 (poly64x2_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_p64 (__a, __b);
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_s8 (int8x16_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_s8 (__a, __b);
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_s16 (int16x8_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_s16 (__a, __b);
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_s32 (int32x4_t __a, const int __b)
-{
- return __aarch64_vdupq_laneq_s32 (__a, __b);
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupq_laneq_s64 (int64x2_t __a, const int __b)
+vdupq_laneq_s64 (int64x2_t __a, const int __b)
{
return __aarch64_vdupq_laneq_s64 (__a, __b);
}
return __aarch64_vdupq_laneq_u64 (__a, __b);
}
-/* vdupb_lane */
-__extension__ extern __inline poly8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupb_lane_p8 (poly8x8_t __a, const int __b)
-{
- return __aarch64_vget_lane_any (__a, __b);
-}
-
-__extension__ extern __inline int8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupb_lane_s8 (int8x8_t __a, const int __b)
-{
- return __aarch64_vget_lane_any (__a, __b);
-}
-
-__extension__ extern __inline uint8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupb_lane_u8 (uint8x8_t __a, const int __b)
-{
- return __aarch64_vget_lane_any (__a, __b);
-}
-
/* vduph_lane */
__extension__ extern __inline float16_t
return __a[0];
}
-/* vdupb_laneq */
-__extension__ extern __inline poly8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupb_laneq_p8 (poly8x16_t __a, const int __b)
-{
- return __aarch64_vget_lane_any (__a, __b);
-}
-
-__extension__ extern __inline int8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupb_laneq_s8 (int8x16_t __a, const int __b)
-{
- return __aarch64_vget_lane_any (__a, __b);
-}
-
-__extension__ extern __inline uint8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vdupb_laneq_u8 (uint8x16_t __a, const int __b)
-{
- return __aarch64_vget_lane_any (__a, __b);
-}
-
/* vduph_laneq */
__extension__ extern __inline float16_t
__extension__ extern __inline float32x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
- float32x4_t __c, const int __lane)
-{
- return __builtin_aarch64_fmav2sf (-__b,
- __aarch64_vdup_laneq_f32 (__c, __lane),
- __a);
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
- float64x2_t __c, const int __lane)
-{
- float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
- return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
-}
-
-__extension__ extern __inline float64_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vfmsd_laneq_f64 (float64_t __a, float64_t __b,
- float64x2_t __c, const int __lane)
-{
- return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
-}
-
-__extension__ extern __inline float32_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vfmss_laneq_f32 (float32_t __a, float32_t __b,
- float32x4_t __c, const int __lane)
-{
- return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
-}
-
-/* vfmsq_lane */
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
- float32x2_t __c, const int __lane)
-{
- return __builtin_aarch64_fmav4sf (-__b,
- __aarch64_vdupq_lane_f32 (__c, __lane),
- __a);
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
- float64x1_t __c, const int __lane)
-{
- return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
-}
-
-/* vfmsq_laneq */
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
- float32x4_t __c, const int __lane)
-{
- return __builtin_aarch64_fmav4sf (-__b,
- __aarch64_vdupq_laneq_f32 (__c, __lane),
- __a);
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
- float64x2_t __c, const int __lane)
-{
- return __builtin_aarch64_fmav2df (-__b,
- __aarch64_vdupq_laneq_f64 (__c, __lane),
- __a);
-}
-
-/* vld1 */
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_f16 (const float16_t *__a)
-{
- return __builtin_aarch64_ld1v4hf (__a);
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_f32 (const float32_t *__a)
-{
- return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) __a);
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_f64 (const float64_t *__a)
-{
- return (float64x1_t) {*__a};
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_p8 (const poly8_t *__a)
-{
- return __builtin_aarch64_ld1v8qi_ps (
- (const __builtin_aarch64_simd_qi *) __a);
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_p16 (const poly16_t *__a)
-{
- return __builtin_aarch64_ld1v4hi_ps (
- (const __builtin_aarch64_simd_hi *) __a);
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_p64 (const poly64_t *__a)
-{
- return (poly64x1_t) {*__a};
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_s8 (const int8_t *__a)
+vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
+ float32x4_t __c, const int __lane)
{
- return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
+ return __builtin_aarch64_fmav2sf (-__b,
+ __aarch64_vdup_laneq_f32 (__c, __lane),
+ __a);
}
-__extension__ extern __inline int16x4_t
+__extension__ extern __inline float64x1_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_s16 (const int16_t *__a)
+vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
+ float64x2_t __c, const int __lane)
{
- return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
+ float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
+ return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
}
-__extension__ extern __inline int32x2_t
+__extension__ extern __inline float64_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_s32 (const int32_t *__a)
+vfmsd_laneq_f64 (float64_t __a, float64_t __b,
+ float64x2_t __c, const int __lane)
{
- return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) __a);
+ return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
}
-__extension__ extern __inline int64x1_t
+__extension__ extern __inline float32_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_s64 (const int64_t *__a)
+vfmss_laneq_f32 (float32_t __a, float32_t __b,
+ float32x4_t __c, const int __lane)
{
- return (int64x1_t) {*__a};
+ return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
}
-__extension__ extern __inline uint8x8_t
+/* vfmsq_lane */
+
+__extension__ extern __inline float32x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_u8 (const uint8_t *__a)
+vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
+ float32x2_t __c, const int __lane)
{
- return __builtin_aarch64_ld1v8qi_us (
- (const __builtin_aarch64_simd_qi *) __a);
+ return __builtin_aarch64_fmav4sf (-__b,
+ __aarch64_vdupq_lane_f32 (__c, __lane),
+ __a);
}
-__extension__ extern __inline uint16x4_t
+__extension__ extern __inline float64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_u16 (const uint16_t *__a)
+vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
+ float64x1_t __c, const int __lane)
{
- return __builtin_aarch64_ld1v4hi_us (
- (const __builtin_aarch64_simd_hi *) __a);
+ return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
}
-__extension__ extern __inline uint32x2_t
+/* vfmsq_laneq */
+
+__extension__ extern __inline float32x4_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_u32 (const uint32_t *__a)
+vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
+ float32x4_t __c, const int __lane)
{
- return __builtin_aarch64_ld1v2si_us (
- (const __builtin_aarch64_simd_si *) __a);
+ return __builtin_aarch64_fmav4sf (-__b,
+ __aarch64_vdupq_laneq_f32 (__c, __lane),
+ __a);
}
-__extension__ extern __inline uint64x1_t
+__extension__ extern __inline float64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1_u64 (const uint64_t *__a)
+vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
+ float64x2_t __c, const int __lane)
{
- return (uint64x1_t) {*__a};
+ return __builtin_aarch64_fmav2df (-__b,
+ __aarch64_vdupq_laneq_f64 (__c, __lane),
+ __a);
}
/* vld1x3 */
/* vld1q */
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_f16 (const float16_t *__a)
-{
- return __builtin_aarch64_ld1v8hf (__a);
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_f32 (const float32_t *__a)
-{
- return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) __a);
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_f64 (const float64_t *__a)
-{
- return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) __a);
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_p8 (const poly8_t *__a)
-{
- return __builtin_aarch64_ld1v16qi_ps (
- (const __builtin_aarch64_simd_qi *) __a);
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_p16 (const poly16_t *__a)
-{
- return __builtin_aarch64_ld1v8hi_ps (
- (const __builtin_aarch64_simd_hi *) __a);
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_p64 (const poly64_t *__a)
-{
- return __builtin_aarch64_ld1v2di_ps (
- (const __builtin_aarch64_simd_di *) __a);
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_s8 (const int8_t *__a)
-{
- return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_s16 (const int16_t *__a)
-{
- return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_s32 (const int32_t *__a)
-{
- return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) __a);
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_s64 (const int64_t *__a)
-{
- return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_u8 (const uint8_t *__a)
-{
- return __builtin_aarch64_ld1v16qi_us (
- (const __builtin_aarch64_simd_qi *) __a);
-}
-
__extension__ extern __inline uint8x8x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8_x2 (const uint8_t *__a)
(const __builtin_aarch64_simd_di *) __a);
}
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_u16 (const uint16_t *__a)
-{
- return __builtin_aarch64_ld1v8hi_us (
- (const __builtin_aarch64_simd_hi *) __a);
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_u32 (const uint32_t *__a)
-{
- return __builtin_aarch64_ld1v4si_us (
- (const __builtin_aarch64_simd_si *) __a);
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_u64 (const uint64_t *__a)
-{
- return __builtin_aarch64_ld1v2di_us (
- (const __builtin_aarch64_simd_di *) __a);
-}
-
/* vld1(q)_x4. */
__extension__ extern __inline int8x8x4_t
/* vmov_n_ */
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_f16 (float16_t __a)
-{
- return vdup_n_f16 (__a);
-}
-
-__extension__ extern __inline float32x2_t
+__extension__ extern __inline poly64x1_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_f32 (float32_t __a)
+vmov_n_p64 (poly64_t __a)
{
- return vdup_n_f32 (__a);
+ return (poly64x1_t) {__a};
}
__extension__ extern __inline float64x1_t
return (float64x1_t) {__a};
}
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_p8 (poly8_t __a)
-{
- return vdup_n_p8 (__a);
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_p16 (poly16_t __a)
-{
- return vdup_n_p16 (__a);
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_p64 (poly64_t __a)
-{
- return vdup_n_p64 (__a);
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_s8 (int8_t __a)
-{
- return vdup_n_s8 (__a);
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_s16 (int16_t __a)
-{
- return vdup_n_s16 (__a);
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_s32 (int32_t __a)
-{
- return vdup_n_s32 (__a);
-}
-
__extension__ extern __inline int64x1_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s64 (int64_t __a)
return (int64x1_t) {__a};
}
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_u8 (uint8_t __a)
-{
- return vdup_n_u8 (__a);
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_u16 (uint16_t __a)
-{
- return vdup_n_u16 (__a);
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmov_n_u32 (uint32_t __a)
-{
- return vdup_n_u32 (__a);
-}
-
__extension__ extern __inline uint64x1_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u64 (uint64_t __a)
return (uint64x1_t) {__a};
}
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_f16 (float16_t __a)
-{
- return vdupq_n_f16 (__a);
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_f32 (float32_t __a)
-{
- return vdupq_n_f32 (__a);
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_f64 (float64_t __a)
-{
- return vdupq_n_f64 (__a);
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_p8 (poly8_t __a)
-{
- return vdupq_n_p8 (__a);
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_p16 (poly16_t __a)
-{
- return vdupq_n_p16 (__a);
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_p64 (poly64_t __a)
-{
- return vdupq_n_p64 (__a);
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_s8 (int8_t __a)
-{
- return vdupq_n_s8 (__a);
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_s16 (int16_t __a)
-{
- return vdupq_n_s16 (__a);
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_s32 (int32_t __a)
-{
- return vdupq_n_s32 (__a);
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_s64 (int64_t __a)
-{
- return vdupq_n_s64 (__a);
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_u8 (uint8_t __a)
-{
- return vdupq_n_u8 (__a);
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_u16 (uint16_t __a)
-{
- return vdupq_n_u16 (__a);
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_u32 (uint32_t __a)
-{
- return vdupq_n_u32 (__a);
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vmovq_n_u64 (uint64_t __a)
-{
- return vdupq_n_u64 (__a);
-}
-
/* vmul_lane */
__extension__ extern __inline float32x2_t