Message ID | 20240904132650.2720446-7-christophe.lyon@linaro.org |
---|---|
State | New |
Headers | show |
Series | arm: [MVE intrinsics] Re-implement more intrinsics | expand |
On 04/09/2024 14:26, Christophe Lyon wrote: > Implement vcvtq using the new MVE builtins framework. > > In config/arm/arm-mve-builtins-base.def, the patch also restores the > alphabetical order. > > 2024-07-11 Christophe Lyon <christophe.lyon@linaro.org> > > gcc/ > * config/arm/arm-mve-builtins-base.cc (class vcvtq_impl): New. > (vcvtq): New. > * config/arm/arm-mve-builtins-base.def (vcvtq): New. > * config/arm/arm-mve-builtins-base.h (vcvtq): New. > * config/arm/arm-mve-builtins.cc (cvt): New type. > * config/arm/arm_mve.h (vcvtq): Delete. > (vcvtq_n): Delete. > (vcvtq_m): Delete. > (vcvtq_m_n): Delete. > (vcvtq_x): Delete. > (vcvtq_x_n): Delete. > (vcvtq_f16_s16): Delete. > (vcvtq_f32_s32): Delete. > (vcvtq_f16_u16): Delete. > (vcvtq_f32_u32): Delete. > (vcvtq_s16_f16): Delete. > (vcvtq_s32_f32): Delete. > (vcvtq_u16_f16): Delete. > (vcvtq_u32_f32): Delete. > (vcvtq_n_f16_s16): Delete. > (vcvtq_n_f32_s32): Delete. > (vcvtq_n_f16_u16): Delete. > (vcvtq_n_f32_u32): Delete. > (vcvtq_n_s16_f16): Delete. > (vcvtq_n_s32_f32): Delete. > (vcvtq_n_u16_f16): Delete. > (vcvtq_n_u32_f32): Delete. > (vcvtq_m_f16_s16): Delete. > (vcvtq_m_f16_u16): Delete. > (vcvtq_m_f32_s32): Delete. > (vcvtq_m_f32_u32): Delete. > (vcvtq_m_s16_f16): Delete. > (vcvtq_m_u16_f16): Delete. > (vcvtq_m_s32_f32): Delete. > (vcvtq_m_u32_f32): Delete. > (vcvtq_m_n_f16_u16): Delete. > (vcvtq_m_n_f16_s16): Delete. > (vcvtq_m_n_f32_u32): Delete. > (vcvtq_m_n_f32_s32): Delete. > (vcvtq_m_n_s32_f32): Delete. > (vcvtq_m_n_s16_f16): Delete. > (vcvtq_m_n_u32_f32): Delete. > (vcvtq_m_n_u16_f16): Delete. > (vcvtq_x_f16_u16): Delete. > (vcvtq_x_f16_s16): Delete. > (vcvtq_x_f32_s32): Delete. > (vcvtq_x_f32_u32): Delete. > (vcvtq_x_n_f16_s16): Delete. > (vcvtq_x_n_f16_u16): Delete. > (vcvtq_x_n_f32_s32): Delete. > (vcvtq_x_n_f32_u32): Delete. > (vcvtq_x_s16_f16): Delete. > (vcvtq_x_s32_f32): Delete. > (vcvtq_x_u16_f16): Delete. > (vcvtq_x_u32_f32): Delete. > (vcvtq_x_n_s16_f16): Delete. > (vcvtq_x_n_s32_f32): Delete. > (vcvtq_x_n_u16_f16): Delete. > (vcvtq_x_n_u32_f32): Delete. > (__arm_vcvtq_f16_s16): Delete. > (__arm_vcvtq_f32_s32): Delete. > (__arm_vcvtq_f16_u16): Delete. > (__arm_vcvtq_f32_u32): Delete. > (__arm_vcvtq_s16_f16): Delete. > (__arm_vcvtq_s32_f32): Delete. > (__arm_vcvtq_u16_f16): Delete. > (__arm_vcvtq_u32_f32): Delete. > (__arm_vcvtq_n_f16_s16): Delete. > (__arm_vcvtq_n_f32_s32): Delete. > (__arm_vcvtq_n_f16_u16): Delete. > (__arm_vcvtq_n_f32_u32): Delete. > (__arm_vcvtq_n_s16_f16): Delete. > (__arm_vcvtq_n_s32_f32): Delete. > (__arm_vcvtq_n_u16_f16): Delete. > (__arm_vcvtq_n_u32_f32): Delete. > (__arm_vcvtq_m_f16_s16): Delete. > (__arm_vcvtq_m_f16_u16): Delete. > (__arm_vcvtq_m_f32_s32): Delete. > (__arm_vcvtq_m_f32_u32): Delete. > (__arm_vcvtq_m_s16_f16): Delete. > (__arm_vcvtq_m_u16_f16): Delete. > (__arm_vcvtq_m_s32_f32): Delete. > (__arm_vcvtq_m_u32_f32): Delete. > (__arm_vcvtq_m_n_f16_u16): Delete. > (__arm_vcvtq_m_n_f16_s16): Delete. > (__arm_vcvtq_m_n_f32_u32): Delete. > (__arm_vcvtq_m_n_f32_s32): Delete. > (__arm_vcvtq_m_n_s32_f32): Delete. > (__arm_vcvtq_m_n_s16_f16): Delete. > (__arm_vcvtq_m_n_u32_f32): Delete. > (__arm_vcvtq_m_n_u16_f16): Delete. > (__arm_vcvtq_x_f16_u16): Delete. > (__arm_vcvtq_x_f16_s16): Delete. > (__arm_vcvtq_x_f32_s32): Delete. > (__arm_vcvtq_x_f32_u32): Delete. > (__arm_vcvtq_x_n_f16_s16): Delete. > (__arm_vcvtq_x_n_f16_u16): Delete. > (__arm_vcvtq_x_n_f32_s32): Delete. > (__arm_vcvtq_x_n_f32_u32): Delete. > (__arm_vcvtq_x_s16_f16): Delete. > (__arm_vcvtq_x_s32_f32): Delete. > (__arm_vcvtq_x_u16_f16): Delete. > (__arm_vcvtq_x_u32_f32): Delete. > (__arm_vcvtq_x_n_s16_f16): Delete. > (__arm_vcvtq_x_n_s32_f32): Delete. > (__arm_vcvtq_x_n_u16_f16): Delete. > (__arm_vcvtq_x_n_u32_f32): Delete. > (__arm_vcvtq): Delete. > (__arm_vcvtq_n): Delete. > (__arm_vcvtq_m): Delete. > (__arm_vcvtq_m_n): Delete. > (__arm_vcvtq_x): Delete. > (__arm_vcvtq_x_n): Delete. > --- > gcc/config/arm/arm-mve-builtins-base.cc | 113 ++++ > gcc/config/arm/arm-mve-builtins-base.def | 19 +- > gcc/config/arm/arm-mve-builtins-base.h | 1 + > gcc/config/arm/arm-mve-builtins.cc | 15 + > gcc/config/arm/arm_mve.h | 666 ----------------------- > 5 files changed, 139 insertions(+), 675 deletions(-) > > diff --git a/gcc/config/arm/arm-mve-builtins-base.cc b/gcc/config/arm/arm-mve-builtins-base.cc > index e0ae593a6c0..a780d686eb1 100644 > --- a/gcc/config/arm/arm-mve-builtins-base.cc > +++ b/gcc/config/arm/arm-mve-builtins-base.cc > @@ -139,6 +139,118 @@ public: > } > }; > > + /* Implements vcvtq intrinsics. */ > +class vcvtq_impl : public function_base > +{ > +public: > + rtx > + expand (function_expander &e) const override > + { > + insn_code code; > + machine_mode target_mode = e.vector_mode (0); > + int unspec; > + switch (e.pred) > + { > + case PRED_none: > + switch (e.mode_suffix_id) > + { > + case MODE_none: > + /* No predicate, no suffix. */ > + if (e.type_suffix (0).integer_p) > + { > + unspec = e.type_suffix (0).unsigned_p > + ? VCVTQ_FROM_F_U > + : VCVTQ_FROM_F_S; Stylistic nit: when breaking an assignment over multiple lines, I tend to prefer that parenthesis are added to ensure that the operators on subsequent lines indent correclty. In this case, something like: unspec = (e.type_suffix (0).unsigned_p ? VCVTQ_FROM_F_U : VCVTQ_FROM_F_S); I'm not sure if this is a hard and fast rule, though; it's probably more important when there's more complex indentation. OK. R. > + code = code_for_mve_q_from_f (unspec, unspec, target_mode); > + } > + else > + { > + unspec = e.type_suffix (1).unsigned_p > + ? VCVTQ_TO_F_U > + : VCVTQ_TO_F_S; > + code = code_for_mve_q_to_f (unspec, unspec, target_mode); > + } > + break; > + > + case MODE_n: > + /* No predicate, _n suffix. */ > + if (e.type_suffix (0).integer_p) > + { > + unspec = e.type_suffix (0).unsigned_p > + ? VCVTQ_N_FROM_F_U > + : VCVTQ_N_FROM_F_S; > + code = code_for_mve_q_n_from_f (unspec, unspec, target_mode); > + } > + else > + { > + unspec = e.type_suffix (1).unsigned_p > + ? VCVTQ_N_TO_F_U > + : VCVTQ_N_TO_F_S; > + code = code_for_mve_q_n_to_f (unspec, unspec, target_mode); > + } > + break; > + > + default: > + gcc_unreachable (); > + } > + return e.use_exact_insn (code); > + > + case PRED_m: > + case PRED_x: > + switch (e.mode_suffix_id) > + { > + case MODE_none: > + /* No suffix, "m" or "x" predicate. */ > + if (e.type_suffix (0).integer_p) > + { > + unspec = e.type_suffix (0).unsigned_p > + ? VCVTQ_M_FROM_F_U > + : VCVTQ_M_FROM_F_S; > + code = code_for_mve_q_m_from_f (unspec, unspec, target_mode); > + } > + else > + { > + unspec = e.type_suffix (1).unsigned_p > + ? VCVTQ_M_TO_F_U > + : VCVTQ_M_TO_F_S; > + code = code_for_mve_q_m_to_f (unspec, unspec, target_mode); > + } > + break; > + > + case MODE_n: > + /* _n suffix, "m" or "x" predicate. */ > + if (e.type_suffix (0).integer_p) > + { > + unspec = e.type_suffix (0).unsigned_p > + ? VCVTQ_M_N_FROM_F_U > + : VCVTQ_M_N_FROM_F_S; > + code = code_for_mve_q_m_n_from_f (unspec, unspec, target_mode); > + } > + else > + { > + unspec = e.type_suffix (1).unsigned_p > + ? VCVTQ_M_N_TO_F_U > + : VCVTQ_M_N_TO_F_S; > + code = code_for_mve_q_m_n_to_f (unspec, unspec, target_mode); > + } > + break; > + > + default: > + gcc_unreachable (); > + } > + if (e.pred == PRED_m) > + return e.use_cond_insn (code, 0); > + else > + return e.use_pred_x_insn (code); > + > + default: > + gcc_unreachable (); > + } > + > + gcc_unreachable (); > + } > +}; > + > } /* end anonymous namespace */ > > namespace arm_mve { > @@ -339,6 +451,7 @@ FUNCTION (vcmpltq, unspec_based_mve_function_exact_insn_vcmp, (LT, UNKNOWN, LT, > FUNCTION (vcmpcsq, unspec_based_mve_function_exact_insn_vcmp, (UNKNOWN, GEU, UNKNOWN, UNKNOWN, VCMPCSQ_M_U, UNKNOWN, UNKNOWN, VCMPCSQ_M_N_U, UNKNOWN)) > FUNCTION (vcmphiq, unspec_based_mve_function_exact_insn_vcmp, (UNKNOWN, GTU, UNKNOWN, UNKNOWN, VCMPHIQ_M_U, UNKNOWN, UNKNOWN, VCMPHIQ_M_N_U, UNKNOWN)) > FUNCTION_WITHOUT_M_N (vcreateq, VCREATEQ) > +FUNCTION (vcvtq, vcvtq_impl,) > FUNCTION_ONLY_N (vdupq, VDUPQ) > FUNCTION_WITH_RTX_M (veorq, XOR, VEORQ) > FUNCTION (vfmaq, unspec_mve_function_exact_insn, (-1, -1, VFMAQ_F, -1, -1, VFMAQ_N_F, -1, -1, VFMAQ_M_F, -1, -1, VFMAQ_M_N_F)) > diff --git a/gcc/config/arm/arm-mve-builtins-base.def b/gcc/config/arm/arm-mve-builtins-base.def > index 90d031eebec..671f86b5096 100644 > --- a/gcc/config/arm/arm-mve-builtins-base.def > +++ b/gcc/config/arm/arm-mve-builtins-base.def > @@ -28,8 +28,8 @@ DEF_MVE_FUNCTION (vaddvaq, unary_int32_acc, all_integer, p_or_none) > DEF_MVE_FUNCTION (vaddvq, unary_int32, all_integer, p_or_none) > DEF_MVE_FUNCTION (vandq, binary, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vbrsrq, binary_imm32, all_integer, mx_or_none) > -DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vcaddq_rot270, binary, all_integer, mx_or_none) > +DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vclsq, unary, all_signed, mx_or_none) > DEF_MVE_FUNCTION (vclzq, unary, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vcmpcsq, cmp, all_unsigned, m_or_none) > @@ -44,8 +44,8 @@ DEF_MVE_FUNCTION (vcreateq, create, all_integer_with_64, none) > DEF_MVE_FUNCTION (vdupq, unary_n, all_integer, mx_or_none) > DEF_MVE_FUNCTION (veorq, binary, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vhaddq, binary_opt_n, all_integer, mx_or_none) > -DEF_MVE_FUNCTION (vhcaddq_rot90, binary, all_signed, mx_or_none) > DEF_MVE_FUNCTION (vhcaddq_rot270, binary, all_signed, mx_or_none) > +DEF_MVE_FUNCTION (vhcaddq_rot90, binary, all_signed, mx_or_none) > DEF_MVE_FUNCTION (vhsubq, binary_opt_n, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vld1q, load, all_integer, none) > DEF_MVE_FUNCTION (vmaxaq, binary_maxamina, all_signed, m_or_none) > @@ -80,8 +80,8 @@ DEF_MVE_FUNCTION (vmovnbq, binary_move_narrow, integer_16_32, m_or_none) > DEF_MVE_FUNCTION (vmovntq, binary_move_narrow, integer_16_32, m_or_none) > DEF_MVE_FUNCTION (vmulhq, binary, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vmullbq_int, binary_widen, all_integer, mx_or_none) > -DEF_MVE_FUNCTION (vmulltq_int, binary_widen, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vmullbq_poly, binary_widen_poly, poly_8_16, mx_or_none) > +DEF_MVE_FUNCTION (vmulltq_int, binary_widen, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vmulltq_poly, binary_widen_poly, poly_8_16, mx_or_none) > DEF_MVE_FUNCTION (vmulq, binary_opt_n, all_integer, mx_or_none) > DEF_MVE_FUNCTION (vmvnq, mvn, all_integer, mx_or_none) > @@ -162,23 +162,24 @@ DEF_MVE_FUNCTION (vabsq, unary, all_float, mx_or_none) > DEF_MVE_FUNCTION (vaddq, binary_opt_n, all_float, mx_or_none) > DEF_MVE_FUNCTION (vandq, binary, all_float, mx_or_none) > DEF_MVE_FUNCTION (vbrsrq, binary_imm32, all_float, mx_or_none) > -DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_float, mx_or_none) > DEF_MVE_FUNCTION (vcaddq_rot270, binary, all_float, mx_or_none) > +DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_float, mx_or_none) > DEF_MVE_FUNCTION (vcmlaq, ternary, all_float, m_or_none) > -DEF_MVE_FUNCTION (vcmlaq_rot90, ternary, all_float, m_or_none) > DEF_MVE_FUNCTION (vcmlaq_rot180, ternary, all_float, m_or_none) > DEF_MVE_FUNCTION (vcmlaq_rot270, ternary, all_float, m_or_none) > -DEF_MVE_FUNCTION (vcmulq, binary, all_float, mx_or_none) > -DEF_MVE_FUNCTION (vcmulq_rot90, binary, all_float, mx_or_none) > -DEF_MVE_FUNCTION (vcmulq_rot180, binary, all_float, mx_or_none) > -DEF_MVE_FUNCTION (vcmulq_rot270, binary, all_float, mx_or_none) > +DEF_MVE_FUNCTION (vcmlaq_rot90, ternary, all_float, m_or_none) > DEF_MVE_FUNCTION (vcmpeqq, cmp, all_float, m_or_none) > DEF_MVE_FUNCTION (vcmpgeq, cmp, all_float, m_or_none) > DEF_MVE_FUNCTION (vcmpgtq, cmp, all_float, m_or_none) > DEF_MVE_FUNCTION (vcmpleq, cmp, all_float, m_or_none) > DEF_MVE_FUNCTION (vcmpltq, cmp, all_float, m_or_none) > DEF_MVE_FUNCTION (vcmpneq, cmp, all_float, m_or_none) > +DEF_MVE_FUNCTION (vcmulq, binary, all_float, mx_or_none) > +DEF_MVE_FUNCTION (vcmulq_rot180, binary, all_float, mx_or_none) > +DEF_MVE_FUNCTION (vcmulq_rot270, binary, all_float, mx_or_none) > +DEF_MVE_FUNCTION (vcmulq_rot90, binary, all_float, mx_or_none) > DEF_MVE_FUNCTION (vcreateq, create, all_float, none) > +DEF_MVE_FUNCTION (vcvtq, vcvt, cvt, mx_or_none) > DEF_MVE_FUNCTION (vdupq, unary_n, all_float, mx_or_none) > DEF_MVE_FUNCTION (veorq, binary, all_float, mx_or_none) > DEF_MVE_FUNCTION (vfmaq, ternary_opt_n, all_float, m_or_none) > diff --git a/gcc/config/arm/arm-mve-builtins-base.h b/gcc/config/arm/arm-mve-builtins-base.h > index c9b52a81c5e..dee73d9c457 100644 > --- a/gcc/config/arm/arm-mve-builtins-base.h > +++ b/gcc/config/arm/arm-mve-builtins-base.h > @@ -54,6 +54,7 @@ extern const function_base *const vcmulq_rot180; > extern const function_base *const vcmulq_rot270; > extern const function_base *const vcmulq_rot90; > extern const function_base *const vcreateq; > +extern const function_base *const vcvtq; > extern const function_base *const vdupq; > extern const function_base *const veorq; > extern const function_base *const vfmaq; > diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc > index ea44f463dd8..3c5b54dade1 100644 > --- a/gcc/config/arm/arm-mve-builtins.cc > +++ b/gcc/config/arm/arm-mve-builtins.cc > @@ -205,6 +205,20 @@ CONSTEXPR const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = { > #define TYPES_signed_32(S, D) \ > S (s32) > > +/* All the type combinations allowed by vcvtq. */ > +#define TYPES_cvt(S, D) \ > + D (f16, s16), \ > + D (f16, u16), \ > + \ > + D (f32, s32), \ > + D (f32, u32), \ > + \ > + D (s16, f16), \ > + D (s32, f32), \ > + \ > + D (u16, f16), \ > + D (u32, f32) > + > #define TYPES_reinterpret_signed1(D, A) \ > D (A, s8), D (A, s16), D (A, s32), D (A, s64) > > @@ -284,6 +298,7 @@ DEF_MVE_TYPES_ARRAY (integer_32); > DEF_MVE_TYPES_ARRAY (poly_8_16); > DEF_MVE_TYPES_ARRAY (signed_16_32); > DEF_MVE_TYPES_ARRAY (signed_32); > +DEF_MVE_TYPES_ARRAY (cvt); > DEF_MVE_TYPES_ARRAY (reinterpret_integer); > DEF_MVE_TYPES_ARRAY (reinterpret_float); > > diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h > index ae1b5438797..07897f510f5 100644 > --- a/gcc/config/arm/arm_mve.h > +++ b/gcc/config/arm/arm_mve.h > @@ -139,18 +139,12 @@ > #define vshlcq_m(__a, __b, __imm, __p) __arm_vshlcq_m(__a, __b, __imm, __p) > #define vcvttq_f32(__a) __arm_vcvttq_f32(__a) > #define vcvtbq_f32(__a) __arm_vcvtbq_f32(__a) > -#define vcvtq(__a) __arm_vcvtq(__a) > -#define vcvtq_n(__a, __imm6) __arm_vcvtq_n(__a, __imm6) > #define vcvtaq_m(__inactive, __a, __p) __arm_vcvtaq_m(__inactive, __a, __p) > -#define vcvtq_m(__inactive, __a, __p) __arm_vcvtq_m(__inactive, __a, __p) > #define vcvtbq_m(__a, __b, __p) __arm_vcvtbq_m(__a, __b, __p) > #define vcvttq_m(__a, __b, __p) __arm_vcvttq_m(__a, __b, __p) > #define vcvtmq_m(__inactive, __a, __p) __arm_vcvtmq_m(__inactive, __a, __p) > #define vcvtnq_m(__inactive, __a, __p) __arm_vcvtnq_m(__inactive, __a, __p) > #define vcvtpq_m(__inactive, __a, __p) __arm_vcvtpq_m(__inactive, __a, __p) > -#define vcvtq_m_n(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n(__inactive, __a, __imm6, __p) > -#define vcvtq_x(__a, __p) __arm_vcvtq_x(__a, __p) > -#define vcvtq_x_n(__a, __imm6, __p) __arm_vcvtq_x_n(__a, __imm6, __p) > > > #define vst4q_s8( __addr, __value) __arm_vst4q_s8( __addr, __value) > @@ -163,10 +157,6 @@ > #define vst4q_f32( __addr, __value) __arm_vst4q_f32( __addr, __value) > #define vcvttq_f32_f16(__a) __arm_vcvttq_f32_f16(__a) > #define vcvtbq_f32_f16(__a) __arm_vcvtbq_f32_f16(__a) > -#define vcvtq_f16_s16(__a) __arm_vcvtq_f16_s16(__a) > -#define vcvtq_f32_s32(__a) __arm_vcvtq_f32_s32(__a) > -#define vcvtq_f16_u16(__a) __arm_vcvtq_f16_u16(__a) > -#define vcvtq_f32_u32(__a) __arm_vcvtq_f32_u32(__a) > #define vcvtaq_s16_f16(__a) __arm_vcvtaq_s16_f16(__a) > #define vcvtaq_s32_f32(__a) __arm_vcvtaq_s32_f32(__a) > #define vcvtnq_s16_f16(__a) __arm_vcvtnq_s16_f16(__a) > @@ -175,10 +165,6 @@ > #define vcvtpq_s32_f32(__a) __arm_vcvtpq_s32_f32(__a) > #define vcvtmq_s16_f16(__a) __arm_vcvtmq_s16_f16(__a) > #define vcvtmq_s32_f32(__a) __arm_vcvtmq_s32_f32(__a) > -#define vcvtq_s16_f16(__a) __arm_vcvtq_s16_f16(__a) > -#define vcvtq_s32_f32(__a) __arm_vcvtq_s32_f32(__a) > -#define vcvtq_u16_f16(__a) __arm_vcvtq_u16_f16(__a) > -#define vcvtq_u32_f32(__a) __arm_vcvtq_u32_f32(__a) > #define vcvtpq_u16_f16(__a) __arm_vcvtpq_u16_f16(__a) > #define vcvtpq_u32_f32(__a) __arm_vcvtpq_u32_f32(__a) > #define vcvtnq_u16_f16(__a) __arm_vcvtnq_u16_f16(__a) > @@ -192,14 +178,6 @@ > #define vctp64q(__a) __arm_vctp64q(__a) > #define vctp8q(__a) __arm_vctp8q(__a) > #define vpnot(__a) __arm_vpnot(__a) > -#define vcvtq_n_f16_s16(__a, __imm6) __arm_vcvtq_n_f16_s16(__a, __imm6) > -#define vcvtq_n_f32_s32(__a, __imm6) __arm_vcvtq_n_f32_s32(__a, __imm6) > -#define vcvtq_n_f16_u16(__a, __imm6) __arm_vcvtq_n_f16_u16(__a, __imm6) > -#define vcvtq_n_f32_u32(__a, __imm6) __arm_vcvtq_n_f32_u32(__a, __imm6) > -#define vcvtq_n_s16_f16(__a, __imm6) __arm_vcvtq_n_s16_f16(__a, __imm6) > -#define vcvtq_n_s32_f32(__a, __imm6) __arm_vcvtq_n_s32_f32(__a, __imm6) > -#define vcvtq_n_u16_f16(__a, __imm6) __arm_vcvtq_n_u16_f16(__a, __imm6) > -#define vcvtq_n_u32_f32(__a, __imm6) __arm_vcvtq_n_u32_f32(__a, __imm6) > #define vornq_u8(__a, __b) __arm_vornq_u8(__a, __b) > #define vbicq_u8(__a, __b) __arm_vbicq_u8(__a, __b) > #define vornq_s8(__a, __b) __arm_vornq_s8(__a, __b) > @@ -234,10 +212,6 @@ > #define vcvtaq_m_u16_f16(__inactive, __a, __p) __arm_vcvtaq_m_u16_f16(__inactive, __a, __p) > #define vcvtaq_m_s32_f32(__inactive, __a, __p) __arm_vcvtaq_m_s32_f32(__inactive, __a, __p) > #define vcvtaq_m_u32_f32(__inactive, __a, __p) __arm_vcvtaq_m_u32_f32(__inactive, __a, __p) > -#define vcvtq_m_f16_s16(__inactive, __a, __p) __arm_vcvtq_m_f16_s16(__inactive, __a, __p) > -#define vcvtq_m_f16_u16(__inactive, __a, __p) __arm_vcvtq_m_f16_u16(__inactive, __a, __p) > -#define vcvtq_m_f32_s32(__inactive, __a, __p) __arm_vcvtq_m_f32_s32(__inactive, __a, __p) > -#define vcvtq_m_f32_u32(__inactive, __a, __p) __arm_vcvtq_m_f32_u32(__inactive, __a, __p) > #define vshlcq_s8(__a, __b, __imm) __arm_vshlcq_s8(__a, __b, __imm) > #define vshlcq_u8(__a, __b, __imm) __arm_vshlcq_u8(__a, __b, __imm) > #define vshlcq_s16(__a, __b, __imm) __arm_vshlcq_s16(__a, __b, __imm) > @@ -251,23 +225,15 @@ > #define vcvtmq_m_s16_f16(__inactive, __a, __p) __arm_vcvtmq_m_s16_f16(__inactive, __a, __p) > #define vcvtnq_m_s16_f16(__inactive, __a, __p) __arm_vcvtnq_m_s16_f16(__inactive, __a, __p) > #define vcvtpq_m_s16_f16(__inactive, __a, __p) __arm_vcvtpq_m_s16_f16(__inactive, __a, __p) > -#define vcvtq_m_s16_f16(__inactive, __a, __p) __arm_vcvtq_m_s16_f16(__inactive, __a, __p) > #define vcvtmq_m_u16_f16(__inactive, __a, __p) __arm_vcvtmq_m_u16_f16(__inactive, __a, __p) > #define vcvtnq_m_u16_f16(__inactive, __a, __p) __arm_vcvtnq_m_u16_f16(__inactive, __a, __p) > #define vcvtpq_m_u16_f16(__inactive, __a, __p) __arm_vcvtpq_m_u16_f16(__inactive, __a, __p) > -#define vcvtq_m_u16_f16(__inactive, __a, __p) __arm_vcvtq_m_u16_f16(__inactive, __a, __p) > #define vcvtmq_m_s32_f32(__inactive, __a, __p) __arm_vcvtmq_m_s32_f32(__inactive, __a, __p) > #define vcvtnq_m_s32_f32(__inactive, __a, __p) __arm_vcvtnq_m_s32_f32(__inactive, __a, __p) > #define vcvtpq_m_s32_f32(__inactive, __a, __p) __arm_vcvtpq_m_s32_f32(__inactive, __a, __p) > -#define vcvtq_m_s32_f32(__inactive, __a, __p) __arm_vcvtq_m_s32_f32(__inactive, __a, __p) > #define vcvtmq_m_u32_f32(__inactive, __a, __p) __arm_vcvtmq_m_u32_f32(__inactive, __a, __p) > #define vcvtnq_m_u32_f32(__inactive, __a, __p) __arm_vcvtnq_m_u32_f32(__inactive, __a, __p) > #define vcvtpq_m_u32_f32(__inactive, __a, __p) __arm_vcvtpq_m_u32_f32(__inactive, __a, __p) > -#define vcvtq_m_u32_f32(__inactive, __a, __p) __arm_vcvtq_m_u32_f32(__inactive, __a, __p) > -#define vcvtq_m_n_f16_u16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f16_u16(__inactive, __a, __imm6, __p) > -#define vcvtq_m_n_f16_s16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f16_s16(__inactive, __a, __imm6, __p) > -#define vcvtq_m_n_f32_u32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f32_u32(__inactive, __a, __imm6, __p) > -#define vcvtq_m_n_f32_s32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f32_s32(__inactive, __a, __imm6, __p) > #define vbicq_m_s8(__inactive, __a, __b, __p) __arm_vbicq_m_s8(__inactive, __a, __b, __p) > #define vbicq_m_s32(__inactive, __a, __b, __p) __arm_vbicq_m_s32(__inactive, __a, __b, __p) > #define vbicq_m_s16(__inactive, __a, __b, __p) __arm_vbicq_m_s16(__inactive, __a, __b, __p) > @@ -282,10 +248,6 @@ > #define vornq_m_u16(__inactive, __a, __b, __p) __arm_vornq_m_u16(__inactive, __a, __b, __p) > #define vbicq_m_f32(__inactive, __a, __b, __p) __arm_vbicq_m_f32(__inactive, __a, __b, __p) > #define vbicq_m_f16(__inactive, __a, __b, __p) __arm_vbicq_m_f16(__inactive, __a, __b, __p) > -#define vcvtq_m_n_s32_f32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_s32_f32(__inactive, __a, __imm6, __p) > -#define vcvtq_m_n_s16_f16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_s16_f16(__inactive, __a, __imm6, __p) > -#define vcvtq_m_n_u32_f32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_u32_f32(__inactive, __a, __imm6, __p) > -#define vcvtq_m_n_u16_f16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_u16_f16(__inactive, __a, __imm6, __p) > #define vornq_m_f32(__inactive, __a, __b, __p) __arm_vornq_m_f32(__inactive, __a, __b, __p) > #define vornq_m_f16(__inactive, __a, __b, __p) __arm_vornq_m_f16(__inactive, __a, __b, __p) > #define vstrbq_s8( __addr, __value) __arm_vstrbq_s8( __addr, __value) > @@ -600,22 +562,6 @@ > #define vcvtmq_x_u32_f32(__a, __p) __arm_vcvtmq_x_u32_f32(__a, __p) > #define vcvtbq_x_f32_f16(__a, __p) __arm_vcvtbq_x_f32_f16(__a, __p) > #define vcvttq_x_f32_f16(__a, __p) __arm_vcvttq_x_f32_f16(__a, __p) > -#define vcvtq_x_f16_u16(__a, __p) __arm_vcvtq_x_f16_u16(__a, __p) > -#define vcvtq_x_f16_s16(__a, __p) __arm_vcvtq_x_f16_s16(__a, __p) > -#define vcvtq_x_f32_s32(__a, __p) __arm_vcvtq_x_f32_s32(__a, __p) > -#define vcvtq_x_f32_u32(__a, __p) __arm_vcvtq_x_f32_u32(__a, __p) > -#define vcvtq_x_n_f16_s16(__a, __imm6, __p) __arm_vcvtq_x_n_f16_s16(__a, __imm6, __p) > -#define vcvtq_x_n_f16_u16(__a, __imm6, __p) __arm_vcvtq_x_n_f16_u16(__a, __imm6, __p) > -#define vcvtq_x_n_f32_s32(__a, __imm6, __p) __arm_vcvtq_x_n_f32_s32(__a, __imm6, __p) > -#define vcvtq_x_n_f32_u32(__a, __imm6, __p) __arm_vcvtq_x_n_f32_u32(__a, __imm6, __p) > -#define vcvtq_x_s16_f16(__a, __p) __arm_vcvtq_x_s16_f16(__a, __p) > -#define vcvtq_x_s32_f32(__a, __p) __arm_vcvtq_x_s32_f32(__a, __p) > -#define vcvtq_x_u16_f16(__a, __p) __arm_vcvtq_x_u16_f16(__a, __p) > -#define vcvtq_x_u32_f32(__a, __p) __arm_vcvtq_x_u32_f32(__a, __p) > -#define vcvtq_x_n_s16_f16(__a, __imm6, __p) __arm_vcvtq_x_n_s16_f16(__a, __imm6, __p) > -#define vcvtq_x_n_s32_f32(__a, __imm6, __p) __arm_vcvtq_x_n_s32_f32(__a, __imm6, __p) > -#define vcvtq_x_n_u16_f16(__a, __imm6, __p) __arm_vcvtq_x_n_u16_f16(__a, __imm6, __p) > -#define vcvtq_x_n_u32_f32(__a, __imm6, __p) __arm_vcvtq_x_n_u32_f32(__a, __imm6, __p) > #define vbicq_x_f16(__a, __b, __p) __arm_vbicq_x_f16(__a, __b, __p) > #define vbicq_x_f32(__a, __b, __p) __arm_vbicq_x_f32(__a, __b, __p) > #define vornq_x_f16(__a, __b, __p) __arm_vornq_x_f16(__a, __b, __p) > @@ -3772,62 +3718,6 @@ __arm_vcvtbq_f32_f16 (float16x8_t __a) > return __builtin_mve_vcvtbq_f32_f16v4sf (__a); > } > > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_f16_s16 (int16x8_t __a) > -{ > - return __builtin_mve_vcvtq_to_f_sv8hf (__a); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_f32_s32 (int32x4_t __a) > -{ > - return __builtin_mve_vcvtq_to_f_sv4sf (__a); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_f16_u16 (uint16x8_t __a) > -{ > - return __builtin_mve_vcvtq_to_f_uv8hf (__a); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_f32_u32 (uint32x4_t __a) > -{ > - return __builtin_mve_vcvtq_to_f_uv4sf (__a); > -} > - > -__extension__ extern __inline int16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_s16_f16 (float16x8_t __a) > -{ > - return __builtin_mve_vcvtq_from_f_sv8hi (__a); > -} > - > -__extension__ extern __inline int32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_s32_f32 (float32x4_t __a) > -{ > - return __builtin_mve_vcvtq_from_f_sv4si (__a); > -} > - > -__extension__ extern __inline uint16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_u16_f16 (float16x8_t __a) > -{ > - return __builtin_mve_vcvtq_from_f_uv8hi (__a); > -} > - > -__extension__ extern __inline uint32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_u32_f32 (float32x4_t __a) > -{ > - return __builtin_mve_vcvtq_from_f_uv4si (__a); > -} > - > __extension__ extern __inline uint16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vcvtpq_u16_f16 (float16x8_t __a) > @@ -3940,62 +3830,6 @@ __arm_vcvtmq_s32_f32 (float32x4_t __a) > return __builtin_mve_vcvtmq_sv4si (__a); > } > > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n_f16_s16 (int16x8_t __a, const int __imm6) > -{ > - return __builtin_mve_vcvtq_n_to_f_sv8hf (__a, __imm6); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n_f32_s32 (int32x4_t __a, const int __imm6) > -{ > - return __builtin_mve_vcvtq_n_to_f_sv4sf (__a, __imm6); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n_f16_u16 (uint16x8_t __a, const int __imm6) > -{ > - return __builtin_mve_vcvtq_n_to_f_uv8hf (__a, __imm6); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n_f32_u32 (uint32x4_t __a, const int __imm6) > -{ > - return __builtin_mve_vcvtq_n_to_f_uv4sf (__a, __imm6); > -} > - > -__extension__ extern __inline int16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n_s16_f16 (float16x8_t __a, const int __imm6) > -{ > - return __builtin_mve_vcvtq_n_from_f_sv8hi (__a, __imm6); > -} > - > -__extension__ extern __inline int32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n_s32_f32 (float32x4_t __a, const int __imm6) > -{ > - return __builtin_mve_vcvtq_n_from_f_sv4si (__a, __imm6); > -} > - > -__extension__ extern __inline uint16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n_u16_f16 (float16x8_t __a, const int __imm6) > -{ > - return __builtin_mve_vcvtq_n_from_f_uv8hi (__a, __imm6); > -} > - > -__extension__ extern __inline uint32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n_u32_f32 (float32x4_t __a, const int __imm6) > -{ > - return __builtin_mve_vcvtq_n_from_f_uv4si (__a, __imm6); > -} > - > __extension__ extern __inline float16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vornq_f16 (float16x8_t __a, float16x8_t __b) > @@ -4066,34 +3900,6 @@ __arm_vcvtaq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p > return __builtin_mve_vcvtaq_m_uv4si (__inactive, __a, __p); > } > > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_f16_s16 (float16x8_t __inactive, int16x8_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_to_f_sv8hf (__inactive, __a, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_f16_u16 (float16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_to_f_uv8hf (__inactive, __a, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_f32_s32 (float32x4_t __inactive, int32x4_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_to_f_sv4sf (__inactive, __a, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_f32_u32 (float32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_to_f_uv4sf (__inactive, __a, __p); > -} > - > > __extension__ extern __inline float16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > @@ -4144,13 +3950,6 @@ __arm_vcvtpq_m_s16_f16 (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > return __builtin_mve_vcvtpq_m_sv8hi (__inactive, __a, __p); > } > > -__extension__ extern __inline int16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_s16_f16 (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_from_f_sv8hi (__inactive, __a, __p); > -} > - > __extension__ extern __inline uint16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vcvtmq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > @@ -4172,13 +3971,6 @@ __arm_vcvtpq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p > return __builtin_mve_vcvtpq_m_uv8hi (__inactive, __a, __p); > } > > -__extension__ extern __inline uint16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_from_f_uv8hi (__inactive, __a, __p); > -} > - > __extension__ extern __inline int32x4_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vcvtmq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > @@ -4200,13 +3992,6 @@ __arm_vcvtpq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > return __builtin_mve_vcvtpq_m_sv4si (__inactive, __a, __p); > } > > -__extension__ extern __inline int32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_from_f_sv4si (__inactive, __a, __p); > -} > - > __extension__ extern __inline uint32x4_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vcvtmq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > @@ -4228,41 +4013,6 @@ __arm_vcvtpq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p > return __builtin_mve_vcvtpq_m_uv4si (__inactive, __a, __p); > } > > -__extension__ extern __inline uint32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_from_f_uv4si (__inactive, __a, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n_f16_u16 (float16x8_t __inactive, uint16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_to_f_uv8hf (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n_f16_s16 (float16x8_t __inactive, int16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_to_f_sv8hf (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n_f32_u32 (float32x4_t __inactive, uint32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_to_f_uv4sf (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n_f32_s32 (float32x4_t __inactive, int32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_to_f_sv4sf (__inactive, __a, __imm6, __p); > -} > - > __extension__ extern __inline float32x4_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vbicq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) > @@ -4277,34 +4027,6 @@ __arm_vbicq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve > return __builtin_mve_vbicq_m_fv8hf (__inactive, __a, __b, __p); > } > > -__extension__ extern __inline int32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n_s32_f32 (int32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_from_f_sv4si (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline int16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n_s16_f16 (int16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_from_f_sv8hi (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline uint32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n_u32_f32 (uint32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_from_f_uv4si (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline uint16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n_u16_f16 (uint16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_from_f_uv8hi (__inactive, __a, __imm6, __p); > -} > - > __extension__ extern __inline float32x4_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vornq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) > @@ -4675,118 +4397,6 @@ __arm_vcvttq_x_f32_f16 (float16x8_t __a, mve_pred16_t __p) > return __builtin_mve_vcvttq_m_f32_f16v4sf (__arm_vuninitializedq_f32 (), __a, __p); > } > > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_f16_u16 (uint16x8_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_to_f_uv8hf (__arm_vuninitializedq_f16 (), __a, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_f16_s16 (int16x8_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_to_f_sv8hf (__arm_vuninitializedq_f16 (), __a, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_f32_s32 (int32x4_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_to_f_sv4sf (__arm_vuninitializedq_f32 (), __a, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_f32_u32 (uint32x4_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_to_f_uv4sf (__arm_vuninitializedq_f32 (), __a, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n_f16_s16 (int16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_to_f_sv8hf (__arm_vuninitializedq_f16 (), __a, __imm6, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n_f16_u16 (uint16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_to_f_uv8hf (__arm_vuninitializedq_f16 (), __a, __imm6, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n_f32_s32 (int32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_to_f_sv4sf (__arm_vuninitializedq_f32 (), __a, __imm6, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n_f32_u32 (uint32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_to_f_uv4sf (__arm_vuninitializedq_f32 (), __a, __imm6, __p); > -} > - > -__extension__ extern __inline int16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_s16_f16 (float16x8_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_from_f_sv8hi (__arm_vuninitializedq_s16 (), __a, __p); > -} > - > -__extension__ extern __inline int32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_s32_f32 (float32x4_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_from_f_sv4si (__arm_vuninitializedq_s32 (), __a, __p); > -} > - > -__extension__ extern __inline uint16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_u16_f16 (float16x8_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_from_f_uv8hi (__arm_vuninitializedq_u16 (), __a, __p); > -} > - > -__extension__ extern __inline uint32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_u32_f32 (float32x4_t __a, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_from_f_uv4si (__arm_vuninitializedq_u32 (), __a, __p); > -} > - > -__extension__ extern __inline int16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n_s16_f16 (float16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_from_f_sv8hi (__arm_vuninitializedq_s16 (), __a, __imm6, __p); > -} > - > -__extension__ extern __inline int32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n_s32_f32 (float32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_from_f_sv4si (__arm_vuninitializedq_s32 (), __a, __imm6, __p); > -} > - > -__extension__ extern __inline uint16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n_u16_f16 (float16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_from_f_uv8hi (__arm_vuninitializedq_u16 (), __a, __imm6, __p); > -} > - > -__extension__ extern __inline uint32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n_u32_f32 (float32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __builtin_mve_vcvtq_m_n_from_f_uv4si (__arm_vuninitializedq_u32 (), __a, __imm6, __p); > -} > - > __extension__ extern __inline float16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vbicq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p) > @@ -7231,62 +6841,6 @@ __arm_vcvtbq_f32 (float16x8_t __a) > return __arm_vcvtbq_f32_f16 (__a); > } > > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq (int16x8_t __a) > -{ > - return __arm_vcvtq_f16_s16 (__a); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq (int32x4_t __a) > -{ > - return __arm_vcvtq_f32_s32 (__a); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq (uint16x8_t __a) > -{ > - return __arm_vcvtq_f16_u16 (__a); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq (uint32x4_t __a) > -{ > - return __arm_vcvtq_f32_u32 (__a); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n (int16x8_t __a, const int __imm6) > -{ > - return __arm_vcvtq_n_f16_s16 (__a, __imm6); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n (int32x4_t __a, const int __imm6) > -{ > - return __arm_vcvtq_n_f32_s32 (__a, __imm6); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n (uint16x8_t __a, const int __imm6) > -{ > - return __arm_vcvtq_n_f16_u16 (__a, __imm6); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_n (uint32x4_t __a, const int __imm6) > -{ > - return __arm_vcvtq_n_f32_u32 (__a, __imm6); > -} > - > __extension__ extern __inline float16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vornq (float16x8_t __a, float16x8_t __b) > @@ -7343,34 +6897,6 @@ __arm_vcvtaq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > return __arm_vcvtaq_m_u32_f32 (__inactive, __a, __p); > } > > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m (float16x8_t __inactive, int16x8_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_f16_s16 (__inactive, __a, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m (float16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_f16_u16 (__inactive, __a, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m (float32x4_t __inactive, int32x4_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_f32_s32 (__inactive, __a, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m (float32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_f32_u32 (__inactive, __a, __p); > -} > - > __extension__ extern __inline float16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vcvtbq_m (float16x8_t __a, float32x4_t __b, mve_pred16_t __p) > @@ -7420,13 +6946,6 @@ __arm_vcvtpq_m (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > return __arm_vcvtpq_m_s16_f16 (__inactive, __a, __p); > } > > -__extension__ extern __inline int16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_s16_f16 (__inactive, __a, __p); > -} > - > __extension__ extern __inline uint16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vcvtmq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > @@ -7448,13 +6967,6 @@ __arm_vcvtpq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > return __arm_vcvtpq_m_u16_f16 (__inactive, __a, __p); > } > > -__extension__ extern __inline uint16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_u16_f16 (__inactive, __a, __p); > -} > - > __extension__ extern __inline int32x4_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vcvtmq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > @@ -7476,13 +6988,6 @@ __arm_vcvtpq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > return __arm_vcvtpq_m_s32_f32 (__inactive, __a, __p); > } > > -__extension__ extern __inline int32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_s32_f32 (__inactive, __a, __p); > -} > - > __extension__ extern __inline uint32x4_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vcvtmq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > @@ -7504,41 +7009,6 @@ __arm_vcvtpq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > return __arm_vcvtpq_m_u32_f32 (__inactive, __a, __p); > } > > -__extension__ extern __inline uint32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_u32_f32 (__inactive, __a, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n (float16x8_t __inactive, uint16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_n_f16_u16 (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n (float16x8_t __inactive, int16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_n_f16_s16 (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n (float32x4_t __inactive, uint32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_n_f32_u32 (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n (float32x4_t __inactive, int32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_n_f32_s32 (__inactive, __a, __imm6, __p); > -} > - > __extension__ extern __inline float32x4_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vbicq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) > @@ -7553,34 +7023,6 @@ __arm_vbicq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pre > return __arm_vbicq_m_f16 (__inactive, __a, __b, __p); > } > > -__extension__ extern __inline int32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n (int32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_n_s32_f32 (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline int16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n (int16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_n_s16_f16 (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline uint32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n (uint32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_n_u32_f32 (__inactive, __a, __imm6, __p); > -} > - > -__extension__ extern __inline uint16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_m_n (uint16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_m_n_u16_f16 (__inactive, __a, __imm6, __p); > -} > - > __extension__ extern __inline float32x4_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vornq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) > @@ -7763,62 +7205,6 @@ __arm_vstrwq_scatter_base_wb_p (uint32x4_t * __addr, const int __offset, float32 > __arm_vstrwq_scatter_base_wb_p_f32 (__addr, __offset, __value, __p); > } > > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x (uint16x8_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_x_f16_u16 (__a, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x (int16x8_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_x_f16_s16 (__a, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x (int32x4_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_x_f32_s32 (__a, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x (uint32x4_t __a, mve_pred16_t __p) > -{ > - return __arm_vcvtq_x_f32_u32 (__a, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n (int16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_x_n_f16_s16 (__a, __imm6, __p); > -} > - > -__extension__ extern __inline float16x8_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n (uint16x8_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_x_n_f16_u16 (__a, __imm6, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n (int32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_x_n_f32_s32 (__a, __imm6, __p); > -} > - > -__extension__ extern __inline float32x4_t > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > -__arm_vcvtq_x_n (uint32x4_t __a, const int __imm6, mve_pred16_t __p) > -{ > - return __arm_vcvtq_x_n_f32_u32 (__a, __imm6, __p); > -} > - > __extension__ extern __inline float16x8_t > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > __arm_vbicq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p) > @@ -8276,20 +7662,6 @@ extern void *__ARM_undef; > _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ > int (*)[__ARM_mve_type_float16x8_t]: __arm_vcvttq_f32_f16 (__ARM_mve_coerce(__p0, float16x8_t)));}) > > -#define __arm_vcvtq(p0) ({ __typeof(p0) __p0 = (p0); \ > - _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ > - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \ > - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_f32_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \ > - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \ > - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));}) > - > -#define __arm_vcvtq_n(p0,p1) ({ __typeof(p0) __p0 = (p0); \ > - _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ > - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_n_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \ > - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_n_f32_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \ > - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_n_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \ > - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_n_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));}) > - > #define __arm_vbicq(p0,p1) ({ __typeof(p0) __p0 = (p0); \ > __typeof(p1) __p1 = (p1); \ > _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > @@ -8342,30 +7714,6 @@ extern void *__ARM_undef; > int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtaq_m_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ > int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtaq_m_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));}) > > -#define __arm_vcvtq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ > - __typeof(p1) __p1 = (p1); \ > - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcvtq_m_f16_s16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \ > - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcvtq_m_f32_s32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \ > - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcvtq_m_f16_u16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcvtq_m_f32_u32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \ > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_s16_f16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_s32_f32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2), \ > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));}) > - > -#define __arm_vcvtq_m_n(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \ > - __typeof(p1) __p1 = (p1); \ > - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_n_s16_f16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2, p3), \ > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_n_s32_f32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2, p3), \ > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_n_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2, p3), \ > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_n_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2, p3), \ > - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcvtq_m_n_f16_s16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \ > - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcvtq_m_n_f32_s32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \ > - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcvtq_m_n_f16_u16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \ > - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcvtq_m_n_f32_u32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));}) > - > #define __arm_vcvtbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ > __typeof(p1) __p1 = (p1); \ > _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > @@ -8730,20 +8078,6 @@ extern void *__ARM_undef; > int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vbicq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \ > int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vbicq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));}) > > -#define __arm_vcvtq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \ > - _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \ > - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_x_f16_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \ > - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_x_f32_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \ > - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_x_f16_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2), \ > - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_x_f32_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2));}) > - > -#define __arm_vcvtq_x_n(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \ > - _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \ > - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_x_n_f16_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \ > - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_x_n_f32_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2, p3), \ > - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_x_n_f16_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \ > - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_x_n_f32_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));}) > - > #define __arm_vornq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \ > __typeof(p2) __p2 = (p2); \ > _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \
On 10/14/24 19:05, Richard Earnshaw (lists) wrote: > On 04/09/2024 14:26, Christophe Lyon wrote: >> Implement vcvtq using the new MVE builtins framework. >> >> In config/arm/arm-mve-builtins-base.def, the patch also restores the >> alphabetical order. >> >> 2024-07-11 Christophe Lyon <christophe.lyon@linaro.org> >> >> gcc/ >> * config/arm/arm-mve-builtins-base.cc (class vcvtq_impl): New. >> (vcvtq): New. >> * config/arm/arm-mve-builtins-base.def (vcvtq): New. >> * config/arm/arm-mve-builtins-base.h (vcvtq): New. >> * config/arm/arm-mve-builtins.cc (cvt): New type. >> * config/arm/arm_mve.h (vcvtq): Delete. >> (vcvtq_n): Delete. >> (vcvtq_m): Delete. >> (vcvtq_m_n): Delete. >> (vcvtq_x): Delete. >> (vcvtq_x_n): Delete. >> (vcvtq_f16_s16): Delete. >> (vcvtq_f32_s32): Delete. >> (vcvtq_f16_u16): Delete. >> (vcvtq_f32_u32): Delete. >> (vcvtq_s16_f16): Delete. >> (vcvtq_s32_f32): Delete. >> (vcvtq_u16_f16): Delete. >> (vcvtq_u32_f32): Delete. >> (vcvtq_n_f16_s16): Delete. >> (vcvtq_n_f32_s32): Delete. >> (vcvtq_n_f16_u16): Delete. >> (vcvtq_n_f32_u32): Delete. >> (vcvtq_n_s16_f16): Delete. >> (vcvtq_n_s32_f32): Delete. >> (vcvtq_n_u16_f16): Delete. >> (vcvtq_n_u32_f32): Delete. >> (vcvtq_m_f16_s16): Delete. >> (vcvtq_m_f16_u16): Delete. >> (vcvtq_m_f32_s32): Delete. >> (vcvtq_m_f32_u32): Delete. >> (vcvtq_m_s16_f16): Delete. >> (vcvtq_m_u16_f16): Delete. >> (vcvtq_m_s32_f32): Delete. >> (vcvtq_m_u32_f32): Delete. >> (vcvtq_m_n_f16_u16): Delete. >> (vcvtq_m_n_f16_s16): Delete. >> (vcvtq_m_n_f32_u32): Delete. >> (vcvtq_m_n_f32_s32): Delete. >> (vcvtq_m_n_s32_f32): Delete. >> (vcvtq_m_n_s16_f16): Delete. >> (vcvtq_m_n_u32_f32): Delete. >> (vcvtq_m_n_u16_f16): Delete. >> (vcvtq_x_f16_u16): Delete. >> (vcvtq_x_f16_s16): Delete. >> (vcvtq_x_f32_s32): Delete. >> (vcvtq_x_f32_u32): Delete. >> (vcvtq_x_n_f16_s16): Delete. >> (vcvtq_x_n_f16_u16): Delete. >> (vcvtq_x_n_f32_s32): Delete. >> (vcvtq_x_n_f32_u32): Delete. >> (vcvtq_x_s16_f16): Delete. >> (vcvtq_x_s32_f32): Delete. >> (vcvtq_x_u16_f16): Delete. >> (vcvtq_x_u32_f32): Delete. >> (vcvtq_x_n_s16_f16): Delete. >> (vcvtq_x_n_s32_f32): Delete. >> (vcvtq_x_n_u16_f16): Delete. >> (vcvtq_x_n_u32_f32): Delete. >> (__arm_vcvtq_f16_s16): Delete. >> (__arm_vcvtq_f32_s32): Delete. >> (__arm_vcvtq_f16_u16): Delete. >> (__arm_vcvtq_f32_u32): Delete. >> (__arm_vcvtq_s16_f16): Delete. >> (__arm_vcvtq_s32_f32): Delete. >> (__arm_vcvtq_u16_f16): Delete. >> (__arm_vcvtq_u32_f32): Delete. >> (__arm_vcvtq_n_f16_s16): Delete. >> (__arm_vcvtq_n_f32_s32): Delete. >> (__arm_vcvtq_n_f16_u16): Delete. >> (__arm_vcvtq_n_f32_u32): Delete. >> (__arm_vcvtq_n_s16_f16): Delete. >> (__arm_vcvtq_n_s32_f32): Delete. >> (__arm_vcvtq_n_u16_f16): Delete. >> (__arm_vcvtq_n_u32_f32): Delete. >> (__arm_vcvtq_m_f16_s16): Delete. >> (__arm_vcvtq_m_f16_u16): Delete. >> (__arm_vcvtq_m_f32_s32): Delete. >> (__arm_vcvtq_m_f32_u32): Delete. >> (__arm_vcvtq_m_s16_f16): Delete. >> (__arm_vcvtq_m_u16_f16): Delete. >> (__arm_vcvtq_m_s32_f32): Delete. >> (__arm_vcvtq_m_u32_f32): Delete. >> (__arm_vcvtq_m_n_f16_u16): Delete. >> (__arm_vcvtq_m_n_f16_s16): Delete. >> (__arm_vcvtq_m_n_f32_u32): Delete. >> (__arm_vcvtq_m_n_f32_s32): Delete. >> (__arm_vcvtq_m_n_s32_f32): Delete. >> (__arm_vcvtq_m_n_s16_f16): Delete. >> (__arm_vcvtq_m_n_u32_f32): Delete. >> (__arm_vcvtq_m_n_u16_f16): Delete. >> (__arm_vcvtq_x_f16_u16): Delete. >> (__arm_vcvtq_x_f16_s16): Delete. >> (__arm_vcvtq_x_f32_s32): Delete. >> (__arm_vcvtq_x_f32_u32): Delete. >> (__arm_vcvtq_x_n_f16_s16): Delete. >> (__arm_vcvtq_x_n_f16_u16): Delete. >> (__arm_vcvtq_x_n_f32_s32): Delete. >> (__arm_vcvtq_x_n_f32_u32): Delete. >> (__arm_vcvtq_x_s16_f16): Delete. >> (__arm_vcvtq_x_s32_f32): Delete. >> (__arm_vcvtq_x_u16_f16): Delete. >> (__arm_vcvtq_x_u32_f32): Delete. >> (__arm_vcvtq_x_n_s16_f16): Delete. >> (__arm_vcvtq_x_n_s32_f32): Delete. >> (__arm_vcvtq_x_n_u16_f16): Delete. >> (__arm_vcvtq_x_n_u32_f32): Delete. >> (__arm_vcvtq): Delete. >> (__arm_vcvtq_n): Delete. >> (__arm_vcvtq_m): Delete. >> (__arm_vcvtq_m_n): Delete. >> (__arm_vcvtq_x): Delete. >> (__arm_vcvtq_x_n): Delete. >> --- >> gcc/config/arm/arm-mve-builtins-base.cc | 113 ++++ >> gcc/config/arm/arm-mve-builtins-base.def | 19 +- >> gcc/config/arm/arm-mve-builtins-base.h | 1 + >> gcc/config/arm/arm-mve-builtins.cc | 15 + >> gcc/config/arm/arm_mve.h | 666 ----------------------- >> 5 files changed, 139 insertions(+), 675 deletions(-) >> >> diff --git a/gcc/config/arm/arm-mve-builtins-base.cc b/gcc/config/arm/arm-mve-builtins-base.cc >> index e0ae593a6c0..a780d686eb1 100644 >> --- a/gcc/config/arm/arm-mve-builtins-base.cc >> +++ b/gcc/config/arm/arm-mve-builtins-base.cc >> @@ -139,6 +139,118 @@ public: >> } >> }; >> >> + /* Implements vcvtq intrinsics. */ >> +class vcvtq_impl : public function_base >> +{ >> +public: >> + rtx >> + expand (function_expander &e) const override >> + { >> + insn_code code; >> + machine_mode target_mode = e.vector_mode (0); >> + int unspec; >> + switch (e.pred) >> + { >> + case PRED_none: >> + switch (e.mode_suffix_id) >> + { >> + case MODE_none: >> + /* No predicate, no suffix. */ >> + if (e.type_suffix (0).integer_p) >> + { >> + unspec = e.type_suffix (0).unsigned_p >> + ? VCVTQ_FROM_F_U >> + : VCVTQ_FROM_F_S; > > Stylistic nit: when breaking an assignment over multiple lines, I tend to prefer that parenthesis are added to ensure that the operators on subsequent lines indent correclty. In this case, something like: > > unspec = (e.type_suffix (0).unsigned_p > ? VCVTQ_FROM_F_U > : VCVTQ_FROM_F_S); > > I'm not sure if this is a hard and fast rule, though; it's probably more important when there's more complex indentation. > Indeed, I often wonder what's the best indentation. I'll change that. Thanks, Christophe > > OK. > > R. > >> + code = code_for_mve_q_from_f (unspec, unspec, target_mode); >> + } >> + else >> + { >> + unspec = e.type_suffix (1).unsigned_p >> + ? VCVTQ_TO_F_U >> + : VCVTQ_TO_F_S; >> + code = code_for_mve_q_to_f (unspec, unspec, target_mode); >> + } >> + break; >> + >> + case MODE_n: >> + /* No predicate, _n suffix. */ >> + if (e.type_suffix (0).integer_p) >> + { >> + unspec = e.type_suffix (0).unsigned_p >> + ? VCVTQ_N_FROM_F_U >> + : VCVTQ_N_FROM_F_S; >> + code = code_for_mve_q_n_from_f (unspec, unspec, target_mode); >> + } >> + else >> + { >> + unspec = e.type_suffix (1).unsigned_p >> + ? VCVTQ_N_TO_F_U >> + : VCVTQ_N_TO_F_S; >> + code = code_for_mve_q_n_to_f (unspec, unspec, target_mode); >> + } >> + break; >> + >> + default: >> + gcc_unreachable (); >> + } >> + return e.use_exact_insn (code); >> + >> + case PRED_m: >> + case PRED_x: >> + switch (e.mode_suffix_id) >> + { >> + case MODE_none: >> + /* No suffix, "m" or "x" predicate. */ >> + if (e.type_suffix (0).integer_p) >> + { >> + unspec = e.type_suffix (0).unsigned_p >> + ? VCVTQ_M_FROM_F_U >> + : VCVTQ_M_FROM_F_S; >> + code = code_for_mve_q_m_from_f (unspec, unspec, target_mode); >> + } >> + else >> + { >> + unspec = e.type_suffix (1).unsigned_p >> + ? VCVTQ_M_TO_F_U >> + : VCVTQ_M_TO_F_S; >> + code = code_for_mve_q_m_to_f (unspec, unspec, target_mode); >> + } >> + break; >> + >> + case MODE_n: >> + /* _n suffix, "m" or "x" predicate. */ >> + if (e.type_suffix (0).integer_p) >> + { >> + unspec = e.type_suffix (0).unsigned_p >> + ? VCVTQ_M_N_FROM_F_U >> + : VCVTQ_M_N_FROM_F_S; >> + code = code_for_mve_q_m_n_from_f (unspec, unspec, target_mode); >> + } >> + else >> + { >> + unspec = e.type_suffix (1).unsigned_p >> + ? VCVTQ_M_N_TO_F_U >> + : VCVTQ_M_N_TO_F_S; >> + code = code_for_mve_q_m_n_to_f (unspec, unspec, target_mode); >> + } >> + break; >> + >> + default: >> + gcc_unreachable (); >> + } >> + if (e.pred == PRED_m) >> + return e.use_cond_insn (code, 0); >> + else >> + return e.use_pred_x_insn (code); >> + >> + default: >> + gcc_unreachable (); >> + } >> + >> + gcc_unreachable (); >> + } >> +}; >> + >> } /* end anonymous namespace */ >> >> namespace arm_mve { >> @@ -339,6 +451,7 @@ FUNCTION (vcmpltq, unspec_based_mve_function_exact_insn_vcmp, (LT, UNKNOWN, LT, >> FUNCTION (vcmpcsq, unspec_based_mve_function_exact_insn_vcmp, (UNKNOWN, GEU, UNKNOWN, UNKNOWN, VCMPCSQ_M_U, UNKNOWN, UNKNOWN, VCMPCSQ_M_N_U, UNKNOWN)) >> FUNCTION (vcmphiq, unspec_based_mve_function_exact_insn_vcmp, (UNKNOWN, GTU, UNKNOWN, UNKNOWN, VCMPHIQ_M_U, UNKNOWN, UNKNOWN, VCMPHIQ_M_N_U, UNKNOWN)) >> FUNCTION_WITHOUT_M_N (vcreateq, VCREATEQ) >> +FUNCTION (vcvtq, vcvtq_impl,) >> FUNCTION_ONLY_N (vdupq, VDUPQ) >> FUNCTION_WITH_RTX_M (veorq, XOR, VEORQ) >> FUNCTION (vfmaq, unspec_mve_function_exact_insn, (-1, -1, VFMAQ_F, -1, -1, VFMAQ_N_F, -1, -1, VFMAQ_M_F, -1, -1, VFMAQ_M_N_F)) >> diff --git a/gcc/config/arm/arm-mve-builtins-base.def b/gcc/config/arm/arm-mve-builtins-base.def >> index 90d031eebec..671f86b5096 100644 >> --- a/gcc/config/arm/arm-mve-builtins-base.def >> +++ b/gcc/config/arm/arm-mve-builtins-base.def >> @@ -28,8 +28,8 @@ DEF_MVE_FUNCTION (vaddvaq, unary_int32_acc, all_integer, p_or_none) >> DEF_MVE_FUNCTION (vaddvq, unary_int32, all_integer, p_or_none) >> DEF_MVE_FUNCTION (vandq, binary, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vbrsrq, binary_imm32, all_integer, mx_or_none) >> -DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vcaddq_rot270, binary, all_integer, mx_or_none) >> +DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vclsq, unary, all_signed, mx_or_none) >> DEF_MVE_FUNCTION (vclzq, unary, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vcmpcsq, cmp, all_unsigned, m_or_none) >> @@ -44,8 +44,8 @@ DEF_MVE_FUNCTION (vcreateq, create, all_integer_with_64, none) >> DEF_MVE_FUNCTION (vdupq, unary_n, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (veorq, binary, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vhaddq, binary_opt_n, all_integer, mx_or_none) >> -DEF_MVE_FUNCTION (vhcaddq_rot90, binary, all_signed, mx_or_none) >> DEF_MVE_FUNCTION (vhcaddq_rot270, binary, all_signed, mx_or_none) >> +DEF_MVE_FUNCTION (vhcaddq_rot90, binary, all_signed, mx_or_none) >> DEF_MVE_FUNCTION (vhsubq, binary_opt_n, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vld1q, load, all_integer, none) >> DEF_MVE_FUNCTION (vmaxaq, binary_maxamina, all_signed, m_or_none) >> @@ -80,8 +80,8 @@ DEF_MVE_FUNCTION (vmovnbq, binary_move_narrow, integer_16_32, m_or_none) >> DEF_MVE_FUNCTION (vmovntq, binary_move_narrow, integer_16_32, m_or_none) >> DEF_MVE_FUNCTION (vmulhq, binary, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vmullbq_int, binary_widen, all_integer, mx_or_none) >> -DEF_MVE_FUNCTION (vmulltq_int, binary_widen, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vmullbq_poly, binary_widen_poly, poly_8_16, mx_or_none) >> +DEF_MVE_FUNCTION (vmulltq_int, binary_widen, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vmulltq_poly, binary_widen_poly, poly_8_16, mx_or_none) >> DEF_MVE_FUNCTION (vmulq, binary_opt_n, all_integer, mx_or_none) >> DEF_MVE_FUNCTION (vmvnq, mvn, all_integer, mx_or_none) >> @@ -162,23 +162,24 @@ DEF_MVE_FUNCTION (vabsq, unary, all_float, mx_or_none) >> DEF_MVE_FUNCTION (vaddq, binary_opt_n, all_float, mx_or_none) >> DEF_MVE_FUNCTION (vandq, binary, all_float, mx_or_none) >> DEF_MVE_FUNCTION (vbrsrq, binary_imm32, all_float, mx_or_none) >> -DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_float, mx_or_none) >> DEF_MVE_FUNCTION (vcaddq_rot270, binary, all_float, mx_or_none) >> +DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_float, mx_or_none) >> DEF_MVE_FUNCTION (vcmlaq, ternary, all_float, m_or_none) >> -DEF_MVE_FUNCTION (vcmlaq_rot90, ternary, all_float, m_or_none) >> DEF_MVE_FUNCTION (vcmlaq_rot180, ternary, all_float, m_or_none) >> DEF_MVE_FUNCTION (vcmlaq_rot270, ternary, all_float, m_or_none) >> -DEF_MVE_FUNCTION (vcmulq, binary, all_float, mx_or_none) >> -DEF_MVE_FUNCTION (vcmulq_rot90, binary, all_float, mx_or_none) >> -DEF_MVE_FUNCTION (vcmulq_rot180, binary, all_float, mx_or_none) >> -DEF_MVE_FUNCTION (vcmulq_rot270, binary, all_float, mx_or_none) >> +DEF_MVE_FUNCTION (vcmlaq_rot90, ternary, all_float, m_or_none) >> DEF_MVE_FUNCTION (vcmpeqq, cmp, all_float, m_or_none) >> DEF_MVE_FUNCTION (vcmpgeq, cmp, all_float, m_or_none) >> DEF_MVE_FUNCTION (vcmpgtq, cmp, all_float, m_or_none) >> DEF_MVE_FUNCTION (vcmpleq, cmp, all_float, m_or_none) >> DEF_MVE_FUNCTION (vcmpltq, cmp, all_float, m_or_none) >> DEF_MVE_FUNCTION (vcmpneq, cmp, all_float, m_or_none) >> +DEF_MVE_FUNCTION (vcmulq, binary, all_float, mx_or_none) >> +DEF_MVE_FUNCTION (vcmulq_rot180, binary, all_float, mx_or_none) >> +DEF_MVE_FUNCTION (vcmulq_rot270, binary, all_float, mx_or_none) >> +DEF_MVE_FUNCTION (vcmulq_rot90, binary, all_float, mx_or_none) >> DEF_MVE_FUNCTION (vcreateq, create, all_float, none) >> +DEF_MVE_FUNCTION (vcvtq, vcvt, cvt, mx_or_none) >> DEF_MVE_FUNCTION (vdupq, unary_n, all_float, mx_or_none) >> DEF_MVE_FUNCTION (veorq, binary, all_float, mx_or_none) >> DEF_MVE_FUNCTION (vfmaq, ternary_opt_n, all_float, m_or_none) >> diff --git a/gcc/config/arm/arm-mve-builtins-base.h b/gcc/config/arm/arm-mve-builtins-base.h >> index c9b52a81c5e..dee73d9c457 100644 >> --- a/gcc/config/arm/arm-mve-builtins-base.h >> +++ b/gcc/config/arm/arm-mve-builtins-base.h >> @@ -54,6 +54,7 @@ extern const function_base *const vcmulq_rot180; >> extern const function_base *const vcmulq_rot270; >> extern const function_base *const vcmulq_rot90; >> extern const function_base *const vcreateq; >> +extern const function_base *const vcvtq; >> extern const function_base *const vdupq; >> extern const function_base *const veorq; >> extern const function_base *const vfmaq; >> diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc >> index ea44f463dd8..3c5b54dade1 100644 >> --- a/gcc/config/arm/arm-mve-builtins.cc >> +++ b/gcc/config/arm/arm-mve-builtins.cc >> @@ -205,6 +205,20 @@ CONSTEXPR const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = { >> #define TYPES_signed_32(S, D) \ >> S (s32) >> >> +/* All the type combinations allowed by vcvtq. */ >> +#define TYPES_cvt(S, D) \ >> + D (f16, s16), \ >> + D (f16, u16), \ >> + \ >> + D (f32, s32), \ >> + D (f32, u32), \ >> + \ >> + D (s16, f16), \ >> + D (s32, f32), \ >> + \ >> + D (u16, f16), \ >> + D (u32, f32) >> + >> #define TYPES_reinterpret_signed1(D, A) \ >> D (A, s8), D (A, s16), D (A, s32), D (A, s64) >> >> @@ -284,6 +298,7 @@ DEF_MVE_TYPES_ARRAY (integer_32); >> DEF_MVE_TYPES_ARRAY (poly_8_16); >> DEF_MVE_TYPES_ARRAY (signed_16_32); >> DEF_MVE_TYPES_ARRAY (signed_32); >> +DEF_MVE_TYPES_ARRAY (cvt); >> DEF_MVE_TYPES_ARRAY (reinterpret_integer); >> DEF_MVE_TYPES_ARRAY (reinterpret_float); >> >> diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h >> index ae1b5438797..07897f510f5 100644 >> --- a/gcc/config/arm/arm_mve.h >> +++ b/gcc/config/arm/arm_mve.h >> @@ -139,18 +139,12 @@ >> #define vshlcq_m(__a, __b, __imm, __p) __arm_vshlcq_m(__a, __b, __imm, __p) >> #define vcvttq_f32(__a) __arm_vcvttq_f32(__a) >> #define vcvtbq_f32(__a) __arm_vcvtbq_f32(__a) >> -#define vcvtq(__a) __arm_vcvtq(__a) >> -#define vcvtq_n(__a, __imm6) __arm_vcvtq_n(__a, __imm6) >> #define vcvtaq_m(__inactive, __a, __p) __arm_vcvtaq_m(__inactive, __a, __p) >> -#define vcvtq_m(__inactive, __a, __p) __arm_vcvtq_m(__inactive, __a, __p) >> #define vcvtbq_m(__a, __b, __p) __arm_vcvtbq_m(__a, __b, __p) >> #define vcvttq_m(__a, __b, __p) __arm_vcvttq_m(__a, __b, __p) >> #define vcvtmq_m(__inactive, __a, __p) __arm_vcvtmq_m(__inactive, __a, __p) >> #define vcvtnq_m(__inactive, __a, __p) __arm_vcvtnq_m(__inactive, __a, __p) >> #define vcvtpq_m(__inactive, __a, __p) __arm_vcvtpq_m(__inactive, __a, __p) >> -#define vcvtq_m_n(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n(__inactive, __a, __imm6, __p) >> -#define vcvtq_x(__a, __p) __arm_vcvtq_x(__a, __p) >> -#define vcvtq_x_n(__a, __imm6, __p) __arm_vcvtq_x_n(__a, __imm6, __p) >> >> >> #define vst4q_s8( __addr, __value) __arm_vst4q_s8( __addr, __value) >> @@ -163,10 +157,6 @@ >> #define vst4q_f32( __addr, __value) __arm_vst4q_f32( __addr, __value) >> #define vcvttq_f32_f16(__a) __arm_vcvttq_f32_f16(__a) >> #define vcvtbq_f32_f16(__a) __arm_vcvtbq_f32_f16(__a) >> -#define vcvtq_f16_s16(__a) __arm_vcvtq_f16_s16(__a) >> -#define vcvtq_f32_s32(__a) __arm_vcvtq_f32_s32(__a) >> -#define vcvtq_f16_u16(__a) __arm_vcvtq_f16_u16(__a) >> -#define vcvtq_f32_u32(__a) __arm_vcvtq_f32_u32(__a) >> #define vcvtaq_s16_f16(__a) __arm_vcvtaq_s16_f16(__a) >> #define vcvtaq_s32_f32(__a) __arm_vcvtaq_s32_f32(__a) >> #define vcvtnq_s16_f16(__a) __arm_vcvtnq_s16_f16(__a) >> @@ -175,10 +165,6 @@ >> #define vcvtpq_s32_f32(__a) __arm_vcvtpq_s32_f32(__a) >> #define vcvtmq_s16_f16(__a) __arm_vcvtmq_s16_f16(__a) >> #define vcvtmq_s32_f32(__a) __arm_vcvtmq_s32_f32(__a) >> -#define vcvtq_s16_f16(__a) __arm_vcvtq_s16_f16(__a) >> -#define vcvtq_s32_f32(__a) __arm_vcvtq_s32_f32(__a) >> -#define vcvtq_u16_f16(__a) __arm_vcvtq_u16_f16(__a) >> -#define vcvtq_u32_f32(__a) __arm_vcvtq_u32_f32(__a) >> #define vcvtpq_u16_f16(__a) __arm_vcvtpq_u16_f16(__a) >> #define vcvtpq_u32_f32(__a) __arm_vcvtpq_u32_f32(__a) >> #define vcvtnq_u16_f16(__a) __arm_vcvtnq_u16_f16(__a) >> @@ -192,14 +178,6 @@ >> #define vctp64q(__a) __arm_vctp64q(__a) >> #define vctp8q(__a) __arm_vctp8q(__a) >> #define vpnot(__a) __arm_vpnot(__a) >> -#define vcvtq_n_f16_s16(__a, __imm6) __arm_vcvtq_n_f16_s16(__a, __imm6) >> -#define vcvtq_n_f32_s32(__a, __imm6) __arm_vcvtq_n_f32_s32(__a, __imm6) >> -#define vcvtq_n_f16_u16(__a, __imm6) __arm_vcvtq_n_f16_u16(__a, __imm6) >> -#define vcvtq_n_f32_u32(__a, __imm6) __arm_vcvtq_n_f32_u32(__a, __imm6) >> -#define vcvtq_n_s16_f16(__a, __imm6) __arm_vcvtq_n_s16_f16(__a, __imm6) >> -#define vcvtq_n_s32_f32(__a, __imm6) __arm_vcvtq_n_s32_f32(__a, __imm6) >> -#define vcvtq_n_u16_f16(__a, __imm6) __arm_vcvtq_n_u16_f16(__a, __imm6) >> -#define vcvtq_n_u32_f32(__a, __imm6) __arm_vcvtq_n_u32_f32(__a, __imm6) >> #define vornq_u8(__a, __b) __arm_vornq_u8(__a, __b) >> #define vbicq_u8(__a, __b) __arm_vbicq_u8(__a, __b) >> #define vornq_s8(__a, __b) __arm_vornq_s8(__a, __b) >> @@ -234,10 +212,6 @@ >> #define vcvtaq_m_u16_f16(__inactive, __a, __p) __arm_vcvtaq_m_u16_f16(__inactive, __a, __p) >> #define vcvtaq_m_s32_f32(__inactive, __a, __p) __arm_vcvtaq_m_s32_f32(__inactive, __a, __p) >> #define vcvtaq_m_u32_f32(__inactive, __a, __p) __arm_vcvtaq_m_u32_f32(__inactive, __a, __p) >> -#define vcvtq_m_f16_s16(__inactive, __a, __p) __arm_vcvtq_m_f16_s16(__inactive, __a, __p) >> -#define vcvtq_m_f16_u16(__inactive, __a, __p) __arm_vcvtq_m_f16_u16(__inactive, __a, __p) >> -#define vcvtq_m_f32_s32(__inactive, __a, __p) __arm_vcvtq_m_f32_s32(__inactive, __a, __p) >> -#define vcvtq_m_f32_u32(__inactive, __a, __p) __arm_vcvtq_m_f32_u32(__inactive, __a, __p) >> #define vshlcq_s8(__a, __b, __imm) __arm_vshlcq_s8(__a, __b, __imm) >> #define vshlcq_u8(__a, __b, __imm) __arm_vshlcq_u8(__a, __b, __imm) >> #define vshlcq_s16(__a, __b, __imm) __arm_vshlcq_s16(__a, __b, __imm) >> @@ -251,23 +225,15 @@ >> #define vcvtmq_m_s16_f16(__inactive, __a, __p) __arm_vcvtmq_m_s16_f16(__inactive, __a, __p) >> #define vcvtnq_m_s16_f16(__inactive, __a, __p) __arm_vcvtnq_m_s16_f16(__inactive, __a, __p) >> #define vcvtpq_m_s16_f16(__inactive, __a, __p) __arm_vcvtpq_m_s16_f16(__inactive, __a, __p) >> -#define vcvtq_m_s16_f16(__inactive, __a, __p) __arm_vcvtq_m_s16_f16(__inactive, __a, __p) >> #define vcvtmq_m_u16_f16(__inactive, __a, __p) __arm_vcvtmq_m_u16_f16(__inactive, __a, __p) >> #define vcvtnq_m_u16_f16(__inactive, __a, __p) __arm_vcvtnq_m_u16_f16(__inactive, __a, __p) >> #define vcvtpq_m_u16_f16(__inactive, __a, __p) __arm_vcvtpq_m_u16_f16(__inactive, __a, __p) >> -#define vcvtq_m_u16_f16(__inactive, __a, __p) __arm_vcvtq_m_u16_f16(__inactive, __a, __p) >> #define vcvtmq_m_s32_f32(__inactive, __a, __p) __arm_vcvtmq_m_s32_f32(__inactive, __a, __p) >> #define vcvtnq_m_s32_f32(__inactive, __a, __p) __arm_vcvtnq_m_s32_f32(__inactive, __a, __p) >> #define vcvtpq_m_s32_f32(__inactive, __a, __p) __arm_vcvtpq_m_s32_f32(__inactive, __a, __p) >> -#define vcvtq_m_s32_f32(__inactive, __a, __p) __arm_vcvtq_m_s32_f32(__inactive, __a, __p) >> #define vcvtmq_m_u32_f32(__inactive, __a, __p) __arm_vcvtmq_m_u32_f32(__inactive, __a, __p) >> #define vcvtnq_m_u32_f32(__inactive, __a, __p) __arm_vcvtnq_m_u32_f32(__inactive, __a, __p) >> #define vcvtpq_m_u32_f32(__inactive, __a, __p) __arm_vcvtpq_m_u32_f32(__inactive, __a, __p) >> -#define vcvtq_m_u32_f32(__inactive, __a, __p) __arm_vcvtq_m_u32_f32(__inactive, __a, __p) >> -#define vcvtq_m_n_f16_u16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f16_u16(__inactive, __a, __imm6, __p) >> -#define vcvtq_m_n_f16_s16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f16_s16(__inactive, __a, __imm6, __p) >> -#define vcvtq_m_n_f32_u32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f32_u32(__inactive, __a, __imm6, __p) >> -#define vcvtq_m_n_f32_s32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f32_s32(__inactive, __a, __imm6, __p) >> #define vbicq_m_s8(__inactive, __a, __b, __p) __arm_vbicq_m_s8(__inactive, __a, __b, __p) >> #define vbicq_m_s32(__inactive, __a, __b, __p) __arm_vbicq_m_s32(__inactive, __a, __b, __p) >> #define vbicq_m_s16(__inactive, __a, __b, __p) __arm_vbicq_m_s16(__inactive, __a, __b, __p) >> @@ -282,10 +248,6 @@ >> #define vornq_m_u16(__inactive, __a, __b, __p) __arm_vornq_m_u16(__inactive, __a, __b, __p) >> #define vbicq_m_f32(__inactive, __a, __b, __p) __arm_vbicq_m_f32(__inactive, __a, __b, __p) >> #define vbicq_m_f16(__inactive, __a, __b, __p) __arm_vbicq_m_f16(__inactive, __a, __b, __p) >> -#define vcvtq_m_n_s32_f32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_s32_f32(__inactive, __a, __imm6, __p) >> -#define vcvtq_m_n_s16_f16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_s16_f16(__inactive, __a, __imm6, __p) >> -#define vcvtq_m_n_u32_f32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_u32_f32(__inactive, __a, __imm6, __p) >> -#define vcvtq_m_n_u16_f16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_u16_f16(__inactive, __a, __imm6, __p) >> #define vornq_m_f32(__inactive, __a, __b, __p) __arm_vornq_m_f32(__inactive, __a, __b, __p) >> #define vornq_m_f16(__inactive, __a, __b, __p) __arm_vornq_m_f16(__inactive, __a, __b, __p) >> #define vstrbq_s8( __addr, __value) __arm_vstrbq_s8( __addr, __value) >> @@ -600,22 +562,6 @@ >> #define vcvtmq_x_u32_f32(__a, __p) __arm_vcvtmq_x_u32_f32(__a, __p) >> #define vcvtbq_x_f32_f16(__a, __p) __arm_vcvtbq_x_f32_f16(__a, __p) >> #define vcvttq_x_f32_f16(__a, __p) __arm_vcvttq_x_f32_f16(__a, __p) >> -#define vcvtq_x_f16_u16(__a, __p) __arm_vcvtq_x_f16_u16(__a, __p) >> -#define vcvtq_x_f16_s16(__a, __p) __arm_vcvtq_x_f16_s16(__a, __p) >> -#define vcvtq_x_f32_s32(__a, __p) __arm_vcvtq_x_f32_s32(__a, __p) >> -#define vcvtq_x_f32_u32(__a, __p) __arm_vcvtq_x_f32_u32(__a, __p) >> -#define vcvtq_x_n_f16_s16(__a, __imm6, __p) __arm_vcvtq_x_n_f16_s16(__a, __imm6, __p) >> -#define vcvtq_x_n_f16_u16(__a, __imm6, __p) __arm_vcvtq_x_n_f16_u16(__a, __imm6, __p) >> -#define vcvtq_x_n_f32_s32(__a, __imm6, __p) __arm_vcvtq_x_n_f32_s32(__a, __imm6, __p) >> -#define vcvtq_x_n_f32_u32(__a, __imm6, __p) __arm_vcvtq_x_n_f32_u32(__a, __imm6, __p) >> -#define vcvtq_x_s16_f16(__a, __p) __arm_vcvtq_x_s16_f16(__a, __p) >> -#define vcvtq_x_s32_f32(__a, __p) __arm_vcvtq_x_s32_f32(__a, __p) >> -#define vcvtq_x_u16_f16(__a, __p) __arm_vcvtq_x_u16_f16(__a, __p) >> -#define vcvtq_x_u32_f32(__a, __p) __arm_vcvtq_x_u32_f32(__a, __p) >> -#define vcvtq_x_n_s16_f16(__a, __imm6, __p) __arm_vcvtq_x_n_s16_f16(__a, __imm6, __p) >> -#define vcvtq_x_n_s32_f32(__a, __imm6, __p) __arm_vcvtq_x_n_s32_f32(__a, __imm6, __p) >> -#define vcvtq_x_n_u16_f16(__a, __imm6, __p) __arm_vcvtq_x_n_u16_f16(__a, __imm6, __p) >> -#define vcvtq_x_n_u32_f32(__a, __imm6, __p) __arm_vcvtq_x_n_u32_f32(__a, __imm6, __p) >> #define vbicq_x_f16(__a, __b, __p) __arm_vbicq_x_f16(__a, __b, __p) >> #define vbicq_x_f32(__a, __b, __p) __arm_vbicq_x_f32(__a, __b, __p) >> #define vornq_x_f16(__a, __b, __p) __arm_vornq_x_f16(__a, __b, __p) >> @@ -3772,62 +3718,6 @@ __arm_vcvtbq_f32_f16 (float16x8_t __a) >> return __builtin_mve_vcvtbq_f32_f16v4sf (__a); >> } >> >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_f16_s16 (int16x8_t __a) >> -{ >> - return __builtin_mve_vcvtq_to_f_sv8hf (__a); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_f32_s32 (int32x4_t __a) >> -{ >> - return __builtin_mve_vcvtq_to_f_sv4sf (__a); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_f16_u16 (uint16x8_t __a) >> -{ >> - return __builtin_mve_vcvtq_to_f_uv8hf (__a); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_f32_u32 (uint32x4_t __a) >> -{ >> - return __builtin_mve_vcvtq_to_f_uv4sf (__a); >> -} >> - >> -__extension__ extern __inline int16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_s16_f16 (float16x8_t __a) >> -{ >> - return __builtin_mve_vcvtq_from_f_sv8hi (__a); >> -} >> - >> -__extension__ extern __inline int32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_s32_f32 (float32x4_t __a) >> -{ >> - return __builtin_mve_vcvtq_from_f_sv4si (__a); >> -} >> - >> -__extension__ extern __inline uint16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_u16_f16 (float16x8_t __a) >> -{ >> - return __builtin_mve_vcvtq_from_f_uv8hi (__a); >> -} >> - >> -__extension__ extern __inline uint32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_u32_f32 (float32x4_t __a) >> -{ >> - return __builtin_mve_vcvtq_from_f_uv4si (__a); >> -} >> - >> __extension__ extern __inline uint16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vcvtpq_u16_f16 (float16x8_t __a) >> @@ -3940,62 +3830,6 @@ __arm_vcvtmq_s32_f32 (float32x4_t __a) >> return __builtin_mve_vcvtmq_sv4si (__a); >> } >> >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n_f16_s16 (int16x8_t __a, const int __imm6) >> -{ >> - return __builtin_mve_vcvtq_n_to_f_sv8hf (__a, __imm6); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n_f32_s32 (int32x4_t __a, const int __imm6) >> -{ >> - return __builtin_mve_vcvtq_n_to_f_sv4sf (__a, __imm6); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n_f16_u16 (uint16x8_t __a, const int __imm6) >> -{ >> - return __builtin_mve_vcvtq_n_to_f_uv8hf (__a, __imm6); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n_f32_u32 (uint32x4_t __a, const int __imm6) >> -{ >> - return __builtin_mve_vcvtq_n_to_f_uv4sf (__a, __imm6); >> -} >> - >> -__extension__ extern __inline int16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n_s16_f16 (float16x8_t __a, const int __imm6) >> -{ >> - return __builtin_mve_vcvtq_n_from_f_sv8hi (__a, __imm6); >> -} >> - >> -__extension__ extern __inline int32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n_s32_f32 (float32x4_t __a, const int __imm6) >> -{ >> - return __builtin_mve_vcvtq_n_from_f_sv4si (__a, __imm6); >> -} >> - >> -__extension__ extern __inline uint16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n_u16_f16 (float16x8_t __a, const int __imm6) >> -{ >> - return __builtin_mve_vcvtq_n_from_f_uv8hi (__a, __imm6); >> -} >> - >> -__extension__ extern __inline uint32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n_u32_f32 (float32x4_t __a, const int __imm6) >> -{ >> - return __builtin_mve_vcvtq_n_from_f_uv4si (__a, __imm6); >> -} >> - >> __extension__ extern __inline float16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vornq_f16 (float16x8_t __a, float16x8_t __b) >> @@ -4066,34 +3900,6 @@ __arm_vcvtaq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p >> return __builtin_mve_vcvtaq_m_uv4si (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_f16_s16 (float16x8_t __inactive, int16x8_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_to_f_sv8hf (__inactive, __a, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_f16_u16 (float16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_to_f_uv8hf (__inactive, __a, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_f32_s32 (float32x4_t __inactive, int32x4_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_to_f_sv4sf (__inactive, __a, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_f32_u32 (float32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_to_f_uv4sf (__inactive, __a, __p); >> -} >> - >> >> __extension__ extern __inline float16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> @@ -4144,13 +3950,6 @@ __arm_vcvtpq_m_s16_f16 (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> return __builtin_mve_vcvtpq_m_sv8hi (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline int16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_s16_f16 (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_from_f_sv8hi (__inactive, __a, __p); >> -} >> - >> __extension__ extern __inline uint16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vcvtmq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> @@ -4172,13 +3971,6 @@ __arm_vcvtpq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p >> return __builtin_mve_vcvtpq_m_uv8hi (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline uint16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_from_f_uv8hi (__inactive, __a, __p); >> -} >> - >> __extension__ extern __inline int32x4_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vcvtmq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> @@ -4200,13 +3992,6 @@ __arm_vcvtpq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> return __builtin_mve_vcvtpq_m_sv4si (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline int32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_from_f_sv4si (__inactive, __a, __p); >> -} >> - >> __extension__ extern __inline uint32x4_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vcvtmq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> @@ -4228,41 +4013,6 @@ __arm_vcvtpq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p >> return __builtin_mve_vcvtpq_m_uv4si (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline uint32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_from_f_uv4si (__inactive, __a, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n_f16_u16 (float16x8_t __inactive, uint16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_to_f_uv8hf (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n_f16_s16 (float16x8_t __inactive, int16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_to_f_sv8hf (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n_f32_u32 (float32x4_t __inactive, uint32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_to_f_uv4sf (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n_f32_s32 (float32x4_t __inactive, int32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_to_f_sv4sf (__inactive, __a, __imm6, __p); >> -} >> - >> __extension__ extern __inline float32x4_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vbicq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) >> @@ -4277,34 +4027,6 @@ __arm_vbicq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve >> return __builtin_mve_vbicq_m_fv8hf (__inactive, __a, __b, __p); >> } >> >> -__extension__ extern __inline int32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n_s32_f32 (int32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_from_f_sv4si (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline int16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n_s16_f16 (int16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_from_f_sv8hi (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline uint32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n_u32_f32 (uint32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_from_f_uv4si (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline uint16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n_u16_f16 (uint16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_from_f_uv8hi (__inactive, __a, __imm6, __p); >> -} >> - >> __extension__ extern __inline float32x4_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vornq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) >> @@ -4675,118 +4397,6 @@ __arm_vcvttq_x_f32_f16 (float16x8_t __a, mve_pred16_t __p) >> return __builtin_mve_vcvttq_m_f32_f16v4sf (__arm_vuninitializedq_f32 (), __a, __p); >> } >> >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_f16_u16 (uint16x8_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_to_f_uv8hf (__arm_vuninitializedq_f16 (), __a, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_f16_s16 (int16x8_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_to_f_sv8hf (__arm_vuninitializedq_f16 (), __a, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_f32_s32 (int32x4_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_to_f_sv4sf (__arm_vuninitializedq_f32 (), __a, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_f32_u32 (uint32x4_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_to_f_uv4sf (__arm_vuninitializedq_f32 (), __a, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n_f16_s16 (int16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_to_f_sv8hf (__arm_vuninitializedq_f16 (), __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n_f16_u16 (uint16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_to_f_uv8hf (__arm_vuninitializedq_f16 (), __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n_f32_s32 (int32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_to_f_sv4sf (__arm_vuninitializedq_f32 (), __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n_f32_u32 (uint32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_to_f_uv4sf (__arm_vuninitializedq_f32 (), __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline int16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_s16_f16 (float16x8_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_from_f_sv8hi (__arm_vuninitializedq_s16 (), __a, __p); >> -} >> - >> -__extension__ extern __inline int32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_s32_f32 (float32x4_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_from_f_sv4si (__arm_vuninitializedq_s32 (), __a, __p); >> -} >> - >> -__extension__ extern __inline uint16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_u16_f16 (float16x8_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_from_f_uv8hi (__arm_vuninitializedq_u16 (), __a, __p); >> -} >> - >> -__extension__ extern __inline uint32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_u32_f32 (float32x4_t __a, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_from_f_uv4si (__arm_vuninitializedq_u32 (), __a, __p); >> -} >> - >> -__extension__ extern __inline int16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n_s16_f16 (float16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_from_f_sv8hi (__arm_vuninitializedq_s16 (), __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline int32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n_s32_f32 (float32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_from_f_sv4si (__arm_vuninitializedq_s32 (), __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline uint16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n_u16_f16 (float16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_from_f_uv8hi (__arm_vuninitializedq_u16 (), __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline uint32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n_u32_f32 (float32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __builtin_mve_vcvtq_m_n_from_f_uv4si (__arm_vuninitializedq_u32 (), __a, __imm6, __p); >> -} >> - >> __extension__ extern __inline float16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vbicq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p) >> @@ -7231,62 +6841,6 @@ __arm_vcvtbq_f32 (float16x8_t __a) >> return __arm_vcvtbq_f32_f16 (__a); >> } >> >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq (int16x8_t __a) >> -{ >> - return __arm_vcvtq_f16_s16 (__a); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq (int32x4_t __a) >> -{ >> - return __arm_vcvtq_f32_s32 (__a); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq (uint16x8_t __a) >> -{ >> - return __arm_vcvtq_f16_u16 (__a); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq (uint32x4_t __a) >> -{ >> - return __arm_vcvtq_f32_u32 (__a); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n (int16x8_t __a, const int __imm6) >> -{ >> - return __arm_vcvtq_n_f16_s16 (__a, __imm6); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n (int32x4_t __a, const int __imm6) >> -{ >> - return __arm_vcvtq_n_f32_s32 (__a, __imm6); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n (uint16x8_t __a, const int __imm6) >> -{ >> - return __arm_vcvtq_n_f16_u16 (__a, __imm6); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_n (uint32x4_t __a, const int __imm6) >> -{ >> - return __arm_vcvtq_n_f32_u32 (__a, __imm6); >> -} >> - >> __extension__ extern __inline float16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vornq (float16x8_t __a, float16x8_t __b) >> @@ -7343,34 +6897,6 @@ __arm_vcvtaq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> return __arm_vcvtaq_m_u32_f32 (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m (float16x8_t __inactive, int16x8_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_f16_s16 (__inactive, __a, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m (float16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_f16_u16 (__inactive, __a, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m (float32x4_t __inactive, int32x4_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_f32_s32 (__inactive, __a, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m (float32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_f32_u32 (__inactive, __a, __p); >> -} >> - >> __extension__ extern __inline float16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vcvtbq_m (float16x8_t __a, float32x4_t __b, mve_pred16_t __p) >> @@ -7420,13 +6946,6 @@ __arm_vcvtpq_m (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> return __arm_vcvtpq_m_s16_f16 (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline int16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_s16_f16 (__inactive, __a, __p); >> -} >> - >> __extension__ extern __inline uint16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vcvtmq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> @@ -7448,13 +6967,6 @@ __arm_vcvtpq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> return __arm_vcvtpq_m_u16_f16 (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline uint16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_u16_f16 (__inactive, __a, __p); >> -} >> - >> __extension__ extern __inline int32x4_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vcvtmq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> @@ -7476,13 +6988,6 @@ __arm_vcvtpq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> return __arm_vcvtpq_m_s32_f32 (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline int32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_s32_f32 (__inactive, __a, __p); >> -} >> - >> __extension__ extern __inline uint32x4_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vcvtmq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> @@ -7504,41 +7009,6 @@ __arm_vcvtpq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> return __arm_vcvtpq_m_u32_f32 (__inactive, __a, __p); >> } >> >> -__extension__ extern __inline uint32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_u32_f32 (__inactive, __a, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n (float16x8_t __inactive, uint16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_n_f16_u16 (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n (float16x8_t __inactive, int16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_n_f16_s16 (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n (float32x4_t __inactive, uint32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_n_f32_u32 (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n (float32x4_t __inactive, int32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_n_f32_s32 (__inactive, __a, __imm6, __p); >> -} >> - >> __extension__ extern __inline float32x4_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vbicq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) >> @@ -7553,34 +7023,6 @@ __arm_vbicq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pre >> return __arm_vbicq_m_f16 (__inactive, __a, __b, __p); >> } >> >> -__extension__ extern __inline int32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n (int32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_n_s32_f32 (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline int16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n (int16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_n_s16_f16 (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline uint32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n (uint32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_n_u32_f32 (__inactive, __a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline uint16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_m_n (uint16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_m_n_u16_f16 (__inactive, __a, __imm6, __p); >> -} >> - >> __extension__ extern __inline float32x4_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vornq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) >> @@ -7763,62 +7205,6 @@ __arm_vstrwq_scatter_base_wb_p (uint32x4_t * __addr, const int __offset, float32 >> __arm_vstrwq_scatter_base_wb_p_f32 (__addr, __offset, __value, __p); >> } >> >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x (uint16x8_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_x_f16_u16 (__a, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x (int16x8_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_x_f16_s16 (__a, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x (int32x4_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_x_f32_s32 (__a, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x (uint32x4_t __a, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_x_f32_u32 (__a, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n (int16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_x_n_f16_s16 (__a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float16x8_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n (uint16x8_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_x_n_f16_u16 (__a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n (int32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_x_n_f32_s32 (__a, __imm6, __p); >> -} >> - >> -__extension__ extern __inline float32x4_t >> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> -__arm_vcvtq_x_n (uint32x4_t __a, const int __imm6, mve_pred16_t __p) >> -{ >> - return __arm_vcvtq_x_n_f32_u32 (__a, __imm6, __p); >> -} >> - >> __extension__ extern __inline float16x8_t >> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) >> __arm_vbicq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p) >> @@ -8276,20 +7662,6 @@ extern void *__ARM_undef; >> _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ >> int (*)[__ARM_mve_type_float16x8_t]: __arm_vcvttq_f32_f16 (__ARM_mve_coerce(__p0, float16x8_t)));}) >> >> -#define __arm_vcvtq(p0) ({ __typeof(p0) __p0 = (p0); \ >> - _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ >> - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \ >> - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_f32_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \ >> - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \ >> - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));}) >> - >> -#define __arm_vcvtq_n(p0,p1) ({ __typeof(p0) __p0 = (p0); \ >> - _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ >> - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_n_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \ >> - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_n_f32_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \ >> - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_n_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \ >> - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_n_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));}) >> - >> #define __arm_vbicq(p0,p1) ({ __typeof(p0) __p0 = (p0); \ >> __typeof(p1) __p1 = (p1); \ >> _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ >> @@ -8342,30 +7714,6 @@ extern void *__ARM_undef; >> int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtaq_m_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ >> int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtaq_m_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));}) >> >> -#define __arm_vcvtq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ >> - __typeof(p1) __p1 = (p1); \ >> - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ >> - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcvtq_m_f16_s16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \ >> - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcvtq_m_f32_s32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \ >> - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcvtq_m_f16_u16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \ >> - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcvtq_m_f32_u32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \ >> - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_s16_f16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ >> - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_s32_f32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2), \ >> - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ >> - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));}) >> - >> -#define __arm_vcvtq_m_n(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \ >> - __typeof(p1) __p1 = (p1); \ >> - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ >> - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_n_s16_f16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2, p3), \ >> - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_n_s32_f32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2, p3), \ >> - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_n_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2, p3), \ >> - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_n_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2, p3), \ >> - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcvtq_m_n_f16_s16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \ >> - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcvtq_m_n_f32_s32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \ >> - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcvtq_m_n_f16_u16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \ >> - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcvtq_m_n_f32_u32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));}) >> - >> #define __arm_vcvtbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ >> __typeof(p1) __p1 = (p1); \ >> _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ >> @@ -8730,20 +8078,6 @@ extern void *__ARM_undef; >> int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vbicq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \ >> int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vbicq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));}) >> >> -#define __arm_vcvtq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \ >> - _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \ >> - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_x_f16_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \ >> - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_x_f32_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \ >> - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_x_f16_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2), \ >> - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_x_f32_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2));}) >> - >> -#define __arm_vcvtq_x_n(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \ >> - _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \ >> - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_x_n_f16_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \ >> - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_x_n_f32_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2, p3), \ >> - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_x_n_f16_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \ >> - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_x_n_f32_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));}) >> - >> #define __arm_vornq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \ >> __typeof(p2) __p2 = (p2); \ >> _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ >
diff --git a/gcc/config/arm/arm-mve-builtins-base.cc b/gcc/config/arm/arm-mve-builtins-base.cc index e0ae593a6c0..a780d686eb1 100644 --- a/gcc/config/arm/arm-mve-builtins-base.cc +++ b/gcc/config/arm/arm-mve-builtins-base.cc @@ -139,6 +139,118 @@ public: } }; + /* Implements vcvtq intrinsics. */ +class vcvtq_impl : public function_base +{ +public: + rtx + expand (function_expander &e) const override + { + insn_code code; + machine_mode target_mode = e.vector_mode (0); + int unspec; + switch (e.pred) + { + case PRED_none: + switch (e.mode_suffix_id) + { + case MODE_none: + /* No predicate, no suffix. */ + if (e.type_suffix (0).integer_p) + { + unspec = e.type_suffix (0).unsigned_p + ? VCVTQ_FROM_F_U + : VCVTQ_FROM_F_S; + code = code_for_mve_q_from_f (unspec, unspec, target_mode); + } + else + { + unspec = e.type_suffix (1).unsigned_p + ? VCVTQ_TO_F_U + : VCVTQ_TO_F_S; + code = code_for_mve_q_to_f (unspec, unspec, target_mode); + } + break; + + case MODE_n: + /* No predicate, _n suffix. */ + if (e.type_suffix (0).integer_p) + { + unspec = e.type_suffix (0).unsigned_p + ? VCVTQ_N_FROM_F_U + : VCVTQ_N_FROM_F_S; + code = code_for_mve_q_n_from_f (unspec, unspec, target_mode); + } + else + { + unspec = e.type_suffix (1).unsigned_p + ? VCVTQ_N_TO_F_U + : VCVTQ_N_TO_F_S; + code = code_for_mve_q_n_to_f (unspec, unspec, target_mode); + } + break; + + default: + gcc_unreachable (); + } + return e.use_exact_insn (code); + + case PRED_m: + case PRED_x: + switch (e.mode_suffix_id) + { + case MODE_none: + /* No suffix, "m" or "x" predicate. */ + if (e.type_suffix (0).integer_p) + { + unspec = e.type_suffix (0).unsigned_p + ? VCVTQ_M_FROM_F_U + : VCVTQ_M_FROM_F_S; + code = code_for_mve_q_m_from_f (unspec, unspec, target_mode); + } + else + { + unspec = e.type_suffix (1).unsigned_p + ? VCVTQ_M_TO_F_U + : VCVTQ_M_TO_F_S; + code = code_for_mve_q_m_to_f (unspec, unspec, target_mode); + } + break; + + case MODE_n: + /* _n suffix, "m" or "x" predicate. */ + if (e.type_suffix (0).integer_p) + { + unspec = e.type_suffix (0).unsigned_p + ? VCVTQ_M_N_FROM_F_U + : VCVTQ_M_N_FROM_F_S; + code = code_for_mve_q_m_n_from_f (unspec, unspec, target_mode); + } + else + { + unspec = e.type_suffix (1).unsigned_p + ? VCVTQ_M_N_TO_F_U + : VCVTQ_M_N_TO_F_S; + code = code_for_mve_q_m_n_to_f (unspec, unspec, target_mode); + } + break; + + default: + gcc_unreachable (); + } + if (e.pred == PRED_m) + return e.use_cond_insn (code, 0); + else + return e.use_pred_x_insn (code); + + default: + gcc_unreachable (); + } + + gcc_unreachable (); + } +}; + } /* end anonymous namespace */ namespace arm_mve { @@ -339,6 +451,7 @@ FUNCTION (vcmpltq, unspec_based_mve_function_exact_insn_vcmp, (LT, UNKNOWN, LT, FUNCTION (vcmpcsq, unspec_based_mve_function_exact_insn_vcmp, (UNKNOWN, GEU, UNKNOWN, UNKNOWN, VCMPCSQ_M_U, UNKNOWN, UNKNOWN, VCMPCSQ_M_N_U, UNKNOWN)) FUNCTION (vcmphiq, unspec_based_mve_function_exact_insn_vcmp, (UNKNOWN, GTU, UNKNOWN, UNKNOWN, VCMPHIQ_M_U, UNKNOWN, UNKNOWN, VCMPHIQ_M_N_U, UNKNOWN)) FUNCTION_WITHOUT_M_N (vcreateq, VCREATEQ) +FUNCTION (vcvtq, vcvtq_impl,) FUNCTION_ONLY_N (vdupq, VDUPQ) FUNCTION_WITH_RTX_M (veorq, XOR, VEORQ) FUNCTION (vfmaq, unspec_mve_function_exact_insn, (-1, -1, VFMAQ_F, -1, -1, VFMAQ_N_F, -1, -1, VFMAQ_M_F, -1, -1, VFMAQ_M_N_F)) diff --git a/gcc/config/arm/arm-mve-builtins-base.def b/gcc/config/arm/arm-mve-builtins-base.def index 90d031eebec..671f86b5096 100644 --- a/gcc/config/arm/arm-mve-builtins-base.def +++ b/gcc/config/arm/arm-mve-builtins-base.def @@ -28,8 +28,8 @@ DEF_MVE_FUNCTION (vaddvaq, unary_int32_acc, all_integer, p_or_none) DEF_MVE_FUNCTION (vaddvq, unary_int32, all_integer, p_or_none) DEF_MVE_FUNCTION (vandq, binary, all_integer, mx_or_none) DEF_MVE_FUNCTION (vbrsrq, binary_imm32, all_integer, mx_or_none) -DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_integer, mx_or_none) DEF_MVE_FUNCTION (vcaddq_rot270, binary, all_integer, mx_or_none) +DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_integer, mx_or_none) DEF_MVE_FUNCTION (vclsq, unary, all_signed, mx_or_none) DEF_MVE_FUNCTION (vclzq, unary, all_integer, mx_or_none) DEF_MVE_FUNCTION (vcmpcsq, cmp, all_unsigned, m_or_none) @@ -44,8 +44,8 @@ DEF_MVE_FUNCTION (vcreateq, create, all_integer_with_64, none) DEF_MVE_FUNCTION (vdupq, unary_n, all_integer, mx_or_none) DEF_MVE_FUNCTION (veorq, binary, all_integer, mx_or_none) DEF_MVE_FUNCTION (vhaddq, binary_opt_n, all_integer, mx_or_none) -DEF_MVE_FUNCTION (vhcaddq_rot90, binary, all_signed, mx_or_none) DEF_MVE_FUNCTION (vhcaddq_rot270, binary, all_signed, mx_or_none) +DEF_MVE_FUNCTION (vhcaddq_rot90, binary, all_signed, mx_or_none) DEF_MVE_FUNCTION (vhsubq, binary_opt_n, all_integer, mx_or_none) DEF_MVE_FUNCTION (vld1q, load, all_integer, none) DEF_MVE_FUNCTION (vmaxaq, binary_maxamina, all_signed, m_or_none) @@ -80,8 +80,8 @@ DEF_MVE_FUNCTION (vmovnbq, binary_move_narrow, integer_16_32, m_or_none) DEF_MVE_FUNCTION (vmovntq, binary_move_narrow, integer_16_32, m_or_none) DEF_MVE_FUNCTION (vmulhq, binary, all_integer, mx_or_none) DEF_MVE_FUNCTION (vmullbq_int, binary_widen, all_integer, mx_or_none) -DEF_MVE_FUNCTION (vmulltq_int, binary_widen, all_integer, mx_or_none) DEF_MVE_FUNCTION (vmullbq_poly, binary_widen_poly, poly_8_16, mx_or_none) +DEF_MVE_FUNCTION (vmulltq_int, binary_widen, all_integer, mx_or_none) DEF_MVE_FUNCTION (vmulltq_poly, binary_widen_poly, poly_8_16, mx_or_none) DEF_MVE_FUNCTION (vmulq, binary_opt_n, all_integer, mx_or_none) DEF_MVE_FUNCTION (vmvnq, mvn, all_integer, mx_or_none) @@ -162,23 +162,24 @@ DEF_MVE_FUNCTION (vabsq, unary, all_float, mx_or_none) DEF_MVE_FUNCTION (vaddq, binary_opt_n, all_float, mx_or_none) DEF_MVE_FUNCTION (vandq, binary, all_float, mx_or_none) DEF_MVE_FUNCTION (vbrsrq, binary_imm32, all_float, mx_or_none) -DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_float, mx_or_none) DEF_MVE_FUNCTION (vcaddq_rot270, binary, all_float, mx_or_none) +DEF_MVE_FUNCTION (vcaddq_rot90, binary, all_float, mx_or_none) DEF_MVE_FUNCTION (vcmlaq, ternary, all_float, m_or_none) -DEF_MVE_FUNCTION (vcmlaq_rot90, ternary, all_float, m_or_none) DEF_MVE_FUNCTION (vcmlaq_rot180, ternary, all_float, m_or_none) DEF_MVE_FUNCTION (vcmlaq_rot270, ternary, all_float, m_or_none) -DEF_MVE_FUNCTION (vcmulq, binary, all_float, mx_or_none) -DEF_MVE_FUNCTION (vcmulq_rot90, binary, all_float, mx_or_none) -DEF_MVE_FUNCTION (vcmulq_rot180, binary, all_float, mx_or_none) -DEF_MVE_FUNCTION (vcmulq_rot270, binary, all_float, mx_or_none) +DEF_MVE_FUNCTION (vcmlaq_rot90, ternary, all_float, m_or_none) DEF_MVE_FUNCTION (vcmpeqq, cmp, all_float, m_or_none) DEF_MVE_FUNCTION (vcmpgeq, cmp, all_float, m_or_none) DEF_MVE_FUNCTION (vcmpgtq, cmp, all_float, m_or_none) DEF_MVE_FUNCTION (vcmpleq, cmp, all_float, m_or_none) DEF_MVE_FUNCTION (vcmpltq, cmp, all_float, m_or_none) DEF_MVE_FUNCTION (vcmpneq, cmp, all_float, m_or_none) +DEF_MVE_FUNCTION (vcmulq, binary, all_float, mx_or_none) +DEF_MVE_FUNCTION (vcmulq_rot180, binary, all_float, mx_or_none) +DEF_MVE_FUNCTION (vcmulq_rot270, binary, all_float, mx_or_none) +DEF_MVE_FUNCTION (vcmulq_rot90, binary, all_float, mx_or_none) DEF_MVE_FUNCTION (vcreateq, create, all_float, none) +DEF_MVE_FUNCTION (vcvtq, vcvt, cvt, mx_or_none) DEF_MVE_FUNCTION (vdupq, unary_n, all_float, mx_or_none) DEF_MVE_FUNCTION (veorq, binary, all_float, mx_or_none) DEF_MVE_FUNCTION (vfmaq, ternary_opt_n, all_float, m_or_none) diff --git a/gcc/config/arm/arm-mve-builtins-base.h b/gcc/config/arm/arm-mve-builtins-base.h index c9b52a81c5e..dee73d9c457 100644 --- a/gcc/config/arm/arm-mve-builtins-base.h +++ b/gcc/config/arm/arm-mve-builtins-base.h @@ -54,6 +54,7 @@ extern const function_base *const vcmulq_rot180; extern const function_base *const vcmulq_rot270; extern const function_base *const vcmulq_rot90; extern const function_base *const vcreateq; +extern const function_base *const vcvtq; extern const function_base *const vdupq; extern const function_base *const veorq; extern const function_base *const vfmaq; diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc index ea44f463dd8..3c5b54dade1 100644 --- a/gcc/config/arm/arm-mve-builtins.cc +++ b/gcc/config/arm/arm-mve-builtins.cc @@ -205,6 +205,20 @@ CONSTEXPR const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = { #define TYPES_signed_32(S, D) \ S (s32) +/* All the type combinations allowed by vcvtq. */ +#define TYPES_cvt(S, D) \ + D (f16, s16), \ + D (f16, u16), \ + \ + D (f32, s32), \ + D (f32, u32), \ + \ + D (s16, f16), \ + D (s32, f32), \ + \ + D (u16, f16), \ + D (u32, f32) + #define TYPES_reinterpret_signed1(D, A) \ D (A, s8), D (A, s16), D (A, s32), D (A, s64) @@ -284,6 +298,7 @@ DEF_MVE_TYPES_ARRAY (integer_32); DEF_MVE_TYPES_ARRAY (poly_8_16); DEF_MVE_TYPES_ARRAY (signed_16_32); DEF_MVE_TYPES_ARRAY (signed_32); +DEF_MVE_TYPES_ARRAY (cvt); DEF_MVE_TYPES_ARRAY (reinterpret_integer); DEF_MVE_TYPES_ARRAY (reinterpret_float); diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h index ae1b5438797..07897f510f5 100644 --- a/gcc/config/arm/arm_mve.h +++ b/gcc/config/arm/arm_mve.h @@ -139,18 +139,12 @@ #define vshlcq_m(__a, __b, __imm, __p) __arm_vshlcq_m(__a, __b, __imm, __p) #define vcvttq_f32(__a) __arm_vcvttq_f32(__a) #define vcvtbq_f32(__a) __arm_vcvtbq_f32(__a) -#define vcvtq(__a) __arm_vcvtq(__a) -#define vcvtq_n(__a, __imm6) __arm_vcvtq_n(__a, __imm6) #define vcvtaq_m(__inactive, __a, __p) __arm_vcvtaq_m(__inactive, __a, __p) -#define vcvtq_m(__inactive, __a, __p) __arm_vcvtq_m(__inactive, __a, __p) #define vcvtbq_m(__a, __b, __p) __arm_vcvtbq_m(__a, __b, __p) #define vcvttq_m(__a, __b, __p) __arm_vcvttq_m(__a, __b, __p) #define vcvtmq_m(__inactive, __a, __p) __arm_vcvtmq_m(__inactive, __a, __p) #define vcvtnq_m(__inactive, __a, __p) __arm_vcvtnq_m(__inactive, __a, __p) #define vcvtpq_m(__inactive, __a, __p) __arm_vcvtpq_m(__inactive, __a, __p) -#define vcvtq_m_n(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n(__inactive, __a, __imm6, __p) -#define vcvtq_x(__a, __p) __arm_vcvtq_x(__a, __p) -#define vcvtq_x_n(__a, __imm6, __p) __arm_vcvtq_x_n(__a, __imm6, __p) #define vst4q_s8( __addr, __value) __arm_vst4q_s8( __addr, __value) @@ -163,10 +157,6 @@ #define vst4q_f32( __addr, __value) __arm_vst4q_f32( __addr, __value) #define vcvttq_f32_f16(__a) __arm_vcvttq_f32_f16(__a) #define vcvtbq_f32_f16(__a) __arm_vcvtbq_f32_f16(__a) -#define vcvtq_f16_s16(__a) __arm_vcvtq_f16_s16(__a) -#define vcvtq_f32_s32(__a) __arm_vcvtq_f32_s32(__a) -#define vcvtq_f16_u16(__a) __arm_vcvtq_f16_u16(__a) -#define vcvtq_f32_u32(__a) __arm_vcvtq_f32_u32(__a) #define vcvtaq_s16_f16(__a) __arm_vcvtaq_s16_f16(__a) #define vcvtaq_s32_f32(__a) __arm_vcvtaq_s32_f32(__a) #define vcvtnq_s16_f16(__a) __arm_vcvtnq_s16_f16(__a) @@ -175,10 +165,6 @@ #define vcvtpq_s32_f32(__a) __arm_vcvtpq_s32_f32(__a) #define vcvtmq_s16_f16(__a) __arm_vcvtmq_s16_f16(__a) #define vcvtmq_s32_f32(__a) __arm_vcvtmq_s32_f32(__a) -#define vcvtq_s16_f16(__a) __arm_vcvtq_s16_f16(__a) -#define vcvtq_s32_f32(__a) __arm_vcvtq_s32_f32(__a) -#define vcvtq_u16_f16(__a) __arm_vcvtq_u16_f16(__a) -#define vcvtq_u32_f32(__a) __arm_vcvtq_u32_f32(__a) #define vcvtpq_u16_f16(__a) __arm_vcvtpq_u16_f16(__a) #define vcvtpq_u32_f32(__a) __arm_vcvtpq_u32_f32(__a) #define vcvtnq_u16_f16(__a) __arm_vcvtnq_u16_f16(__a) @@ -192,14 +178,6 @@ #define vctp64q(__a) __arm_vctp64q(__a) #define vctp8q(__a) __arm_vctp8q(__a) #define vpnot(__a) __arm_vpnot(__a) -#define vcvtq_n_f16_s16(__a, __imm6) __arm_vcvtq_n_f16_s16(__a, __imm6) -#define vcvtq_n_f32_s32(__a, __imm6) __arm_vcvtq_n_f32_s32(__a, __imm6) -#define vcvtq_n_f16_u16(__a, __imm6) __arm_vcvtq_n_f16_u16(__a, __imm6) -#define vcvtq_n_f32_u32(__a, __imm6) __arm_vcvtq_n_f32_u32(__a, __imm6) -#define vcvtq_n_s16_f16(__a, __imm6) __arm_vcvtq_n_s16_f16(__a, __imm6) -#define vcvtq_n_s32_f32(__a, __imm6) __arm_vcvtq_n_s32_f32(__a, __imm6) -#define vcvtq_n_u16_f16(__a, __imm6) __arm_vcvtq_n_u16_f16(__a, __imm6) -#define vcvtq_n_u32_f32(__a, __imm6) __arm_vcvtq_n_u32_f32(__a, __imm6) #define vornq_u8(__a, __b) __arm_vornq_u8(__a, __b) #define vbicq_u8(__a, __b) __arm_vbicq_u8(__a, __b) #define vornq_s8(__a, __b) __arm_vornq_s8(__a, __b) @@ -234,10 +212,6 @@ #define vcvtaq_m_u16_f16(__inactive, __a, __p) __arm_vcvtaq_m_u16_f16(__inactive, __a, __p) #define vcvtaq_m_s32_f32(__inactive, __a, __p) __arm_vcvtaq_m_s32_f32(__inactive, __a, __p) #define vcvtaq_m_u32_f32(__inactive, __a, __p) __arm_vcvtaq_m_u32_f32(__inactive, __a, __p) -#define vcvtq_m_f16_s16(__inactive, __a, __p) __arm_vcvtq_m_f16_s16(__inactive, __a, __p) -#define vcvtq_m_f16_u16(__inactive, __a, __p) __arm_vcvtq_m_f16_u16(__inactive, __a, __p) -#define vcvtq_m_f32_s32(__inactive, __a, __p) __arm_vcvtq_m_f32_s32(__inactive, __a, __p) -#define vcvtq_m_f32_u32(__inactive, __a, __p) __arm_vcvtq_m_f32_u32(__inactive, __a, __p) #define vshlcq_s8(__a, __b, __imm) __arm_vshlcq_s8(__a, __b, __imm) #define vshlcq_u8(__a, __b, __imm) __arm_vshlcq_u8(__a, __b, __imm) #define vshlcq_s16(__a, __b, __imm) __arm_vshlcq_s16(__a, __b, __imm) @@ -251,23 +225,15 @@ #define vcvtmq_m_s16_f16(__inactive, __a, __p) __arm_vcvtmq_m_s16_f16(__inactive, __a, __p) #define vcvtnq_m_s16_f16(__inactive, __a, __p) __arm_vcvtnq_m_s16_f16(__inactive, __a, __p) #define vcvtpq_m_s16_f16(__inactive, __a, __p) __arm_vcvtpq_m_s16_f16(__inactive, __a, __p) -#define vcvtq_m_s16_f16(__inactive, __a, __p) __arm_vcvtq_m_s16_f16(__inactive, __a, __p) #define vcvtmq_m_u16_f16(__inactive, __a, __p) __arm_vcvtmq_m_u16_f16(__inactive, __a, __p) #define vcvtnq_m_u16_f16(__inactive, __a, __p) __arm_vcvtnq_m_u16_f16(__inactive, __a, __p) #define vcvtpq_m_u16_f16(__inactive, __a, __p) __arm_vcvtpq_m_u16_f16(__inactive, __a, __p) -#define vcvtq_m_u16_f16(__inactive, __a, __p) __arm_vcvtq_m_u16_f16(__inactive, __a, __p) #define vcvtmq_m_s32_f32(__inactive, __a, __p) __arm_vcvtmq_m_s32_f32(__inactive, __a, __p) #define vcvtnq_m_s32_f32(__inactive, __a, __p) __arm_vcvtnq_m_s32_f32(__inactive, __a, __p) #define vcvtpq_m_s32_f32(__inactive, __a, __p) __arm_vcvtpq_m_s32_f32(__inactive, __a, __p) -#define vcvtq_m_s32_f32(__inactive, __a, __p) __arm_vcvtq_m_s32_f32(__inactive, __a, __p) #define vcvtmq_m_u32_f32(__inactive, __a, __p) __arm_vcvtmq_m_u32_f32(__inactive, __a, __p) #define vcvtnq_m_u32_f32(__inactive, __a, __p) __arm_vcvtnq_m_u32_f32(__inactive, __a, __p) #define vcvtpq_m_u32_f32(__inactive, __a, __p) __arm_vcvtpq_m_u32_f32(__inactive, __a, __p) -#define vcvtq_m_u32_f32(__inactive, __a, __p) __arm_vcvtq_m_u32_f32(__inactive, __a, __p) -#define vcvtq_m_n_f16_u16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f16_u16(__inactive, __a, __imm6, __p) -#define vcvtq_m_n_f16_s16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f16_s16(__inactive, __a, __imm6, __p) -#define vcvtq_m_n_f32_u32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f32_u32(__inactive, __a, __imm6, __p) -#define vcvtq_m_n_f32_s32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_f32_s32(__inactive, __a, __imm6, __p) #define vbicq_m_s8(__inactive, __a, __b, __p) __arm_vbicq_m_s8(__inactive, __a, __b, __p) #define vbicq_m_s32(__inactive, __a, __b, __p) __arm_vbicq_m_s32(__inactive, __a, __b, __p) #define vbicq_m_s16(__inactive, __a, __b, __p) __arm_vbicq_m_s16(__inactive, __a, __b, __p) @@ -282,10 +248,6 @@ #define vornq_m_u16(__inactive, __a, __b, __p) __arm_vornq_m_u16(__inactive, __a, __b, __p) #define vbicq_m_f32(__inactive, __a, __b, __p) __arm_vbicq_m_f32(__inactive, __a, __b, __p) #define vbicq_m_f16(__inactive, __a, __b, __p) __arm_vbicq_m_f16(__inactive, __a, __b, __p) -#define vcvtq_m_n_s32_f32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_s32_f32(__inactive, __a, __imm6, __p) -#define vcvtq_m_n_s16_f16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_s16_f16(__inactive, __a, __imm6, __p) -#define vcvtq_m_n_u32_f32(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_u32_f32(__inactive, __a, __imm6, __p) -#define vcvtq_m_n_u16_f16(__inactive, __a, __imm6, __p) __arm_vcvtq_m_n_u16_f16(__inactive, __a, __imm6, __p) #define vornq_m_f32(__inactive, __a, __b, __p) __arm_vornq_m_f32(__inactive, __a, __b, __p) #define vornq_m_f16(__inactive, __a, __b, __p) __arm_vornq_m_f16(__inactive, __a, __b, __p) #define vstrbq_s8( __addr, __value) __arm_vstrbq_s8( __addr, __value) @@ -600,22 +562,6 @@ #define vcvtmq_x_u32_f32(__a, __p) __arm_vcvtmq_x_u32_f32(__a, __p) #define vcvtbq_x_f32_f16(__a, __p) __arm_vcvtbq_x_f32_f16(__a, __p) #define vcvttq_x_f32_f16(__a, __p) __arm_vcvttq_x_f32_f16(__a, __p) -#define vcvtq_x_f16_u16(__a, __p) __arm_vcvtq_x_f16_u16(__a, __p) -#define vcvtq_x_f16_s16(__a, __p) __arm_vcvtq_x_f16_s16(__a, __p) -#define vcvtq_x_f32_s32(__a, __p) __arm_vcvtq_x_f32_s32(__a, __p) -#define vcvtq_x_f32_u32(__a, __p) __arm_vcvtq_x_f32_u32(__a, __p) -#define vcvtq_x_n_f16_s16(__a, __imm6, __p) __arm_vcvtq_x_n_f16_s16(__a, __imm6, __p) -#define vcvtq_x_n_f16_u16(__a, __imm6, __p) __arm_vcvtq_x_n_f16_u16(__a, __imm6, __p) -#define vcvtq_x_n_f32_s32(__a, __imm6, __p) __arm_vcvtq_x_n_f32_s32(__a, __imm6, __p) -#define vcvtq_x_n_f32_u32(__a, __imm6, __p) __arm_vcvtq_x_n_f32_u32(__a, __imm6, __p) -#define vcvtq_x_s16_f16(__a, __p) __arm_vcvtq_x_s16_f16(__a, __p) -#define vcvtq_x_s32_f32(__a, __p) __arm_vcvtq_x_s32_f32(__a, __p) -#define vcvtq_x_u16_f16(__a, __p) __arm_vcvtq_x_u16_f16(__a, __p) -#define vcvtq_x_u32_f32(__a, __p) __arm_vcvtq_x_u32_f32(__a, __p) -#define vcvtq_x_n_s16_f16(__a, __imm6, __p) __arm_vcvtq_x_n_s16_f16(__a, __imm6, __p) -#define vcvtq_x_n_s32_f32(__a, __imm6, __p) __arm_vcvtq_x_n_s32_f32(__a, __imm6, __p) -#define vcvtq_x_n_u16_f16(__a, __imm6, __p) __arm_vcvtq_x_n_u16_f16(__a, __imm6, __p) -#define vcvtq_x_n_u32_f32(__a, __imm6, __p) __arm_vcvtq_x_n_u32_f32(__a, __imm6, __p) #define vbicq_x_f16(__a, __b, __p) __arm_vbicq_x_f16(__a, __b, __p) #define vbicq_x_f32(__a, __b, __p) __arm_vbicq_x_f32(__a, __b, __p) #define vornq_x_f16(__a, __b, __p) __arm_vornq_x_f16(__a, __b, __p) @@ -3772,62 +3718,6 @@ __arm_vcvtbq_f32_f16 (float16x8_t __a) return __builtin_mve_vcvtbq_f32_f16v4sf (__a); } -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_f16_s16 (int16x8_t __a) -{ - return __builtin_mve_vcvtq_to_f_sv8hf (__a); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_f32_s32 (int32x4_t __a) -{ - return __builtin_mve_vcvtq_to_f_sv4sf (__a); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_f16_u16 (uint16x8_t __a) -{ - return __builtin_mve_vcvtq_to_f_uv8hf (__a); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_f32_u32 (uint32x4_t __a) -{ - return __builtin_mve_vcvtq_to_f_uv4sf (__a); -} - -__extension__ extern __inline int16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_s16_f16 (float16x8_t __a) -{ - return __builtin_mve_vcvtq_from_f_sv8hi (__a); -} - -__extension__ extern __inline int32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_s32_f32 (float32x4_t __a) -{ - return __builtin_mve_vcvtq_from_f_sv4si (__a); -} - -__extension__ extern __inline uint16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_u16_f16 (float16x8_t __a) -{ - return __builtin_mve_vcvtq_from_f_uv8hi (__a); -} - -__extension__ extern __inline uint32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_u32_f32 (float32x4_t __a) -{ - return __builtin_mve_vcvtq_from_f_uv4si (__a); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtpq_u16_f16 (float16x8_t __a) @@ -3940,62 +3830,6 @@ __arm_vcvtmq_s32_f32 (float32x4_t __a) return __builtin_mve_vcvtmq_sv4si (__a); } -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n_f16_s16 (int16x8_t __a, const int __imm6) -{ - return __builtin_mve_vcvtq_n_to_f_sv8hf (__a, __imm6); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n_f32_s32 (int32x4_t __a, const int __imm6) -{ - return __builtin_mve_vcvtq_n_to_f_sv4sf (__a, __imm6); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n_f16_u16 (uint16x8_t __a, const int __imm6) -{ - return __builtin_mve_vcvtq_n_to_f_uv8hf (__a, __imm6); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n_f32_u32 (uint32x4_t __a, const int __imm6) -{ - return __builtin_mve_vcvtq_n_to_f_uv4sf (__a, __imm6); -} - -__extension__ extern __inline int16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n_s16_f16 (float16x8_t __a, const int __imm6) -{ - return __builtin_mve_vcvtq_n_from_f_sv8hi (__a, __imm6); -} - -__extension__ extern __inline int32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n_s32_f32 (float32x4_t __a, const int __imm6) -{ - return __builtin_mve_vcvtq_n_from_f_sv4si (__a, __imm6); -} - -__extension__ extern __inline uint16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n_u16_f16 (float16x8_t __a, const int __imm6) -{ - return __builtin_mve_vcvtq_n_from_f_uv8hi (__a, __imm6); -} - -__extension__ extern __inline uint32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n_u32_f32 (float32x4_t __a, const int __imm6) -{ - return __builtin_mve_vcvtq_n_from_f_uv4si (__a, __imm6); -} - __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq_f16 (float16x8_t __a, float16x8_t __b) @@ -4066,34 +3900,6 @@ __arm_vcvtaq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p return __builtin_mve_vcvtaq_m_uv4si (__inactive, __a, __p); } -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_f16_s16 (float16x8_t __inactive, int16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_to_f_sv8hf (__inactive, __a, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_f16_u16 (float16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_to_f_uv8hf (__inactive, __a, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_f32_s32 (float32x4_t __inactive, int32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_to_f_sv4sf (__inactive, __a, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_f32_u32 (float32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_to_f_uv4sf (__inactive, __a, __p); -} - __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) @@ -4144,13 +3950,6 @@ __arm_vcvtpq_m_s16_f16 (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) return __builtin_mve_vcvtpq_m_sv8hi (__inactive, __a, __p); } -__extension__ extern __inline int16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_s16_f16 (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_from_f_sv8hi (__inactive, __a, __p); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtmq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) @@ -4172,13 +3971,6 @@ __arm_vcvtpq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p return __builtin_mve_vcvtpq_m_uv8hi (__inactive, __a, __p); } -__extension__ extern __inline uint16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_u16_f16 (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_from_f_uv8hi (__inactive, __a, __p); -} - __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtmq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) @@ -4200,13 +3992,6 @@ __arm_vcvtpq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) return __builtin_mve_vcvtpq_m_sv4si (__inactive, __a, __p); } -__extension__ extern __inline int32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_s32_f32 (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_from_f_sv4si (__inactive, __a, __p); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtmq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) @@ -4228,41 +4013,6 @@ __arm_vcvtpq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p return __builtin_mve_vcvtpq_m_uv4si (__inactive, __a, __p); } -__extension__ extern __inline uint32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_u32_f32 (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_from_f_uv4si (__inactive, __a, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n_f16_u16 (float16x8_t __inactive, uint16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_to_f_uv8hf (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n_f16_s16 (float16x8_t __inactive, int16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_to_f_sv8hf (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n_f32_u32 (float32x4_t __inactive, uint32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_to_f_uv4sf (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n_f32_s32 (float32x4_t __inactive, int32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_to_f_sv4sf (__inactive, __a, __imm6, __p); -} - __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vbicq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) @@ -4277,34 +4027,6 @@ __arm_vbicq_m_f16 (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve return __builtin_mve_vbicq_m_fv8hf (__inactive, __a, __b, __p); } -__extension__ extern __inline int32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n_s32_f32 (int32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_from_f_sv4si (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline int16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n_s16_f16 (int16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_from_f_sv8hi (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline uint32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n_u32_f32 (uint32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_from_f_uv4si (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline uint16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n_u16_f16 (uint16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_from_f_uv8hi (__inactive, __a, __imm6, __p); -} - __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq_m_f32 (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) @@ -4675,118 +4397,6 @@ __arm_vcvttq_x_f32_f16 (float16x8_t __a, mve_pred16_t __p) return __builtin_mve_vcvttq_m_f32_f16v4sf (__arm_vuninitializedq_f32 (), __a, __p); } -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_f16_u16 (uint16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_to_f_uv8hf (__arm_vuninitializedq_f16 (), __a, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_f16_s16 (int16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_to_f_sv8hf (__arm_vuninitializedq_f16 (), __a, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_f32_s32 (int32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_to_f_sv4sf (__arm_vuninitializedq_f32 (), __a, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_f32_u32 (uint32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_to_f_uv4sf (__arm_vuninitializedq_f32 (), __a, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n_f16_s16 (int16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_to_f_sv8hf (__arm_vuninitializedq_f16 (), __a, __imm6, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n_f16_u16 (uint16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_to_f_uv8hf (__arm_vuninitializedq_f16 (), __a, __imm6, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n_f32_s32 (int32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_to_f_sv4sf (__arm_vuninitializedq_f32 (), __a, __imm6, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n_f32_u32 (uint32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_to_f_uv4sf (__arm_vuninitializedq_f32 (), __a, __imm6, __p); -} - -__extension__ extern __inline int16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_s16_f16 (float16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_from_f_sv8hi (__arm_vuninitializedq_s16 (), __a, __p); -} - -__extension__ extern __inline int32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_s32_f32 (float32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_from_f_sv4si (__arm_vuninitializedq_s32 (), __a, __p); -} - -__extension__ extern __inline uint16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_u16_f16 (float16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_from_f_uv8hi (__arm_vuninitializedq_u16 (), __a, __p); -} - -__extension__ extern __inline uint32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_u32_f32 (float32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_from_f_uv4si (__arm_vuninitializedq_u32 (), __a, __p); -} - -__extension__ extern __inline int16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n_s16_f16 (float16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_from_f_sv8hi (__arm_vuninitializedq_s16 (), __a, __imm6, __p); -} - -__extension__ extern __inline int32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n_s32_f32 (float32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_from_f_sv4si (__arm_vuninitializedq_s32 (), __a, __imm6, __p); -} - -__extension__ extern __inline uint16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n_u16_f16 (float16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_from_f_uv8hi (__arm_vuninitializedq_u16 (), __a, __imm6, __p); -} - -__extension__ extern __inline uint32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n_u32_f32 (float32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __builtin_mve_vcvtq_m_n_from_f_uv4si (__arm_vuninitializedq_u32 (), __a, __imm6, __p); -} - __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vbicq_x_f16 (float16x8_t __a, float16x8_t __b, mve_pred16_t __p) @@ -7231,62 +6841,6 @@ __arm_vcvtbq_f32 (float16x8_t __a) return __arm_vcvtbq_f32_f16 (__a); } -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq (int16x8_t __a) -{ - return __arm_vcvtq_f16_s16 (__a); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq (int32x4_t __a) -{ - return __arm_vcvtq_f32_s32 (__a); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq (uint16x8_t __a) -{ - return __arm_vcvtq_f16_u16 (__a); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq (uint32x4_t __a) -{ - return __arm_vcvtq_f32_u32 (__a); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n (int16x8_t __a, const int __imm6) -{ - return __arm_vcvtq_n_f16_s16 (__a, __imm6); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n (int32x4_t __a, const int __imm6) -{ - return __arm_vcvtq_n_f32_s32 (__a, __imm6); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n (uint16x8_t __a, const int __imm6) -{ - return __arm_vcvtq_n_f16_u16 (__a, __imm6); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_n (uint32x4_t __a, const int __imm6) -{ - return __arm_vcvtq_n_f32_u32 (__a, __imm6); -} - __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq (float16x8_t __a, float16x8_t __b) @@ -7343,34 +6897,6 @@ __arm_vcvtaq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) return __arm_vcvtaq_m_u32_f32 (__inactive, __a, __p); } -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m (float16x8_t __inactive, int16x8_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_m_f16_s16 (__inactive, __a, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m (float16x8_t __inactive, uint16x8_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_m_f16_u16 (__inactive, __a, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m (float32x4_t __inactive, int32x4_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_m_f32_s32 (__inactive, __a, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m (float32x4_t __inactive, uint32x4_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_m_f32_u32 (__inactive, __a, __p); -} - __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtbq_m (float16x8_t __a, float32x4_t __b, mve_pred16_t __p) @@ -7420,13 +6946,6 @@ __arm_vcvtpq_m (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) return __arm_vcvtpq_m_s16_f16 (__inactive, __a, __p); } -__extension__ extern __inline int16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m (int16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_m_s16_f16 (__inactive, __a, __p); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtmq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) @@ -7448,13 +6967,6 @@ __arm_vcvtpq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) return __arm_vcvtpq_m_u16_f16 (__inactive, __a, __p); } -__extension__ extern __inline uint16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m (uint16x8_t __inactive, float16x8_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_m_u16_f16 (__inactive, __a, __p); -} - __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtmq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) @@ -7476,13 +6988,6 @@ __arm_vcvtpq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) return __arm_vcvtpq_m_s32_f32 (__inactive, __a, __p); } -__extension__ extern __inline int32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m (int32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_m_s32_f32 (__inactive, __a, __p); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtmq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) @@ -7504,41 +7009,6 @@ __arm_vcvtpq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) return __arm_vcvtpq_m_u32_f32 (__inactive, __a, __p); } -__extension__ extern __inline uint32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m (uint32x4_t __inactive, float32x4_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_m_u32_f32 (__inactive, __a, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n (float16x8_t __inactive, uint16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_m_n_f16_u16 (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n (float16x8_t __inactive, int16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_m_n_f16_s16 (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n (float32x4_t __inactive, uint32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_m_n_f32_u32 (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n (float32x4_t __inactive, int32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_m_n_f32_s32 (__inactive, __a, __imm6, __p); -} - __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vbicq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) @@ -7553,34 +7023,6 @@ __arm_vbicq_m (float16x8_t __inactive, float16x8_t __a, float16x8_t __b, mve_pre return __arm_vbicq_m_f16 (__inactive, __a, __b, __p); } -__extension__ extern __inline int32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n (int32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_m_n_s32_f32 (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline int16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n (int16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_m_n_s16_f16 (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline uint32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n (uint32x4_t __inactive, float32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_m_n_u32_f32 (__inactive, __a, __imm6, __p); -} - -__extension__ extern __inline uint16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_m_n (uint16x8_t __inactive, float16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_m_n_u16_f16 (__inactive, __a, __imm6, __p); -} - __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq_m (float32x4_t __inactive, float32x4_t __a, float32x4_t __b, mve_pred16_t __p) @@ -7763,62 +7205,6 @@ __arm_vstrwq_scatter_base_wb_p (uint32x4_t * __addr, const int __offset, float32 __arm_vstrwq_scatter_base_wb_p_f32 (__addr, __offset, __value, __p); } -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x (uint16x8_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_x_f16_u16 (__a, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x (int16x8_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_x_f16_s16 (__a, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x (int32x4_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_x_f32_s32 (__a, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x (uint32x4_t __a, mve_pred16_t __p) -{ - return __arm_vcvtq_x_f32_u32 (__a, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n (int16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_x_n_f16_s16 (__a, __imm6, __p); -} - -__extension__ extern __inline float16x8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n (uint16x8_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_x_n_f16_u16 (__a, __imm6, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n (int32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_x_n_f32_s32 (__a, __imm6, __p); -} - -__extension__ extern __inline float32x4_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vcvtq_x_n (uint32x4_t __a, const int __imm6, mve_pred16_t __p) -{ - return __arm_vcvtq_x_n_f32_u32 (__a, __imm6, __p); -} - __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vbicq_x (float16x8_t __a, float16x8_t __b, mve_pred16_t __p) @@ -8276,20 +7662,6 @@ extern void *__ARM_undef; _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ int (*)[__ARM_mve_type_float16x8_t]: __arm_vcvttq_f32_f16 (__ARM_mve_coerce(__p0, float16x8_t)));}) -#define __arm_vcvtq(p0) ({ __typeof(p0) __p0 = (p0); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \ - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_f32_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \ - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \ - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));}) - -#define __arm_vcvtq_n(p0,p1) ({ __typeof(p0) __p0 = (p0); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_n_f16_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \ - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_n_f32_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \ - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_n_f16_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \ - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_n_f32_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));}) - #define __arm_vbicq(p0,p1) ({ __typeof(p0) __p0 = (p0); \ __typeof(p1) __p1 = (p1); \ _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ @@ -8342,30 +7714,6 @@ extern void *__ARM_undef; int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtaq_m_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtaq_m_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));}) -#define __arm_vcvtq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ - __typeof(p1) __p1 = (p1); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcvtq_m_f16_s16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2), \ - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcvtq_m_f32_s32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2), \ - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcvtq_m_f16_u16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \ - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcvtq_m_f32_u32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2), \ - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_s16_f16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_s32_f32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2), \ - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2), \ - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2));}) - -#define __arm_vcvtq_m_n(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \ - __typeof(p1) __p1 = (p1); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_n_s16_f16 (__ARM_mve_coerce(__p0, int16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2, p3), \ - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_n_s32_f32 (__ARM_mve_coerce(__p0, int32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2, p3), \ - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_float16x8_t]: __arm_vcvtq_m_n_u16_f16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, float16x8_t), p2, p3), \ - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_float32x4_t]: __arm_vcvtq_m_n_u32_f32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, float32x4_t), p2, p3), \ - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_int16x8_t]: __arm_vcvtq_m_n_f16_s16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, int16x8_t), p2, p3), \ - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_int32x4_t]: __arm_vcvtq_m_n_f32_s32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, int32x4_t), p2, p3), \ - int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcvtq_m_n_f16_u16 (__ARM_mve_coerce(__p0, float16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \ - int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcvtq_m_n_f32_u32 (__ARM_mve_coerce(__p0, float32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2, p3));}) - #define __arm_vcvtbq_m(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ __typeof(p1) __p1 = (p1); \ _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ @@ -8730,20 +8078,6 @@ extern void *__ARM_undef; int (*)[__ARM_mve_type_float16x8_t][__ARM_mve_type_float16x8_t]: __arm_vbicq_x_f16 (__ARM_mve_coerce(__p1, float16x8_t), __ARM_mve_coerce(__p2, float16x8_t), p3), \ int (*)[__ARM_mve_type_float32x4_t][__ARM_mve_type_float32x4_t]: __arm_vbicq_x_f32 (__ARM_mve_coerce(__p1, float32x4_t), __ARM_mve_coerce(__p2, float32x4_t), p3));}) -#define __arm_vcvtq_x(p1,p2) ({ __typeof(p1) __p1 = (p1); \ - _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \ - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_x_f16_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2), \ - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_x_f32_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2), \ - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_x_f16_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2), \ - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_x_f32_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2));}) - -#define __arm_vcvtq_x_n(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \ - _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \ - int (*)[__ARM_mve_type_int16x8_t]: __arm_vcvtq_x_n_f16_s16 (__ARM_mve_coerce(__p1, int16x8_t), p2, p3), \ - int (*)[__ARM_mve_type_int32x4_t]: __arm_vcvtq_x_n_f32_s32 (__ARM_mve_coerce(__p1, int32x4_t), p2, p3), \ - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vcvtq_x_n_f16_u16 (__ARM_mve_coerce(__p1, uint16x8_t), p2, p3), \ - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vcvtq_x_n_f32_u32 (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));}) - #define __arm_vornq_x(p1,p2,p3) ({ __typeof(p1) __p1 = (p1); \ __typeof(p2) __p2 = (p2); \ _Generic( (int (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \