Implement vmaxvq, vminvq, vmaxavq, vminavq using the new MVE builtins framework.
2022-09-08 Christophe Lyon <christophe.l...@arm.com> gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_S_U) (FUNCTION_PRED_P_S): New. (vmaxavq, vminavq, vmaxvq, vminvq): New. * config/arm/arm-mve-builtins-base.def (vmaxavq, vminavq, vmaxvq) (vminvq): New. * config/arm/arm-mve-builtins-base.h (vmaxavq, vminavq, vmaxvq) (vminvq): New. * config/arm/arm_mve.h (vminvq): Remove. (vmaxvq): Remove. (vminvq_p): Remove. (vmaxvq_p): Remove. (vminvq_u8): Remove. (vmaxvq_u8): Remove. (vminvq_s8): Remove. (vmaxvq_s8): Remove. (vminvq_u16): Remove. (vmaxvq_u16): Remove. (vminvq_s16): Remove. (vmaxvq_s16): Remove. (vminvq_u32): Remove. (vmaxvq_u32): Remove. (vminvq_s32): Remove. (vmaxvq_s32): Remove. (vminvq_p_u8): Remove. (vmaxvq_p_u8): Remove. (vminvq_p_s8): Remove. (vmaxvq_p_s8): Remove. (vminvq_p_u16): Remove. (vmaxvq_p_u16): Remove. (vminvq_p_s16): Remove. (vmaxvq_p_s16): Remove. (vminvq_p_u32): Remove. (vmaxvq_p_u32): Remove. (vminvq_p_s32): Remove. (vmaxvq_p_s32): Remove. (__arm_vminvq_u8): Remove. (__arm_vmaxvq_u8): Remove. (__arm_vminvq_s8): Remove. (__arm_vmaxvq_s8): Remove. (__arm_vminvq_u16): Remove. (__arm_vmaxvq_u16): Remove. (__arm_vminvq_s16): Remove. (__arm_vmaxvq_s16): Remove. (__arm_vminvq_u32): Remove. (__arm_vmaxvq_u32): Remove. (__arm_vminvq_s32): Remove. (__arm_vmaxvq_s32): Remove. (__arm_vminvq_p_u8): Remove. (__arm_vmaxvq_p_u8): Remove. (__arm_vminvq_p_s8): Remove. (__arm_vmaxvq_p_s8): Remove. (__arm_vminvq_p_u16): Remove. (__arm_vmaxvq_p_u16): Remove. (__arm_vminvq_p_s16): Remove. (__arm_vmaxvq_p_s16): Remove. (__arm_vminvq_p_u32): Remove. (__arm_vmaxvq_p_u32): Remove. (__arm_vminvq_p_s32): Remove. (__arm_vmaxvq_p_s32): Remove. (__arm_vminvq): Remove. (__arm_vmaxvq): Remove. (__arm_vminvq_p): Remove. (__arm_vmaxvq_p): Remove. (vminavq): Remove. (vmaxavq): Remove. (vminavq_p): Remove. (vmaxavq_p): Remove. (vminavq_s8): Remove. (vmaxavq_s8): Remove. (vminavq_s16): Remove. (vmaxavq_s16): Remove. (vminavq_s32): Remove. (vmaxavq_s32): Remove. (vminavq_p_s8): Remove. (vmaxavq_p_s8): Remove. (vminavq_p_s16): Remove. (vmaxavq_p_s16): Remove. (vminavq_p_s32): Remove. (vmaxavq_p_s32): Remove. (__arm_vminavq_s8): Remove. (__arm_vmaxavq_s8): Remove. (__arm_vminavq_s16): Remove. (__arm_vmaxavq_s16): Remove. (__arm_vminavq_s32): Remove. (__arm_vmaxavq_s32): Remove. (__arm_vminavq_p_s8): Remove. (__arm_vmaxavq_p_s8): Remove. (__arm_vminavq_p_s16): Remove. (__arm_vmaxavq_p_s16): Remove. (__arm_vminavq_p_s32): Remove. (__arm_vmaxavq_p_s32): Remove. (__arm_vminavq): Remove. (__arm_vmaxavq): Remove. (__arm_vminavq_p): Remove. (__arm_vmaxavq_p): Remove. --- gcc/config/arm/arm-mve-builtins-base.cc | 17 + gcc/config/arm/arm-mve-builtins-base.def | 4 + gcc/config/arm/arm-mve-builtins-base.h | 4 + gcc/config/arm/arm_mve.h | 616 ----------------------- 4 files changed, 25 insertions(+), 616 deletions(-) diff --git a/gcc/config/arm/arm-mve-builtins-base.cc b/gcc/config/arm/arm-mve-builtins-base.cc index aafd85b293d..cfab3f222ed 100644 --- a/gcc/config/arm/arm-mve-builtins-base.cc +++ b/gcc/config/arm/arm-mve-builtins-base.cc @@ -212,6 +212,19 @@ namespace arm_mve { -1, -1, UNSPEC##_M_F, \ -1, -1, -1)) + /* Helper for builtins without RTX codes, _S mode, _p predicated. */ +#define FUNCTION_PRED_P_S(NAME, UNSPEC) FUNCTION \ + (NAME, unspec_mve_function_exact_insn_pred_p, \ + (UNSPEC##_S, -1, -1, \ + UNSPEC##_P_S, -1, -1)) + + /* Helper for builtins without RTX codes, _S and _U modes, _p + predicated. */ +#define FUNCTION_PRED_P_S_U(NAME, UNSPEC) FUNCTION \ + (NAME, unspec_mve_function_exact_insn_pred_p, \ + (UNSPEC##_S, UNSPEC##_U, -1, \ + UNSPEC##_P_S, UNSPEC##_P_U, -1)) + FUNCTION_WITHOUT_N (vabdq, VABDQ) FUNCTION (vabsq, unspec_based_mve_function_exact_insn, (ABS, ABS, ABS, -1, -1, -1, VABSQ_M_S, -1, VABSQ_M_F, -1, -1, -1)) FUNCTION_WITH_RTX_M_N (vaddq, PLUS, VADDQ) @@ -222,8 +235,12 @@ FUNCTION_WITHOUT_M_N (vcreateq, VCREATEQ) FUNCTION_WITH_RTX_M (veorq, XOR, VEORQ) FUNCTION_WITH_M_N_NO_F (vhaddq, VHADDQ) FUNCTION_WITH_M_N_NO_F (vhsubq, VHSUBQ) +FUNCTION_PRED_P_S (vmaxavq, VMAXAVQ) FUNCTION_WITH_RTX_M_NO_F (vmaxq, SMAX, UMAX, VMAXQ) +FUNCTION_PRED_P_S_U (vmaxvq, VMAXVQ) +FUNCTION_PRED_P_S (vminavq, VMINAVQ) FUNCTION_WITH_RTX_M_NO_F (vminq, SMIN, UMIN, VMINQ) +FUNCTION_PRED_P_S_U (vminvq, VMINVQ) FUNCTION_WITHOUT_N_NO_F (vmovnbq, VMOVNBQ) FUNCTION_WITHOUT_N_NO_F (vmovntq, VMOVNTQ) FUNCTION_WITHOUT_N_NO_F (vmulhq, VMULHQ) diff --git a/gcc/config/arm/arm-mve-builtins-base.def b/gcc/config/arm/arm-mve-builtins-base.def index 78c7515b972..d06e134719e 100644 --- a/gcc/config/arm/arm-mve-builtins-base.def +++ b/gcc/config/arm/arm-mve-builtins-base.def @@ -28,8 +28,12 @@ DEF_MVE_FUNCTION (vcreateq, create, all_integer_with_64, 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 (vhsubq, binary_opt_n, all_integer, mx_or_none) +DEF_MVE_FUNCTION (vmaxavq, binary_maxavminav, all_signed, p_or_none) DEF_MVE_FUNCTION (vmaxq, binary, all_integer, mx_or_none) +DEF_MVE_FUNCTION (vmaxvq, binary_maxvminv, all_integer, p_or_none) +DEF_MVE_FUNCTION (vminavq, binary_maxavminav, all_signed, p_or_none) DEF_MVE_FUNCTION (vminq, binary, all_integer, mx_or_none) +DEF_MVE_FUNCTION (vminvq, binary_maxvminv, all_integer, p_or_none) 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) diff --git a/gcc/config/arm/arm-mve-builtins-base.h b/gcc/config/arm/arm-mve-builtins-base.h index e5a83466512..30e0f42a352 100644 --- a/gcc/config/arm/arm-mve-builtins-base.h +++ b/gcc/config/arm/arm-mve-builtins-base.h @@ -33,8 +33,12 @@ extern const function_base *const vcreateq; extern const function_base *const veorq; extern const function_base *const vhaddq; extern const function_base *const vhsubq; +extern const function_base *const vmaxavq; extern const function_base *const vmaxq; +extern const function_base *const vmaxvq; +extern const function_base *const vminavq; extern const function_base *const vminq; +extern const function_base *const vminvq; extern const function_base *const vmovnbq; extern const function_base *const vmovntq; extern const function_base *const vmulhq; diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h index 8258ee0b802..dddaab74bc0 100644 --- a/gcc/config/arm/arm_mve.h +++ b/gcc/config/arm/arm_mve.h @@ -57,8 +57,6 @@ #define vmulltq_int(__a, __b) __arm_vmulltq_int(__a, __b) #define vmullbq_int(__a, __b) __arm_vmullbq_int(__a, __b) #define vmladavq(__a, __b) __arm_vmladavq(__a, __b) -#define vminvq(__a, __b) __arm_vminvq(__a, __b) -#define vmaxvq(__a, __b) __arm_vmaxvq(__a, __b) #define vcmphiq(__a, __b) __arm_vcmphiq(__a, __b) #define vcmpeqq(__a, __b) __arm_vcmpeqq(__a, __b) #define vcmpcsq(__a, __b) __arm_vcmpcsq(__a, __b) @@ -67,9 +65,7 @@ #define vbicq(__a, __b) __arm_vbicq(__a, __b) #define vaddvq_p(__a, __p) __arm_vaddvq_p(__a, __p) #define vaddvaq(__a, __b) __arm_vaddvaq(__a, __b) -#define vminavq(__a, __b) __arm_vminavq(__a, __b) #define vminaq(__a, __b) __arm_vminaq(__a, __b) -#define vmaxavq(__a, __b) __arm_vmaxavq(__a, __b) #define vmaxaq(__a, __b) __arm_vmaxaq(__a, __b) #define vbrsrq(__a, __b) __arm_vbrsrq(__a, __b) #define vcmpltq(__a, __b) __arm_vcmpltq(__a, __b) @@ -110,8 +106,6 @@ #define vmlaq(__a, __b, __c) __arm_vmlaq(__a, __b, __c) #define vmladavq_p(__a, __b, __p) __arm_vmladavq_p(__a, __b, __p) #define vmladavaq(__a, __b, __c) __arm_vmladavaq(__a, __b, __c) -#define vminvq_p(__a, __b, __p) __arm_vminvq_p(__a, __b, __p) -#define vmaxvq_p(__a, __b, __p) __arm_vmaxvq_p(__a, __b, __p) #define vdupq_m(__inactive, __a, __p) __arm_vdupq_m(__inactive, __a, __p) #define vcmpneq_m(__a, __b, __p) __arm_vcmpneq_m(__a, __b, __p) #define vcmphiq_m(__a, __b, __p) __arm_vcmphiq_m(__a, __b, __p) @@ -121,9 +115,7 @@ #define vaddvaq_p(__a, __b, __p) __arm_vaddvaq_p(__a, __b, __p) #define vsriq(__a, __b, __imm) __arm_vsriq(__a, __b, __imm) #define vsliq(__a, __b, __imm) __arm_vsliq(__a, __b, __imm) -#define vminavq_p(__a, __b, __p) __arm_vminavq_p(__a, __b, __p) #define vminaq_m(__a, __b, __p) __arm_vminaq_m(__a, __b, __p) -#define vmaxavq_p(__a, __b, __p) __arm_vmaxavq_p(__a, __b, __p) #define vmaxaq_m(__a, __b, __p) __arm_vmaxaq_m(__a, __b, __p) #define vcmpltq_m(__a, __b, __p) __arm_vcmpltq_m(__a, __b, __p) #define vcmpleq_m(__a, __b, __p) __arm_vcmpleq_m(__a, __b, __p) @@ -482,8 +474,6 @@ #define vmulltq_int_u8(__a, __b) __arm_vmulltq_int_u8(__a, __b) #define vmullbq_int_u8(__a, __b) __arm_vmullbq_int_u8(__a, __b) #define vmladavq_u8(__a, __b) __arm_vmladavq_u8(__a, __b) -#define vminvq_u8(__a, __b) __arm_vminvq_u8(__a, __b) -#define vmaxvq_u8(__a, __b) __arm_vmaxvq_u8(__a, __b) #define vcmpneq_n_u8(__a, __b) __arm_vcmpneq_n_u8(__a, __b) #define vcmphiq_u8(__a, __b) __arm_vcmphiq_u8(__a, __b) #define vcmphiq_n_u8(__a, __b) __arm_vcmphiq_n_u8(__a, __b) @@ -496,9 +486,7 @@ #define vbicq_u8(__a, __b) __arm_vbicq_u8(__a, __b) #define vaddvq_p_u8(__a, __p) __arm_vaddvq_p_u8(__a, __p) #define vaddvaq_u8(__a, __b) __arm_vaddvaq_u8(__a, __b) -#define vminavq_s8(__a, __b) __arm_vminavq_s8(__a, __b) #define vminaq_s8(__a, __b) __arm_vminaq_s8(__a, __b) -#define vmaxavq_s8(__a, __b) __arm_vmaxavq_s8(__a, __b) #define vmaxaq_s8(__a, __b) __arm_vmaxaq_s8(__a, __b) #define vbrsrq_n_u8(__a, __b) __arm_vbrsrq_n_u8(__a, __b) #define vcmpneq_n_s8(__a, __b) __arm_vcmpneq_n_s8(__a, __b) @@ -521,8 +509,6 @@ #define vmlsdavq_s8(__a, __b) __arm_vmlsdavq_s8(__a, __b) #define vmladavxq_s8(__a, __b) __arm_vmladavxq_s8(__a, __b) #define vmladavq_s8(__a, __b) __arm_vmladavq_s8(__a, __b) -#define vminvq_s8(__a, __b) __arm_vminvq_s8(__a, __b) -#define vmaxvq_s8(__a, __b) __arm_vmaxvq_s8(__a, __b) #define vhcaddq_rot90_s8(__a, __b) __arm_vhcaddq_rot90_s8(__a, __b) #define vhcaddq_rot270_s8(__a, __b) __arm_vhcaddq_rot270_s8(__a, __b) #define vcaddq_rot90_s8(__a, __b) __arm_vcaddq_rot90_s8(__a, __b) @@ -534,8 +520,6 @@ #define vmulltq_int_u16(__a, __b) __arm_vmulltq_int_u16(__a, __b) #define vmullbq_int_u16(__a, __b) __arm_vmullbq_int_u16(__a, __b) #define vmladavq_u16(__a, __b) __arm_vmladavq_u16(__a, __b) -#define vminvq_u16(__a, __b) __arm_vminvq_u16(__a, __b) -#define vmaxvq_u16(__a, __b) __arm_vmaxvq_u16(__a, __b) #define vcmpneq_n_u16(__a, __b) __arm_vcmpneq_n_u16(__a, __b) #define vcmphiq_u16(__a, __b) __arm_vcmphiq_u16(__a, __b) #define vcmphiq_n_u16(__a, __b) __arm_vcmphiq_n_u16(__a, __b) @@ -548,9 +532,7 @@ #define vbicq_u16(__a, __b) __arm_vbicq_u16(__a, __b) #define vaddvq_p_u16(__a, __p) __arm_vaddvq_p_u16(__a, __p) #define vaddvaq_u16(__a, __b) __arm_vaddvaq_u16(__a, __b) -#define vminavq_s16(__a, __b) __arm_vminavq_s16(__a, __b) #define vminaq_s16(__a, __b) __arm_vminaq_s16(__a, __b) -#define vmaxavq_s16(__a, __b) __arm_vmaxavq_s16(__a, __b) #define vmaxaq_s16(__a, __b) __arm_vmaxaq_s16(__a, __b) #define vbrsrq_n_u16(__a, __b) __arm_vbrsrq_n_u16(__a, __b) #define vcmpneq_n_s16(__a, __b) __arm_vcmpneq_n_s16(__a, __b) @@ -573,8 +555,6 @@ #define vmlsdavq_s16(__a, __b) __arm_vmlsdavq_s16(__a, __b) #define vmladavxq_s16(__a, __b) __arm_vmladavxq_s16(__a, __b) #define vmladavq_s16(__a, __b) __arm_vmladavq_s16(__a, __b) -#define vminvq_s16(__a, __b) __arm_vminvq_s16(__a, __b) -#define vmaxvq_s16(__a, __b) __arm_vmaxvq_s16(__a, __b) #define vhcaddq_rot90_s16(__a, __b) __arm_vhcaddq_rot90_s16(__a, __b) #define vhcaddq_rot270_s16(__a, __b) __arm_vhcaddq_rot270_s16(__a, __b) #define vcaddq_rot90_s16(__a, __b) __arm_vcaddq_rot90_s16(__a, __b) @@ -586,8 +566,6 @@ #define vmulltq_int_u32(__a, __b) __arm_vmulltq_int_u32(__a, __b) #define vmullbq_int_u32(__a, __b) __arm_vmullbq_int_u32(__a, __b) #define vmladavq_u32(__a, __b) __arm_vmladavq_u32(__a, __b) -#define vminvq_u32(__a, __b) __arm_vminvq_u32(__a, __b) -#define vmaxvq_u32(__a, __b) __arm_vmaxvq_u32(__a, __b) #define vcmpneq_n_u32(__a, __b) __arm_vcmpneq_n_u32(__a, __b) #define vcmphiq_u32(__a, __b) __arm_vcmphiq_u32(__a, __b) #define vcmphiq_n_u32(__a, __b) __arm_vcmphiq_n_u32(__a, __b) @@ -600,9 +578,7 @@ #define vbicq_u32(__a, __b) __arm_vbicq_u32(__a, __b) #define vaddvq_p_u32(__a, __p) __arm_vaddvq_p_u32(__a, __p) #define vaddvaq_u32(__a, __b) __arm_vaddvaq_u32(__a, __b) -#define vminavq_s32(__a, __b) __arm_vminavq_s32(__a, __b) #define vminaq_s32(__a, __b) __arm_vminaq_s32(__a, __b) -#define vmaxavq_s32(__a, __b) __arm_vmaxavq_s32(__a, __b) #define vmaxaq_s32(__a, __b) __arm_vmaxaq_s32(__a, __b) #define vbrsrq_n_u32(__a, __b) __arm_vbrsrq_n_u32(__a, __b) #define vcmpneq_n_s32(__a, __b) __arm_vcmpneq_n_s32(__a, __b) @@ -625,8 +601,6 @@ #define vmlsdavq_s32(__a, __b) __arm_vmlsdavq_s32(__a, __b) #define vmladavxq_s32(__a, __b) __arm_vmladavxq_s32(__a, __b) #define vmladavq_s32(__a, __b) __arm_vmladavq_s32(__a, __b) -#define vminvq_s32(__a, __b) __arm_vminvq_s32(__a, __b) -#define vmaxvq_s32(__a, __b) __arm_vmaxvq_s32(__a, __b) #define vhcaddq_rot90_s32(__a, __b) __arm_vhcaddq_rot90_s32(__a, __b) #define vhcaddq_rot270_s32(__a, __b) __arm_vhcaddq_rot270_s32(__a, __b) #define vcaddq_rot90_s32(__a, __b) __arm_vcaddq_rot90_s32(__a, __b) @@ -765,8 +739,6 @@ #define vmlaq_n_u8(__a, __b, __c) __arm_vmlaq_n_u8(__a, __b, __c) #define vmladavq_p_u8(__a, __b, __p) __arm_vmladavq_p_u8(__a, __b, __p) #define vmladavaq_u8(__a, __b, __c) __arm_vmladavaq_u8(__a, __b, __c) -#define vminvq_p_u8(__a, __b, __p) __arm_vminvq_p_u8(__a, __b, __p) -#define vmaxvq_p_u8(__a, __b, __p) __arm_vmaxvq_p_u8(__a, __b, __p) #define vdupq_m_n_u8(__inactive, __a, __p) __arm_vdupq_m_n_u8(__inactive, __a, __p) #define vcmpneq_m_u8(__a, __b, __p) __arm_vcmpneq_m_u8(__a, __b, __p) #define vcmpneq_m_n_u8(__a, __b, __p) __arm_vcmpneq_m_n_u8(__a, __b, __p) @@ -779,9 +751,7 @@ #define vaddvaq_p_u8(__a, __b, __p) __arm_vaddvaq_p_u8(__a, __b, __p) #define vsriq_n_u8(__a, __b, __imm) __arm_vsriq_n_u8(__a, __b, __imm) #define vsliq_n_u8(__a, __b, __imm) __arm_vsliq_n_u8(__a, __b, __imm) -#define vminavq_p_s8(__a, __b, __p) __arm_vminavq_p_s8(__a, __b, __p) #define vminaq_m_s8(__a, __b, __p) __arm_vminaq_m_s8(__a, __b, __p) -#define vmaxavq_p_s8(__a, __b, __p) __arm_vmaxavq_p_s8(__a, __b, __p) #define vmaxaq_m_s8(__a, __b, __p) __arm_vmaxaq_m_s8(__a, __b, __p) #define vcmpneq_m_s8(__a, __b, __p) __arm_vcmpneq_m_s8(__a, __b, __p) #define vcmpneq_m_n_s8(__a, __b, __p) __arm_vcmpneq_m_n_s8(__a, __b, __p) @@ -801,8 +771,6 @@ #define vmlsdavq_p_s8(__a, __b, __p) __arm_vmlsdavq_p_s8(__a, __b, __p) #define vmladavxq_p_s8(__a, __b, __p) __arm_vmladavxq_p_s8(__a, __b, __p) #define vmladavq_p_s8(__a, __b, __p) __arm_vmladavq_p_s8(__a, __b, __p) -#define vminvq_p_s8(__a, __b, __p) __arm_vminvq_p_s8(__a, __b, __p) -#define vmaxvq_p_s8(__a, __b, __p) __arm_vmaxvq_p_s8(__a, __b, __p) #define vdupq_m_n_s8(__inactive, __a, __p) __arm_vdupq_m_n_s8(__inactive, __a, __p) #define vaddvaq_p_s8(__a, __b, __p) __arm_vaddvaq_p_s8(__a, __b, __p) #define vqrdmlsdhxq_s8(__inactive, __a, __b) __arm_vqrdmlsdhxq_s8(__inactive, __a, __b) @@ -833,8 +801,6 @@ #define vmlaq_n_u16(__a, __b, __c) __arm_vmlaq_n_u16(__a, __b, __c) #define vmladavq_p_u16(__a, __b, __p) __arm_vmladavq_p_u16(__a, __b, __p) #define vmladavaq_u16(__a, __b, __c) __arm_vmladavaq_u16(__a, __b, __c) -#define vminvq_p_u16(__a, __b, __p) __arm_vminvq_p_u16(__a, __b, __p) -#define vmaxvq_p_u16(__a, __b, __p) __arm_vmaxvq_p_u16(__a, __b, __p) #define vdupq_m_n_u16(__inactive, __a, __p) __arm_vdupq_m_n_u16(__inactive, __a, __p) #define vcmpneq_m_u16(__a, __b, __p) __arm_vcmpneq_m_u16(__a, __b, __p) #define vcmpneq_m_n_u16(__a, __b, __p) __arm_vcmpneq_m_n_u16(__a, __b, __p) @@ -847,9 +813,7 @@ #define vaddvaq_p_u16(__a, __b, __p) __arm_vaddvaq_p_u16(__a, __b, __p) #define vsriq_n_u16(__a, __b, __imm) __arm_vsriq_n_u16(__a, __b, __imm) #define vsliq_n_u16(__a, __b, __imm) __arm_vsliq_n_u16(__a, __b, __imm) -#define vminavq_p_s16(__a, __b, __p) __arm_vminavq_p_s16(__a, __b, __p) #define vminaq_m_s16(__a, __b, __p) __arm_vminaq_m_s16(__a, __b, __p) -#define vmaxavq_p_s16(__a, __b, __p) __arm_vmaxavq_p_s16(__a, __b, __p) #define vmaxaq_m_s16(__a, __b, __p) __arm_vmaxaq_m_s16(__a, __b, __p) #define vcmpneq_m_s16(__a, __b, __p) __arm_vcmpneq_m_s16(__a, __b, __p) #define vcmpneq_m_n_s16(__a, __b, __p) __arm_vcmpneq_m_n_s16(__a, __b, __p) @@ -869,8 +833,6 @@ #define vmlsdavq_p_s16(__a, __b, __p) __arm_vmlsdavq_p_s16(__a, __b, __p) #define vmladavxq_p_s16(__a, __b, __p) __arm_vmladavxq_p_s16(__a, __b, __p) #define vmladavq_p_s16(__a, __b, __p) __arm_vmladavq_p_s16(__a, __b, __p) -#define vminvq_p_s16(__a, __b, __p) __arm_vminvq_p_s16(__a, __b, __p) -#define vmaxvq_p_s16(__a, __b, __p) __arm_vmaxvq_p_s16(__a, __b, __p) #define vdupq_m_n_s16(__inactive, __a, __p) __arm_vdupq_m_n_s16(__inactive, __a, __p) #define vaddvaq_p_s16(__a, __b, __p) __arm_vaddvaq_p_s16(__a, __b, __p) #define vqrdmlsdhxq_s16(__inactive, __a, __b) __arm_vqrdmlsdhxq_s16(__inactive, __a, __b) @@ -901,8 +863,6 @@ #define vmlaq_n_u32(__a, __b, __c) __arm_vmlaq_n_u32(__a, __b, __c) #define vmladavq_p_u32(__a, __b, __p) __arm_vmladavq_p_u32(__a, __b, __p) #define vmladavaq_u32(__a, __b, __c) __arm_vmladavaq_u32(__a, __b, __c) -#define vminvq_p_u32(__a, __b, __p) __arm_vminvq_p_u32(__a, __b, __p) -#define vmaxvq_p_u32(__a, __b, __p) __arm_vmaxvq_p_u32(__a, __b, __p) #define vdupq_m_n_u32(__inactive, __a, __p) __arm_vdupq_m_n_u32(__inactive, __a, __p) #define vcmpneq_m_u32(__a, __b, __p) __arm_vcmpneq_m_u32(__a, __b, __p) #define vcmpneq_m_n_u32(__a, __b, __p) __arm_vcmpneq_m_n_u32(__a, __b, __p) @@ -915,9 +875,7 @@ #define vaddvaq_p_u32(__a, __b, __p) __arm_vaddvaq_p_u32(__a, __b, __p) #define vsriq_n_u32(__a, __b, __imm) __arm_vsriq_n_u32(__a, __b, __imm) #define vsliq_n_u32(__a, __b, __imm) __arm_vsliq_n_u32(__a, __b, __imm) -#define vminavq_p_s32(__a, __b, __p) __arm_vminavq_p_s32(__a, __b, __p) #define vminaq_m_s32(__a, __b, __p) __arm_vminaq_m_s32(__a, __b, __p) -#define vmaxavq_p_s32(__a, __b, __p) __arm_vmaxavq_p_s32(__a, __b, __p) #define vmaxaq_m_s32(__a, __b, __p) __arm_vmaxaq_m_s32(__a, __b, __p) #define vcmpneq_m_s32(__a, __b, __p) __arm_vcmpneq_m_s32(__a, __b, __p) #define vcmpneq_m_n_s32(__a, __b, __p) __arm_vcmpneq_m_n_s32(__a, __b, __p) @@ -937,8 +895,6 @@ #define vmlsdavq_p_s32(__a, __b, __p) __arm_vmlsdavq_p_s32(__a, __b, __p) #define vmladavxq_p_s32(__a, __b, __p) __arm_vmladavxq_p_s32(__a, __b, __p) #define vmladavq_p_s32(__a, __b, __p) __arm_vmladavq_p_s32(__a, __b, __p) -#define vminvq_p_s32(__a, __b, __p) __arm_vminvq_p_s32(__a, __b, __p) -#define vmaxvq_p_s32(__a, __b, __p) __arm_vmaxvq_p_s32(__a, __b, __p) #define vdupq_m_n_s32(__inactive, __a, __p) __arm_vdupq_m_n_s32(__inactive, __a, __p) #define vaddvaq_p_s32(__a, __b, __p) __arm_vaddvaq_p_s32(__a, __b, __p) #define vqrdmlsdhxq_s32(__inactive, __a, __b) __arm_vqrdmlsdhxq_s32(__inactive, __a, __b) @@ -2333,20 +2289,6 @@ __arm_vmladavq_u8 (uint8x16_t __a, uint8x16_t __b) return __builtin_mve_vmladavq_uv16qi (__a, __b); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_u8 (uint8_t __a, uint8x16_t __b) -{ - return __builtin_mve_vminvq_uv16qi (__a, __b); -} - -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_u8 (uint8_t __a, uint8x16_t __b) -{ - return __builtin_mve_vmaxvq_uv16qi (__a, __b); -} - __extension__ extern __inline mve_pred16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcmpneq_n_u8 (uint8x16_t __a, uint8_t __b) @@ -2433,13 +2375,6 @@ __arm_vaddvaq_u8 (uint32_t __a, uint8x16_t __b) return __builtin_mve_vaddvaq_uv16qi (__a, __b); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_s8 (uint8_t __a, int8x16_t __b) -{ - return __builtin_mve_vminavq_sv16qi (__a, __b); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_s8 (uint8x16_t __a, int8x16_t __b) @@ -2447,13 +2382,6 @@ __arm_vminaq_s8 (uint8x16_t __a, int8x16_t __b) return __builtin_mve_vminaq_sv16qi (__a, __b); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_s8 (uint8_t __a, int8x16_t __b) -{ - return __builtin_mve_vmaxavq_sv16qi (__a, __b); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_s8 (uint8x16_t __a, int8x16_t __b) @@ -2608,20 +2536,6 @@ __arm_vmladavq_s8 (int8x16_t __a, int8x16_t __b) return __builtin_mve_vmladavq_sv16qi (__a, __b); } -__extension__ extern __inline int8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_s8 (int8_t __a, int8x16_t __b) -{ - return __builtin_mve_vminvq_sv16qi (__a, __b); -} - -__extension__ extern __inline int8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_s8 (int8_t __a, int8x16_t __b) -{ - return __builtin_mve_vmaxvq_sv16qi (__a, __b); -} - __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vhcaddq_rot90_s8 (int8x16_t __a, int8x16_t __b) @@ -2699,20 +2613,6 @@ __arm_vmladavq_u16 (uint16x8_t __a, uint16x8_t __b) return __builtin_mve_vmladavq_uv8hi (__a, __b); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_u16 (uint16_t __a, uint16x8_t __b) -{ - return __builtin_mve_vminvq_uv8hi (__a, __b); -} - -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_u16 (uint16_t __a, uint16x8_t __b) -{ - return __builtin_mve_vmaxvq_uv8hi (__a, __b); -} - __extension__ extern __inline mve_pred16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcmpneq_n_u16 (uint16x8_t __a, uint16_t __b) @@ -2799,13 +2699,6 @@ __arm_vaddvaq_u16 (uint32_t __a, uint16x8_t __b) return __builtin_mve_vaddvaq_uv8hi (__a, __b); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_s16 (uint16_t __a, int16x8_t __b) -{ - return __builtin_mve_vminavq_sv8hi (__a, __b); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_s16 (uint16x8_t __a, int16x8_t __b) @@ -2813,13 +2706,6 @@ __arm_vminaq_s16 (uint16x8_t __a, int16x8_t __b) return __builtin_mve_vminaq_sv8hi (__a, __b); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_s16 (uint16_t __a, int16x8_t __b) -{ - return __builtin_mve_vmaxavq_sv8hi (__a, __b); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_s16 (uint16x8_t __a, int16x8_t __b) @@ -2974,20 +2860,6 @@ __arm_vmladavq_s16 (int16x8_t __a, int16x8_t __b) return __builtin_mve_vmladavq_sv8hi (__a, __b); } -__extension__ extern __inline int16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_s16 (int16_t __a, int16x8_t __b) -{ - return __builtin_mve_vminvq_sv8hi (__a, __b); -} - -__extension__ extern __inline int16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_s16 (int16_t __a, int16x8_t __b) -{ - return __builtin_mve_vmaxvq_sv8hi (__a, __b); -} - __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vhcaddq_rot90_s16 (int16x8_t __a, int16x8_t __b) @@ -3065,20 +2937,6 @@ __arm_vmladavq_u32 (uint32x4_t __a, uint32x4_t __b) return __builtin_mve_vmladavq_uv4si (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_u32 (uint32_t __a, uint32x4_t __b) -{ - return __builtin_mve_vminvq_uv4si (__a, __b); -} - -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_u32 (uint32_t __a, uint32x4_t __b) -{ - return __builtin_mve_vmaxvq_uv4si (__a, __b); -} - __extension__ extern __inline mve_pred16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcmpneq_n_u32 (uint32x4_t __a, uint32_t __b) @@ -3165,13 +3023,6 @@ __arm_vaddvaq_u32 (uint32_t __a, uint32x4_t __b) return __builtin_mve_vaddvaq_uv4si (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_s32 (uint32_t __a, int32x4_t __b) -{ - return __builtin_mve_vminavq_sv4si (__a, __b); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_s32 (uint32x4_t __a, int32x4_t __b) @@ -3179,13 +3030,6 @@ __arm_vminaq_s32 (uint32x4_t __a, int32x4_t __b) return __builtin_mve_vminaq_sv4si (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_s32 (uint32_t __a, int32x4_t __b) -{ - return __builtin_mve_vmaxavq_sv4si (__a, __b); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_s32 (uint32x4_t __a, int32x4_t __b) @@ -3340,20 +3184,6 @@ __arm_vmladavq_s32 (int32x4_t __a, int32x4_t __b) return __builtin_mve_vmladavq_sv4si (__a, __b); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_s32 (int32_t __a, int32x4_t __b) -{ - return __builtin_mve_vminvq_sv4si (__a, __b); -} - -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_s32 (int32_t __a, int32x4_t __b) -{ - return __builtin_mve_vmaxvq_sv4si (__a, __b); -} - __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vhcaddq_rot90_s32 (int32x4_t __a, int32x4_t __b) @@ -3856,20 +3686,6 @@ __arm_vmladavaq_u8 (uint32_t __a, uint8x16_t __b, uint8x16_t __c) return __builtin_mve_vmladavaq_uv16qi (__a, __b, __c); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p_u8 (uint8_t __a, uint8x16_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminvq_p_uv16qi (__a, __b, __p); -} - -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p_u8 (uint8_t __a, uint8x16_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxvq_p_uv16qi (__a, __b, __p); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m_n_u8 (uint8x16_t __inactive, uint8_t __a, mve_pred16_t __p) @@ -3954,13 +3770,6 @@ __arm_vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __imm) return __builtin_mve_vsliq_n_uv16qi (__a, __b, __imm); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_p_s8 (uint8_t __a, int8x16_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminavq_p_sv16qi (__a, __b, __p); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_m_s8 (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p) @@ -3968,13 +3777,6 @@ __arm_vminaq_m_s8 (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p) return __builtin_mve_vminaq_m_sv16qi (__a, __b, __p); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_p_s8 (uint8_t __a, int8x16_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxavq_p_sv16qi (__a, __b, __p); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_m_s8 (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p) @@ -4108,20 +3910,6 @@ __arm_vmladavq_p_s8 (int8x16_t __a, int8x16_t __b, mve_pred16_t __p) return __builtin_mve_vmladavq_p_sv16qi (__a, __b, __p); } -__extension__ extern __inline int8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p_s8 (int8_t __a, int8x16_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminvq_p_sv16qi (__a, __b, __p); -} - -__extension__ extern __inline int8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p_s8 (int8_t __a, int8x16_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxvq_p_sv16qi (__a, __b, __p); -} - __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m_n_s8 (int8x16_t __inactive, int8_t __a, mve_pred16_t __p) @@ -4332,20 +4120,6 @@ __arm_vmladavaq_u16 (uint32_t __a, uint16x8_t __b, uint16x8_t __c) return __builtin_mve_vmladavaq_uv8hi (__a, __b, __c); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p_u16 (uint16_t __a, uint16x8_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminvq_p_uv8hi (__a, __b, __p); -} - -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p_u16 (uint16_t __a, uint16x8_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxvq_p_uv8hi (__a, __b, __p); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m_n_u16 (uint16x8_t __inactive, uint16_t __a, mve_pred16_t __p) @@ -4430,13 +4204,6 @@ __arm_vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __imm) return __builtin_mve_vsliq_n_uv8hi (__a, __b, __imm); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_p_s16 (uint16_t __a, int16x8_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminavq_p_sv8hi (__a, __b, __p); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_m_s16 (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p) @@ -4444,13 +4211,6 @@ __arm_vminaq_m_s16 (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p) return __builtin_mve_vminaq_m_sv8hi (__a, __b, __p); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_p_s16 (uint16_t __a, int16x8_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxavq_p_sv8hi (__a, __b, __p); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_m_s16 (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p) @@ -4584,20 +4344,6 @@ __arm_vmladavq_p_s16 (int16x8_t __a, int16x8_t __b, mve_pred16_t __p) return __builtin_mve_vmladavq_p_sv8hi (__a, __b, __p); } -__extension__ extern __inline int16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p_s16 (int16_t __a, int16x8_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminvq_p_sv8hi (__a, __b, __p); -} - -__extension__ extern __inline int16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p_s16 (int16_t __a, int16x8_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxvq_p_sv8hi (__a, __b, __p); -} - __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m_n_s16 (int16x8_t __inactive, int16_t __a, mve_pred16_t __p) @@ -4808,20 +4554,6 @@ __arm_vmladavaq_u32 (uint32_t __a, uint32x4_t __b, uint32x4_t __c) return __builtin_mve_vmladavaq_uv4si (__a, __b, __c); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p_u32 (uint32_t __a, uint32x4_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminvq_p_uv4si (__a, __b, __p); -} - -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p_u32 (uint32_t __a, uint32x4_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxvq_p_uv4si (__a, __b, __p); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m_n_u32 (uint32x4_t __inactive, uint32_t __a, mve_pred16_t __p) @@ -4906,13 +4638,6 @@ __arm_vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __imm) return __builtin_mve_vsliq_n_uv4si (__a, __b, __imm); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_p_s32 (uint32_t __a, int32x4_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminavq_p_sv4si (__a, __b, __p); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_m_s32 (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p) @@ -4920,13 +4645,6 @@ __arm_vminaq_m_s32 (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p) return __builtin_mve_vminaq_m_sv4si (__a, __b, __p); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_p_s32 (uint32_t __a, int32x4_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxavq_p_sv4si (__a, __b, __p); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_m_s32 (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p) @@ -5060,20 +4778,6 @@ __arm_vmladavq_p_s32 (int32x4_t __a, int32x4_t __b, mve_pred16_t __p) return __builtin_mve_vmladavq_p_sv4si (__a, __b, __p); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p_s32 (int32_t __a, int32x4_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vminvq_p_sv4si (__a, __b, __p); -} - -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p_s32 (int32_t __a, int32x4_t __b, mve_pred16_t __p) -{ - return __builtin_mve_vmaxvq_p_sv4si (__a, __b, __p); -} - __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m_n_s32 (int32x4_t __inactive, int32_t __a, mve_pred16_t __p) @@ -12772,20 +12476,6 @@ __arm_vmladavq (uint8x16_t __a, uint8x16_t __b) return __arm_vmladavq_u8 (__a, __b); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq (uint8_t __a, uint8x16_t __b) -{ - return __arm_vminvq_u8 (__a, __b); -} - -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq (uint8_t __a, uint8x16_t __b) -{ - return __arm_vmaxvq_u8 (__a, __b); -} - __extension__ extern __inline mve_pred16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcmpneq (uint8x16_t __a, uint8_t __b) @@ -12870,13 +12560,6 @@ __arm_vaddvaq (uint32_t __a, uint8x16_t __b) return __arm_vaddvaq_u8 (__a, __b); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq (uint8_t __a, int8x16_t __b) -{ - return __arm_vminavq_s8 (__a, __b); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq (uint8x16_t __a, int8x16_t __b) @@ -12884,13 +12567,6 @@ __arm_vminaq (uint8x16_t __a, int8x16_t __b) return __arm_vminaq_s8 (__a, __b); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq (uint8_t __a, int8x16_t __b) -{ - return __arm_vmaxavq_s8 (__a, __b); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq (uint8x16_t __a, int8x16_t __b) @@ -13045,20 +12721,6 @@ __arm_vmladavq (int8x16_t __a, int8x16_t __b) return __arm_vmladavq_s8 (__a, __b); } -__extension__ extern __inline int8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq (int8_t __a, int8x16_t __b) -{ - return __arm_vminvq_s8 (__a, __b); -} - -__extension__ extern __inline int8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq (int8_t __a, int8x16_t __b) -{ - return __arm_vmaxvq_s8 (__a, __b); -} - __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vhcaddq_rot90 (int8x16_t __a, int8x16_t __b) @@ -13136,20 +12798,6 @@ __arm_vmladavq (uint16x8_t __a, uint16x8_t __b) return __arm_vmladavq_u16 (__a, __b); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq (uint16_t __a, uint16x8_t __b) -{ - return __arm_vminvq_u16 (__a, __b); -} - -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq (uint16_t __a, uint16x8_t __b) -{ - return __arm_vmaxvq_u16 (__a, __b); -} - __extension__ extern __inline mve_pred16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcmpneq (uint16x8_t __a, uint16_t __b) @@ -13234,13 +12882,6 @@ __arm_vaddvaq (uint32_t __a, uint16x8_t __b) return __arm_vaddvaq_u16 (__a, __b); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq (uint16_t __a, int16x8_t __b) -{ - return __arm_vminavq_s16 (__a, __b); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq (uint16x8_t __a, int16x8_t __b) @@ -13248,13 +12889,6 @@ __arm_vminaq (uint16x8_t __a, int16x8_t __b) return __arm_vminaq_s16 (__a, __b); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq (uint16_t __a, int16x8_t __b) -{ - return __arm_vmaxavq_s16 (__a, __b); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq (uint16x8_t __a, int16x8_t __b) @@ -13409,20 +13043,6 @@ __arm_vmladavq (int16x8_t __a, int16x8_t __b) return __arm_vmladavq_s16 (__a, __b); } -__extension__ extern __inline int16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq (int16_t __a, int16x8_t __b) -{ - return __arm_vminvq_s16 (__a, __b); -} - -__extension__ extern __inline int16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq (int16_t __a, int16x8_t __b) -{ - return __arm_vmaxvq_s16 (__a, __b); -} - __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vhcaddq_rot90 (int16x8_t __a, int16x8_t __b) @@ -13500,20 +13120,6 @@ __arm_vmladavq (uint32x4_t __a, uint32x4_t __b) return __arm_vmladavq_u32 (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq (uint32_t __a, uint32x4_t __b) -{ - return __arm_vminvq_u32 (__a, __b); -} - -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq (uint32_t __a, uint32x4_t __b) -{ - return __arm_vmaxvq_u32 (__a, __b); -} - __extension__ extern __inline mve_pred16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcmpneq (uint32x4_t __a, uint32_t __b) @@ -13598,13 +13204,6 @@ __arm_vaddvaq (uint32_t __a, uint32x4_t __b) return __arm_vaddvaq_u32 (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq (uint32_t __a, int32x4_t __b) -{ - return __arm_vminavq_s32 (__a, __b); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq (uint32x4_t __a, int32x4_t __b) @@ -13612,13 +13211,6 @@ __arm_vminaq (uint32x4_t __a, int32x4_t __b) return __arm_vminaq_s32 (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq (uint32_t __a, int32x4_t __b) -{ - return __arm_vmaxavq_s32 (__a, __b); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq (uint32x4_t __a, int32x4_t __b) @@ -13773,20 +13365,6 @@ __arm_vmladavq (int32x4_t __a, int32x4_t __b) return __arm_vmladavq_s32 (__a, __b); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq (int32_t __a, int32x4_t __b) -{ - return __arm_vminvq_s32 (__a, __b); -} - -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq (int32_t __a, int32x4_t __b) -{ - return __arm_vmaxvq_s32 (__a, __b); -} - __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vhcaddq_rot90 (int32x4_t __a, int32x4_t __b) @@ -14249,20 +13827,6 @@ __arm_vmladavaq (uint32_t __a, uint8x16_t __b, uint8x16_t __c) return __arm_vmladavaq_u8 (__a, __b, __c); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p (uint8_t __a, uint8x16_t __b, mve_pred16_t __p) -{ - return __arm_vminvq_p_u8 (__a, __b, __p); -} - -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p (uint8_t __a, uint8x16_t __b, mve_pred16_t __p) -{ - return __arm_vmaxvq_p_u8 (__a, __b, __p); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m (uint8x16_t __inactive, uint8_t __a, mve_pred16_t __p) @@ -14347,13 +13911,6 @@ __arm_vsliq (uint8x16_t __a, uint8x16_t __b, const int __imm) return __arm_vsliq_n_u8 (__a, __b, __imm); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_p (uint8_t __a, int8x16_t __b, mve_pred16_t __p) -{ - return __arm_vminavq_p_s8 (__a, __b, __p); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_m (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p) @@ -14361,13 +13918,6 @@ __arm_vminaq_m (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p) return __arm_vminaq_m_s8 (__a, __b, __p); } -__extension__ extern __inline uint8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_p (uint8_t __a, int8x16_t __b, mve_pred16_t __p) -{ - return __arm_vmaxavq_p_s8 (__a, __b, __p); -} - __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_m (uint8x16_t __a, int8x16_t __b, mve_pred16_t __p) @@ -14501,20 +14051,6 @@ __arm_vmladavq_p (int8x16_t __a, int8x16_t __b, mve_pred16_t __p) return __arm_vmladavq_p_s8 (__a, __b, __p); } -__extension__ extern __inline int8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p (int8_t __a, int8x16_t __b, mve_pred16_t __p) -{ - return __arm_vminvq_p_s8 (__a, __b, __p); -} - -__extension__ extern __inline int8_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p (int8_t __a, int8x16_t __b, mve_pred16_t __p) -{ - return __arm_vmaxvq_p_s8 (__a, __b, __p); -} - __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m (int8x16_t __inactive, int8_t __a, mve_pred16_t __p) @@ -14725,20 +14261,6 @@ __arm_vmladavaq (uint32_t __a, uint16x8_t __b, uint16x8_t __c) return __arm_vmladavaq_u16 (__a, __b, __c); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p (uint16_t __a, uint16x8_t __b, mve_pred16_t __p) -{ - return __arm_vminvq_p_u16 (__a, __b, __p); -} - -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p (uint16_t __a, uint16x8_t __b, mve_pred16_t __p) -{ - return __arm_vmaxvq_p_u16 (__a, __b, __p); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m (uint16x8_t __inactive, uint16_t __a, mve_pred16_t __p) @@ -14823,13 +14345,6 @@ __arm_vsliq (uint16x8_t __a, uint16x8_t __b, const int __imm) return __arm_vsliq_n_u16 (__a, __b, __imm); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_p (uint16_t __a, int16x8_t __b, mve_pred16_t __p) -{ - return __arm_vminavq_p_s16 (__a, __b, __p); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_m (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p) @@ -14837,13 +14352,6 @@ __arm_vminaq_m (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p) return __arm_vminaq_m_s16 (__a, __b, __p); } -__extension__ extern __inline uint16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_p (uint16_t __a, int16x8_t __b, mve_pred16_t __p) -{ - return __arm_vmaxavq_p_s16 (__a, __b, __p); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_m (uint16x8_t __a, int16x8_t __b, mve_pred16_t __p) @@ -14977,20 +14485,6 @@ __arm_vmladavq_p (int16x8_t __a, int16x8_t __b, mve_pred16_t __p) return __arm_vmladavq_p_s16 (__a, __b, __p); } -__extension__ extern __inline int16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p (int16_t __a, int16x8_t __b, mve_pred16_t __p) -{ - return __arm_vminvq_p_s16 (__a, __b, __p); -} - -__extension__ extern __inline int16_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p (int16_t __a, int16x8_t __b, mve_pred16_t __p) -{ - return __arm_vmaxvq_p_s16 (__a, __b, __p); -} - __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m (int16x8_t __inactive, int16_t __a, mve_pred16_t __p) @@ -15201,20 +14695,6 @@ __arm_vmladavaq (uint32_t __a, uint32x4_t __b, uint32x4_t __c) return __arm_vmladavaq_u32 (__a, __b, __c); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p (uint32_t __a, uint32x4_t __b, mve_pred16_t __p) -{ - return __arm_vminvq_p_u32 (__a, __b, __p); -} - -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p (uint32_t __a, uint32x4_t __b, mve_pred16_t __p) -{ - return __arm_vmaxvq_p_u32 (__a, __b, __p); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m (uint32x4_t __inactive, uint32_t __a, mve_pred16_t __p) @@ -15299,13 +14779,6 @@ __arm_vsliq (uint32x4_t __a, uint32x4_t __b, const int __imm) return __arm_vsliq_n_u32 (__a, __b, __imm); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminavq_p (uint32_t __a, int32x4_t __b, mve_pred16_t __p) -{ - return __arm_vminavq_p_s32 (__a, __b, __p); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vminaq_m (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p) @@ -15313,13 +14786,6 @@ __arm_vminaq_m (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p) return __arm_vminaq_m_s32 (__a, __b, __p); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxavq_p (uint32_t __a, int32x4_t __b, mve_pred16_t __p) -{ - return __arm_vmaxavq_p_s32 (__a, __b, __p); -} - __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmaxaq_m (uint32x4_t __a, int32x4_t __b, mve_pred16_t __p) @@ -15453,20 +14919,6 @@ __arm_vmladavq_p (int32x4_t __a, int32x4_t __b, mve_pred16_t __p) return __arm_vmladavq_p_s32 (__a, __b, __p); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vminvq_p (int32_t __a, int32x4_t __b, mve_pred16_t __p) -{ - return __arm_vminvq_p_s32 (__a, __b, __p); -} - -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vmaxvq_p (int32_t __a, int32x4_t __b, mve_pred16_t __p) -{ - return __arm_vmaxvq_p_s32 (__a, __b, __p); -} - __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vdupq_m (int32x4_t __inactive, int32_t __a, mve_pred16_t __p) @@ -25181,74 +24633,6 @@ extern void *__ARM_undef; int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: __arm_vcmphiq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), p2), \ int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: __arm_vcmphiq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), p2));}) -#define __arm_vmaxavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \ - __typeof(p1) __p1 = (p1); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vmaxavq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vmaxavq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vmaxavq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t)));}) - -#define __arm_vmaxavq_p(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_int_n][__ARM_mve_type_int8x16_t]: __arm_vmaxavq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vmaxavq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vmaxavq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2));}) - -#define __arm_vmaxvq(p0,p1) ({ __typeof(p0) __p0 = (p0); \ - __typeof(p1) __p1 = (p1); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vmaxvq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vmaxvq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vmaxvq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vmaxvq_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vmaxvq_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vmaxvq_u32 (__p0,__ARM_mve_coerce(__p1, uint32x4_t)));}) - -#define __arm_vmaxvq_p(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_int_n][__ARM_mve_type_int8x16_t]: __arm_vmaxvq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vmaxvq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vmaxvq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vmaxvq_p_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vmaxvq_p_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vmaxvq_p_u32 (__p0, __ARM_mve_coerce(__p1, uint32x4_t), p2));}) - -#define __arm_vminavq(p0,p1) ({ __typeof(p0) __p0 = (p0); \ - __typeof(p1) __p1 = (p1); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vminavq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vminavq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vminavq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t)));}) - -#define __arm_vminavq_p(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_int_n][__ARM_mve_type_int8x16_t]: __arm_vminavq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vminavq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vminavq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2));}) - -#define __arm_vminvq(p0,p1) ({ __typeof(p0) __p0 = (p0); \ - __typeof(p1) __p1 = (p1); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int8x16_t]: __arm_vminvq_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vminvq_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vminvq_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vminvq_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vminvq_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t)), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vminvq_u32 (__p0, __ARM_mve_coerce(__p1, uint32x4_t)));}) - -#define __arm_vminvq_p(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_int_n][__ARM_mve_type_int8x16_t]: __arm_vminvq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: __arm_vminvq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: __arm_vminvq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint8x16_t]: __arm_vminvq_p_u8 (__p0, __ARM_mve_coerce(__p1, uint8x16_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vminvq_p_u16 (__p0, __ARM_mve_coerce(__p1, uint16x8_t), p2), \ - int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vminvq_p_u32 (__p0, __ARM_mve_coerce(__p1, uint32x4_t), p2));}) - #define __arm_vmladavaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ __typeof(p1) __p1 = (p1); \ __typeof(p2) __p2 = (p2); \ -- 2.34.1