With gcc-patches on too. Not sure why the reply-all function fails for your address.... Kyrill
> -----Original Message----- > From: Kyrylo Tkachov > Sent: 06 October 2020 17:13 > To: Christophe Lyon <christophe.l...@linaro.org> > Subject: RE: [PATCH v2] arm: [MVE] Remove illegal intrinsics > > > > > -----Original Message----- > > From: Gcc-patches <gcc-patches-boun...@gcc.gnu.org> On Behalf Of > > Christophe Lyon via Gcc-patches > > Sent: 06 October 2020 16:59 > > To: gcc-patches@gcc.gnu.org > > Subject: [PATCH v2] arm: [MVE] Remove illegal intrinsics > > > > A few MVE intrinsics had an unsigned variant implement while they are > > supported by the hardware. This patch removes them: > > __arm_vqrdmlashq_n_u8 > > __arm_vqrdmlahq_n_u8 > > __arm_vqdmlahq_n_u8 > > __arm_vqrdmlashq_n_u16 > > __arm_vqrdmlahq_n_u16 > > __arm_vqdmlahq_n_u16 > > __arm_vqrdmlashq_n_u32 > > __arm_vqrdmlahq_n_u32 > > __arm_vqdmlahq_n_u32 > > __arm_vmlaldavaxq_p_u32 > > __arm_vmlaldavaxq_p_u16 > > > > v2: rebased after Srinath's reorganization patch > > Ok. > Thanks, > Kyrill > > > > > 2020-10-06 Christophe Lyon <christophe.l...@linaro.org> > > > > gcc/ > > PR target/96914 > > * config/arm/arm_mve.h (vqrdmlashq_n_u8, vqrdmlashq_n_u16) > > (vqrdmlashq_n_u32, vqrdmlahq_n_u8, vqrdmlahq_n_u16) > > (vqrdmlahq_n_u32, vqdmlahq_n_u8, vqdmlahq_n_u16, > > vqdmlahq_n_u32) > > (vmlaldavaxq_p_u16, vmlaldavaxq_p_u32): Remove. > > * config/arm/arm_mve_builtins.def (vqrdmlashq_n_u, > > vqrdmlahq_n_u) > > (vqdmlahq_n_u, vmlaldavaxq_p_u): Remove. > > * config/arm/unspecs.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U) > > (VQRDMLASHQ_N_U) > > (VMLALDAVAXQ_P_U): Remove unspecs. > > * config/arm/iterators.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U) > > (VQRDMLASHQ_N_U, VMLALDAVAXQ_P_U): Remove attributes. > > (VQDMLAHQ_N, VQRDMLAHQ_N, VQRDMLASHQ_N, > > VMLALDAVAXQ_P): Remove > > unsigned variants from iterators. > > * config/arm/mve.md (mve_vqdmlahq_n_<supf><mode>) > > (mve_vqrdmlahq_n_<supf><mode>) > > (mve_vqrdmlashq_n_<supf><mode>, > > mve_vmlaldavaxq_p_<supf><mode>): > > Update comment. > > > > gcc/testsuite/ > > PR target/96914 > > * gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u16.c: Remove. > > * gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u32.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqdmlahq_n_u16.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqdmlahq_n_u32.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqdmlahq_n_u8.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u16.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u32.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u8.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u16.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u32.c: Remove. > > * gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u8.c: Remove. > > --- > > gcc/config/arm/arm_mve.h | 199 > > +-------------------- > > gcc/config/arm/arm_mve_builtins.def | 4 - > > gcc/config/arm/iterators.md | 16 +- > > gcc/config/arm/mve.md | 8 +- > > gcc/config/arm/unspecs.md | 4 - > > .../arm/mve/intrinsics/vmlaldavaxq_p_u16.c | 21 --- > > .../arm/mve/intrinsics/vmlaldavaxq_p_u32.c | 21 --- > > .../gcc.target/arm/mve/intrinsics/vqdmlahq_n_u16.c | 21 --- > > .../gcc.target/arm/mve/intrinsics/vqdmlahq_n_u32.c | 21 --- > > .../gcc.target/arm/mve/intrinsics/vqdmlahq_n_u8.c | 21 --- > > .../arm/mve/intrinsics/vqrdmlahq_n_u16.c | 21 --- > > .../arm/mve/intrinsics/vqrdmlahq_n_u32.c | 21 --- > > .../gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u8.c | 21 --- > > .../arm/mve/intrinsics/vqrdmlashq_n_u16.c | 21 --- > > .../arm/mve/intrinsics/vqrdmlashq_n_u32.c | 21 --- > > .../arm/mve/intrinsics/vqrdmlashq_n_u8.c | 21 --- > > 16 files changed, 19 insertions(+), 443 deletions(-) > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u16.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u32.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u16.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u32.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u8.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u16.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u32.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u8.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u16.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u32.c > > delete mode 100644 > > gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u8.c > > > > diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h > > index 7626ad1..ccdac67 100644 > > --- a/gcc/config/arm/arm_mve.h > > +++ b/gcc/config/arm/arm_mve.h > > @@ -1237,9 +1237,6 @@ > > #define vpselq_u8(__a, __b, __p) __arm_vpselq_u8(__a, __b, __p) > > #define vpselq_s8(__a, __b, __p) __arm_vpselq_s8(__a, __b, __p) > > #define vrev64q_m_u8(__inactive, __a, __p) > > __arm_vrev64q_m_u8(__inactive, __a, __p) > > -#define vqrdmlashq_n_u8(__a, __b, __c) __arm_vqrdmlashq_n_u8(__a, > __b, > > __c) > > -#define vqrdmlahq_n_u8(__a, __b, __c) __arm_vqrdmlahq_n_u8(__a, __b, > > __c) > > -#define vqdmlahq_n_u8(__a, __b, __c) __arm_vqdmlahq_n_u8(__a, __b, > > __c) > > #define vmvnq_m_u8(__inactive, __a, __p) > __arm_vmvnq_m_u8(__inactive, > > __a, __p) > > #define vmlasq_n_u8(__a, __b, __c) __arm_vmlasq_n_u8(__a, __b, __c) > > #define vmlaq_n_u8(__a, __b, __c) __arm_vmlaq_n_u8(__a, __b, __c) > > @@ -1323,9 +1320,6 @@ > > #define vpselq_u16(__a, __b, __p) __arm_vpselq_u16(__a, __b, __p) > > #define vpselq_s16(__a, __b, __p) __arm_vpselq_s16(__a, __b, __p) > > #define vrev64q_m_u16(__inactive, __a, __p) > > __arm_vrev64q_m_u16(__inactive, __a, __p) > > -#define vqrdmlashq_n_u16(__a, __b, __c) __arm_vqrdmlashq_n_u16(__a, > > __b, __c) > > -#define vqrdmlahq_n_u16(__a, __b, __c) __arm_vqrdmlahq_n_u16(__a, > __b, > > __c) > > -#define vqdmlahq_n_u16(__a, __b, __c) __arm_vqdmlahq_n_u16(__a, > __b, > > __c) > > #define vmvnq_m_u16(__inactive, __a, __p) > > __arm_vmvnq_m_u16(__inactive, __a, __p) > > #define vmlasq_n_u16(__a, __b, __c) __arm_vmlasq_n_u16(__a, __b, __c) > > #define vmlaq_n_u16(__a, __b, __c) __arm_vmlaq_n_u16(__a, __b, __c) > > @@ -1409,9 +1403,6 @@ > > #define vpselq_u32(__a, __b, __p) __arm_vpselq_u32(__a, __b, __p) > > #define vpselq_s32(__a, __b, __p) __arm_vpselq_s32(__a, __b, __p) > > #define vrev64q_m_u32(__inactive, __a, __p) > > __arm_vrev64q_m_u32(__inactive, __a, __p) > > -#define vqrdmlashq_n_u32(__a, __b, __c) __arm_vqrdmlashq_n_u32(__a, > > __b, __c) > > -#define vqrdmlahq_n_u32(__a, __b, __c) __arm_vqrdmlahq_n_u32(__a, > __b, > > __c) > > -#define vqdmlahq_n_u32(__a, __b, __c) __arm_vqdmlahq_n_u32(__a, > __b, > > __c) > > #define vmvnq_m_u32(__inactive, __a, __p) > > __arm_vmvnq_m_u32(__inactive, __a, __p) > > #define vmlasq_n_u32(__a, __b, __c) __arm_vmlasq_n_u32(__a, __b, __c) > > #define vmlaq_n_u32(__a, __b, __c) __arm_vmlaq_n_u32(__a, __b, __c) > > @@ -2033,8 +2024,6 @@ > > #define vmlaldavaq_p_u16(__a, __b, __c, __p) > > __arm_vmlaldavaq_p_u16(__a, __b, __c, __p) > > #define vmlaldavaxq_p_s32(__a, __b, __c, __p) > > __arm_vmlaldavaxq_p_s32(__a, __b, __c, __p) > > #define vmlaldavaxq_p_s16(__a, __b, __c, __p) > > __arm_vmlaldavaxq_p_s16(__a, __b, __c, __p) > > -#define vmlaldavaxq_p_u32(__a, __b, __c, __p) > > __arm_vmlaldavaxq_p_u32(__a, __b, __c, __p) > > -#define vmlaldavaxq_p_u16(__a, __b, __c, __p) > > __arm_vmlaldavaxq_p_u16(__a, __b, __c, __p) > > #define vmlsldavaq_p_s32(__a, __b, __c, __p) > > __arm_vmlsldavaq_p_s32(__a, __b, __c, __p) > > #define vmlsldavaq_p_s16(__a, __b, __c, __p) > > __arm_vmlsldavaq_p_s16(__a, __b, __c, __p) > > #define vmlsldavaxq_p_s32(__a, __b, __c, __p) > > __arm_vmlsldavaxq_p_s32(__a, __b, __c, __p) > > @@ -6970,27 +6959,6 @@ __arm_vrev64q_m_u8 (uint8x16_t __inactive, > > uint8x16_t __a, mve_pred16_t __p) > > > > __extension__ extern __inline uint8x16_t > > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlashq_n_u8 (uint8x16_t __a, uint8x16_t __b, uint8_t __c) > > -{ > > - return __builtin_mve_vqrdmlashq_n_uv16qi (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint8x16_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlahq_n_u8 (uint8x16_t __a, uint8x16_t __b, uint8_t __c) > > -{ > > - return __builtin_mve_vqrdmlahq_n_uv16qi (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint8x16_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqdmlahq_n_u8 (uint8x16_t __a, uint8x16_t __b, uint8_t __c) > > -{ > > - return __builtin_mve_vqdmlahq_n_uv16qi (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint8x16_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > __arm_vmvnq_m_u8 (uint8x16_t __inactive, uint8x16_t __a, > mve_pred16_t > > __p) > > { > > return __builtin_mve_vmvnq_m_uv16qi (__inactive, __a, __p); > > @@ -7573,27 +7541,6 @@ __arm_vrev64q_m_u16 (uint16x8_t __inactive, > > uint16x8_t __a, mve_pred16_t __p) > > > > __extension__ extern __inline uint16x8_t > > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlashq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c) > > -{ > > - return __builtin_mve_vqrdmlashq_n_uv8hi (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint16x8_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlahq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c) > > -{ > > - return __builtin_mve_vqrdmlahq_n_uv8hi (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint16x8_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqdmlahq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c) > > -{ > > - return __builtin_mve_vqdmlahq_n_uv8hi (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint16x8_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > __arm_vmvnq_m_u16 (uint16x8_t __inactive, uint16x8_t __a, > > mve_pred16_t __p) > > { > > return __builtin_mve_vmvnq_m_uv8hi (__inactive, __a, __p); > > @@ -8175,27 +8122,6 @@ __arm_vrev64q_m_u32 (uint32x4_t __inactive, > > uint32x4_t __a, mve_pred16_t __p) > > > > __extension__ extern __inline uint32x4_t > > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlashq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c) > > -{ > > - return __builtin_mve_vqrdmlashq_n_uv4si (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint32x4_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlahq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c) > > -{ > > - return __builtin_mve_vqrdmlahq_n_uv4si (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint32x4_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqdmlahq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c) > > -{ > > - return __builtin_mve_vqdmlahq_n_uv4si (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint32x4_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > __arm_vmvnq_m_u32 (uint32x4_t __inactive, uint32x4_t __a, > > mve_pred16_t __p) > > { > > return __builtin_mve_vmvnq_m_uv4si (__inactive, __a, __p); > > @@ -11862,20 +11788,6 @@ __arm_vmlaldavaxq_p_s16 (int64_t __a, > > int16x8_t __b, int16x8_t __c, mve_pred16_t > > return __builtin_mve_vmlaldavaxq_p_sv8hi (__a, __b, __c, __p); > > } > > > > -__extension__ extern __inline uint64_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vmlaldavaxq_p_u32 (uint64_t __a, uint32x4_t __b, uint32x4_t __c, > > mve_pred16_t __p) > > -{ > > - return __builtin_mve_vmlaldavaxq_p_uv4si (__a, __b, __c, __p); > > -} > > - > > -__extension__ extern __inline uint64_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vmlaldavaxq_p_u16 (uint64_t __a, uint16x8_t __b, uint16x8_t __c, > > mve_pred16_t __p) > > -{ > > - return __builtin_mve_vmlaldavaxq_p_uv8hi (__a, __b, __c, __p); > > -} > > - > > __extension__ extern __inline int64_t > > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > __arm_vmlsldavaq_p_s32 (int64_t __a, int32x4_t __b, int32x4_t __c, > > mve_pred16_t __p) > > @@ -23800,27 +23712,6 @@ __arm_vrev64q_m (uint8x16_t __inactive, > > uint8x16_t __a, mve_pred16_t __p) > > > > __extension__ extern __inline uint8x16_t > > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlashq (uint8x16_t __a, uint8x16_t __b, uint8_t __c) > > -{ > > - return __arm_vqrdmlashq_n_u8 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint8x16_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlahq (uint8x16_t __a, uint8x16_t __b, uint8_t __c) > > -{ > > - return __arm_vqrdmlahq_n_u8 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint8x16_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqdmlahq (uint8x16_t __a, uint8x16_t __b, uint8_t __c) > > -{ > > - return __arm_vqdmlahq_n_u8 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint8x16_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > __arm_vmvnq_m (uint8x16_t __inactive, uint8x16_t __a, mve_pred16_t > __p) > > { > > return __arm_vmvnq_m_u8 (__inactive, __a, __p); > > @@ -24402,27 +24293,6 @@ __arm_vrev64q_m (uint16x8_t __inactive, > > uint16x8_t __a, mve_pred16_t __p) > > > > __extension__ extern __inline uint16x8_t > > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlashq (uint16x8_t __a, uint16x8_t __b, uint16_t __c) > > -{ > > - return __arm_vqrdmlashq_n_u16 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint16x8_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlahq (uint16x8_t __a, uint16x8_t __b, uint16_t __c) > > -{ > > - return __arm_vqrdmlahq_n_u16 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint16x8_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqdmlahq (uint16x8_t __a, uint16x8_t __b, uint16_t __c) > > -{ > > - return __arm_vqdmlahq_n_u16 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint16x8_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > __arm_vmvnq_m (uint16x8_t __inactive, uint16x8_t __a, mve_pred16_t > __p) > > { > > return __arm_vmvnq_m_u16 (__inactive, __a, __p); > > @@ -25004,27 +24874,6 @@ __arm_vrev64q_m (uint32x4_t __inactive, > > uint32x4_t __a, mve_pred16_t __p) > > > > __extension__ extern __inline uint32x4_t > > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlashq (uint32x4_t __a, uint32x4_t __b, uint32_t __c) > > -{ > > - return __arm_vqrdmlashq_n_u32 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint32x4_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqrdmlahq (uint32x4_t __a, uint32x4_t __b, uint32_t __c) > > -{ > > - return __arm_vqrdmlahq_n_u32 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint32x4_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vqdmlahq (uint32x4_t __a, uint32x4_t __b, uint32_t __c) > > -{ > > - return __arm_vqdmlahq_n_u32 (__a, __b, __c); > > -} > > - > > -__extension__ extern __inline uint32x4_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > __arm_vmvnq_m (uint32x4_t __inactive, uint32x4_t __a, mve_pred16_t > __p) > > { > > return __arm_vmvnq_m_u32 (__inactive, __a, __p); > > @@ -28691,20 +28540,6 @@ __arm_vmlaldavaxq_p (int64_t __a, > int16x8_t > > __b, int16x8_t __c, mve_pred16_t __p > > return __arm_vmlaldavaxq_p_s16 (__a, __b, __c, __p); > > } > > > > -__extension__ extern __inline uint64_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vmlaldavaxq_p (uint64_t __a, uint32x4_t __b, uint32x4_t __c, > > mve_pred16_t __p) > > -{ > > - return __arm_vmlaldavaxq_p_u32 (__a, __b, __c, __p); > > -} > > - > > -__extension__ extern __inline uint64_t > > -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > -__arm_vmlaldavaxq_p (uint64_t __a, uint16x8_t __b, uint16x8_t __c, > > mve_pred16_t __p) > > -{ > > - return __arm_vmlaldavaxq_p_u16 (__a, __b, __c, __p); > > -} > > - > > __extension__ extern __inline int64_t > > __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) > > __arm_vmlsldavaq_p (int64_t __a, int32x4_t __b, int32x4_t __c, > > mve_pred16_t __p) > > @@ -36885,10 +36720,7 @@ extern void *__ARM_undef; > > _Generic( (int > > > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > > eid(__p2)])0, \ > > int > > > (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlashq_n_s8 (__ARM_mve_coerce(__p0, > > int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, > > int8_t)), \ > > int > > > (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlashq_n_s16 (__ARM_mve_coerce(__p0, > > int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, > > int16_t)), \ > > - int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlashq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)), \ > > - int > > > (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlashq_n_u8 (__ARM_mve_coerce(__p0, > > uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), > > __ARM_mve_coerce(__p2, uint8_t)), \ > > - int > > > (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlashq_n_u16 (__ARM_mve_coerce(__p0, > > uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), > > __ARM_mve_coerce(__p2, uint16_t)), \ > > - int > > > (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlashq_n_u32 (__ARM_mve_coerce(__p0, > > uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), > > __ARM_mve_coerce(__p2, uint32_t)));}) > > + int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlashq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)));}) > > > > #define __arm_vqdmlashq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ > > __typeof(p1) __p1 = (p1); \ > > @@ -36904,10 +36736,7 @@ extern void *__ARM_undef; > > _Generic( (int > > > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > > eid(__p2)])0, \ > > int > > > (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlahq_n_s8 (__ARM_mve_coerce(__p0, > > int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, > > int8_t)), \ > > int > > > (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlahq_n_s16 (__ARM_mve_coerce(__p0, > > int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, > > int16_t)), \ > > - int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlahq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)), \ > > - int > > > (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlahq_n_u8 (__ARM_mve_coerce(__p0, > > uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), > > __ARM_mve_coerce(__p2, uint8_t)), \ > > - int > > > (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlahq_n_u16 (__ARM_mve_coerce(__p0, > > uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), > > __ARM_mve_coerce(__p2, uint16_t)), \ > > - int > > > (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlahq_n_u32 (__ARM_mve_coerce(__p0, > > uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), > > __ARM_mve_coerce(__p2, uint32_t)));}) > > + int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlahq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)));}) > > > > #define __arm_vmlasq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ > > __typeof(p1) __p1 = (p1); \ > > @@ -36926,10 +36755,7 @@ extern void *__ARM_undef; > > _Generic( (int > > > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > > eid(__p2)])0, \ > > int > > > (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mv > > e_type_int_n]: __arm_vqdmlahq_n_s8 (__ARM_mve_coerce(__p0, > > int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, > > int8_t)), \ > > int > > > (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mv > > e_type_int_n]: __arm_vqdmlahq_n_s16 (__ARM_mve_coerce(__p0, > > int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, > > int16_t)), \ > > - int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqdmlahq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)), \ > > - int > > > (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_ > > mve_type_int_n]: __arm_vqdmlahq_n_u8 (__ARM_mve_coerce(__p0, > > uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), > > __ARM_mve_coerce(__p2, uint8_t)), \ > > - int > > > (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_ > > mve_type_int_n]: __arm_vqdmlahq_n_u16 (__ARM_mve_coerce(__p0, > > uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), > > __ARM_mve_coerce(__p2, uint16_t)), \ > > - int > > > (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_ > > mve_type_int_n]: __arm_vqdmlahq_n_u32 (__ARM_mve_coerce(__p0, > > uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), > > __ARM_mve_coerce(__p2, uint32_t)));}) > > + int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqdmlahq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)));}) > > > > #define __arm_vqrdmladhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ > > __typeof(p1) __p1 = (p1); \ > > @@ -39365,10 +39191,7 @@ extern void *__ARM_undef; > > _Generic( (int > > > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > > eid(__p2)])0, \ > > int > > > (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlashq_n_s8 (__ARM_mve_coerce(__p0, > > int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, > > int8_t)), \ > > int > > > (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlashq_n_s16 (__ARM_mve_coerce(__p0, > > int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, > > int16_t)), \ > > - int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlashq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)), \ > > - int > > > (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlashq_n_u8 (__ARM_mve_coerce(__p0, > > uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), > > __ARM_mve_coerce(__p2, uint8_t)), \ > > - int > > > (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlashq_n_u16 (__ARM_mve_coerce(__p0, > > uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), > > __ARM_mve_coerce(__p2, uint16_t)), \ > > - int > > > (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlashq_n_u32 (__ARM_mve_coerce(__p0, > > uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), > > __ARM_mve_coerce(__p2, uint32_t)));}) > > + int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlashq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)));}) > > > > #define __arm_vqdmlashq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ > > __typeof(p1) __p1 = (p1); \ > > @@ -39384,10 +39207,7 @@ extern void *__ARM_undef; > > _Generic( (int > > > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > > eid(__p2)])0, \ > > int > > > (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlahq_n_s8 (__ARM_mve_coerce(__p0, > > int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, > > int8_t)), \ > > int > > > (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlahq_n_s16 (__ARM_mve_coerce(__p0, > > int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, > > int16_t)), \ > > - int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlahq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)), \ > > - int > > > (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlahq_n_u8 (__ARM_mve_coerce(__p0, > > uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), > > __ARM_mve_coerce(__p2, uint8_t)), \ > > - int > > > (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlahq_n_u16 (__ARM_mve_coerce(__p0, > > uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), > > __ARM_mve_coerce(__p2, uint16_t)), \ > > - int > > > (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_ > > mve_type_int_n]: __arm_vqrdmlahq_n_u32 (__ARM_mve_coerce(__p0, > > uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), > > __ARM_mve_coerce(__p2, uint32_t)));}) > > + int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqrdmlahq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)));}) > > > > #define __arm_vqrdmladhxq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ > > __typeof(p1) __p1 = (p1); \ > > @@ -39518,10 +39338,7 @@ extern void *__ARM_undef; > > _Generic( (int > > > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > > eid(__p2)])0, \ > > int > > > (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t][__ARM_mv > > e_type_int_n]: __arm_vqdmlahq_n_s8 (__ARM_mve_coerce(__p0, > > int8x16_t), __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, > > int8_t)), \ > > int > > > (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mv > > e_type_int_n]: __arm_vqdmlahq_n_s16 (__ARM_mve_coerce(__p0, > > int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, > > int16_t)), \ > > - int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqdmlahq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)), \ > > - int > > > (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t][__ARM_ > > mve_type_int_n]: __arm_vqdmlahq_n_u8 (__ARM_mve_coerce(__p0, > > uint8x16_t), __ARM_mve_coerce(__p1, uint8x16_t), > > __ARM_mve_coerce(__p2, uint8_t)), \ > > - int > > > (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_ > > mve_type_int_n]: __arm_vqdmlahq_n_u16 (__ARM_mve_coerce(__p0, > > uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), > > __ARM_mve_coerce(__p2, uint16_t)), \ > > - int > > > (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_ > > mve_type_int_n]: __arm_vqdmlahq_n_u32 (__ARM_mve_coerce(__p0, > > uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), > > __ARM_mve_coerce(__p2, uint32_t)));}) > > + int > > > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mv > > e_type_int_n]: __arm_vqdmlahq_n_s32 (__ARM_mve_coerce(__p0, > > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, > > int32_t)));}) > > > > #define __arm_vqdmlsdhq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ > > __typeof(p1) __p1 = (p1); \ > > @@ -41184,9 +41001,7 @@ extern void *__ARM_undef; > > __typeof(p2) __p2 = (p2); \ > > _Generic( (int > > > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > > eid(__p2)])0, \ > > int > > > (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t][__ARM_mve_ty > > pe_int16x8_t]: __arm_vmlaldavaxq_p_s16 (__ARM_mve_coerce(__p0, > > int64_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, > > int16x8_t), p3), \ > > - int > > > (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_ty > > pe_int32x4_t]: __arm_vmlaldavaxq_p_s32 (__ARM_mve_coerce(__p0, > > int64_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, > > int32x4_t), p3), \ > > - int > > > (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t][__ARM_mve_t > > ype_uint16x8_t]: __arm_vmlaldavaxq_p_u16 (__ARM_mve_coerce(__p0, > > uint64_t), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, > > uint16x8_t), p3), \ > > - int > > > (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_t > > ype_uint32x4_t]: __arm_vmlaldavaxq_p_u32 (__ARM_mve_coerce(__p0, > > uint64_t), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, > > uint32x4_t), p3));}) > > + int > > > (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_ty > > pe_int32x4_t]: __arm_vmlaldavaxq_p_s32 (__ARM_mve_coerce(__p0, > > int64_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, > > int32x4_t), p3));}) > > > > #define __arm_vmlsldavaq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 = (p0); \ > > __typeof(p1) __p1 = (p1); \ > > diff --git a/gcc/config/arm/arm_mve_builtins.def > > b/gcc/config/arm/arm_mve_builtins.def > > index 9f3ecfe..ac92818 100644 > > --- a/gcc/config/arm/arm_mve_builtins.def > > +++ b/gcc/config/arm/arm_mve_builtins.def > > @@ -312,9 +312,6 @@ VAR3 (TERNOP_NONE_NONE_UNONE_IMM, > > vshlcq_vec_s, v16qi, v8hi, v4si) > > VAR4 (TERNOP_UNONE_UNONE_UNONE_UNONE, vpselq_u, v16qi, v8hi, > > v4si, v2di) > > VAR4 (TERNOP_NONE_NONE_NONE_UNONE, vpselq_s, v16qi, v8hi, v4si, > > v2di) > > VAR3 (TERNOP_UNONE_UNONE_UNONE_UNONE, vrev64q_m_u, v16qi, > > v8hi, v4si) > > -VAR3 (TERNOP_UNONE_UNONE_UNONE_UNONE, vqrdmlashq_n_u, > v16qi, > > v8hi, v4si) > > -VAR3 (TERNOP_UNONE_UNONE_UNONE_UNONE, vqrdmlahq_n_u, v16qi, > > v8hi, v4si) > > -VAR3 (TERNOP_UNONE_UNONE_UNONE_UNONE, vqdmlahq_n_u, v16qi, > > v8hi, v4si) > > VAR3 (TERNOP_UNONE_UNONE_UNONE_UNONE, vmvnq_m_u, v16qi, > v8hi, > > v4si) > > VAR3 (TERNOP_UNONE_UNONE_UNONE_UNONE, vmlasq_n_u, v16qi, > v8hi, > > v4si) > > VAR3 (TERNOP_UNONE_UNONE_UNONE_UNONE, vmlaq_n_u, v16qi, > v8hi, > > v4si) > > @@ -617,7 +614,6 @@ VAR3 > (QUADOP_NONE_NONE_NONE_IMM_UNONE, > > vrshrq_m_n_s, v16qi, v8hi, v4si) > > VAR3 (QUADOP_NONE_NONE_NONE_IMM_UNONE, vqshlq_m_n_s, v16qi, > > v8hi, v4si) > > VAR2 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE, > > vmulltq_poly_m_p, v16qi, v8hi) > > VAR2 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE, > > vmullbq_poly_m_p, v16qi, v8hi) > > -VAR2 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE, > > vmlaldavaxq_p_u, v8hi, v4si) > > VAR2 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE, > > vmlaldavaq_p_u, v8hi, v4si) > > VAR2 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE, vshrntq_m_n_u, > > v8hi, v4si) > > VAR2 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE, > vshrnbq_m_n_u, > > v8hi, v4si) > > diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md > > index 0dbf1b2..f934872 100644 > > --- a/gcc/config/arm/iterators.md > > +++ b/gcc/config/arm/iterators.md > > @@ -1284,10 +1284,10 @@ (define_int_attr supf [(VCVTQ_TO_F_S "s") > > (VCVTQ_TO_F_U "u") (VREV16Q_S "s") > > (VMLADAVQ_P_S "s") (VMLADAVQ_P_U "u") > > (VMLAQ_N_S "s") > > (VMLAQ_N_U "u") (VMLASQ_N_S "s") (VMLASQ_N_U "u") > > (VMVNQ_M_S "s") (VMVNQ_M_U "u") (VPSELQ_S "s") > > - (VPSELQ_U "u") (VQDMLAHQ_N_S "s") > > (VQDMLAHQ_N_U "u") > > + (VPSELQ_U "u") (VQDMLAHQ_N_S "s") > > (VQDMLASHQ_N_S "s") > > - (VQRDMLAHQ_N_S "s") (VQRDMLAHQ_N_U "u") > > - (VQRDMLASHQ_N_S "s") (VQRDMLASHQ_N_U "u") > > + (VQRDMLAHQ_N_S "s") > > + (VQRDMLASHQ_N_S "s") > > (VQRSHLQ_M_N_S "s") (VQRSHLQ_M_N_U "u") > > (VQSHLQ_M_R_S "s") (VQSHLQ_M_R_U "u") (VSRIQ_N_S > > "s") > > (VREV64Q_M_S "s") (VREV64Q_M_U "u") (VSRIQ_N_U > > "u") > > @@ -1360,7 +1360,7 @@ (define_int_attr supf [(VCVTQ_TO_F_S "s") > > (VCVTQ_TO_F_U "u") (VREV16Q_S "s") > > (VQSHRNBQ_M_N_S "s") (VQSHRNBQ_M_N_U "u") > > (VQRSHRNTQ_M_N_S "s") (VQRSHRNTQ_M_N_U "u") > > (VQRSHRNBQ_M_N_S "s") (VQRSHRNBQ_M_N_U "u") > > - (VMLALDAVAXQ_P_S "s") (VMLALDAVAXQ_P_U "u") > > + (VMLALDAVAXQ_P_S "s") > > (VMLALDAVAQ_P_S "s") (VMLALDAVAQ_P_U "u") > > (VSTRWQSB_S "s") (VSTRWQSB_U "u") (VSTRBQSO_S "s") > > (VSTRBQSO_U "u") (VSTRBQ_S "s") (VSTRBQ_U "u") > > @@ -1578,10 +1578,10 @@ (define_int_iterator VMLAQ_N [VMLAQ_N_S > > VMLAQ_N_U]) > > (define_int_iterator VMLASQ_N [VMLASQ_N_S VMLASQ_N_U]) > > (define_int_iterator VMVNQ_M [VMVNQ_M_S VMVNQ_M_U]) > > (define_int_iterator VPSELQ [VPSELQ_S VPSELQ_U]) > > -(define_int_iterator VQDMLAHQ_N [VQDMLAHQ_N_S VQDMLAHQ_N_U]) > > +(define_int_iterator VQDMLAHQ_N [VQDMLAHQ_N_S]) > > (define_int_iterator VQDMLASHQ_N [VQDMLASHQ_N_S]) > > -(define_int_iterator VQRDMLAHQ_N [VQRDMLAHQ_N_S > > VQRDMLAHQ_N_U]) > > -(define_int_iterator VQRDMLASHQ_N [VQRDMLASHQ_N_S > > VQRDMLASHQ_N_U]) > > +(define_int_iterator VQRDMLAHQ_N [VQRDMLAHQ_N_S]) > > +(define_int_iterator VQRDMLASHQ_N [VQRDMLASHQ_N_S]) > > (define_int_iterator VQRSHLQ_M_N [VQRSHLQ_M_N_S > VQRSHLQ_M_N_U]) > > (define_int_iterator VQSHLQ_M_R [VQSHLQ_M_R_S VQSHLQ_M_R_U]) > > (define_int_iterator VREV64Q_M [VREV64Q_M_S VREV64Q_M_U]) > > @@ -1663,7 +1663,7 @@ (define_int_iterator VABDQ_M [VABDQ_M_S > > VABDQ_M_U]) > > (define_int_iterator VMLAQ_M_N [VMLAQ_M_N_S VMLAQ_M_N_U]) > > (define_int_iterator VQSHLQ_M_N [VQSHLQ_M_N_S VQSHLQ_M_N_U]) > > (define_int_iterator VMLALDAVAQ_P [VMLALDAVAQ_P_U > > VMLALDAVAQ_P_S]) > > -(define_int_iterator VMLALDAVAXQ_P [VMLALDAVAXQ_P_U > > VMLALDAVAXQ_P_S]) > > +(define_int_iterator VMLALDAVAXQ_P [VMLALDAVAXQ_P_S]) > > (define_int_iterator VQRSHRNBQ_M_N [VQRSHRNBQ_M_N_U > > VQRSHRNBQ_M_N_S]) > > (define_int_iterator VQRSHRNTQ_M_N [VQRSHRNTQ_M_N_S > > VQRSHRNTQ_M_N_U]) > > (define_int_iterator VQSHRNBQ_M_N [VQSHRNBQ_M_N_U > > VQSHRNBQ_M_N_S]) > > diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md > > index d406ab1..0d77601 100644 > > --- a/gcc/config/arm/mve.md > > +++ b/gcc/config/arm/mve.md > > @@ -3662,7 +3662,7 @@ (define_insn "mve_vqabsq_m_s<mode>" > > (set_attr "length""8")]) > > > > ;; > > -;; [vqdmlahq_n_s, vqdmlahq_n_u]) > > +;; [vqdmlahq_n_s]) > > ;; > > (define_insn "mve_vqdmlahq_n_<supf><mode>" > > [ > > @@ -3742,7 +3742,7 @@ (define_insn "mve_vqrdmladhxq_s<mode>" > > ]) > > > > ;; > > -;; [vqrdmlahq_n_s, vqrdmlahq_n_u]) > > +;; [vqrdmlahq_n_s]) > > ;; > > (define_insn "mve_vqrdmlahq_n_<supf><mode>" > > [ > > @@ -3758,7 +3758,7 @@ (define_insn > "mve_vqrdmlahq_n_<supf><mode>" > > ]) > > > > ;; > > -;; [vqrdmlashq_n_s, vqrdmlashq_n_u]) > > +;; [vqrdmlashq_n_s]) > > ;; > > (define_insn "mve_vqrdmlashq_n_<supf><mode>" > > [ > > @@ -6498,7 +6498,7 @@ (define_insn > "mve_vmlaldavaq_p_<supf><mode>" > > (set_attr "length""8")]) > > > > ;; > > -;; [vmlaldavaxq_p_u, vmlaldavaxq_p_s]) > > +;; [vmlaldavaxq_p_s]) > > ;; > > (define_insn "mve_vmlaldavaxq_p_<supf><mode>" > > [ > > diff --git a/gcc/config/arm/unspecs.md b/gcc/config/arm/unspecs.md > > index a98ac09..a3844e9 100644 > > --- a/gcc/config/arm/unspecs.md > > +++ b/gcc/config/arm/unspecs.md > > @@ -876,15 +876,12 @@ (define_c_enum "unspec" [ > > VPSELQ_U > > VQABSQ_M_S > > VQDMLAHQ_N_S > > - VQDMLAHQ_N_U > > VQDMLASHQ_N_S > > VQNEGQ_M_S > > VQRDMLADHQ_S > > VQRDMLADHXQ_S > > VQRDMLAHQ_N_S > > - VQRDMLAHQ_N_U > > VQRDMLASHQ_N_S > > - VQRDMLASHQ_N_U > > VQRDMLSDHQ_S > > VQRDMLSDHXQ_S > > VQRSHLQ_M_N_S > > @@ -1149,7 +1146,6 @@ (define_c_enum "unspec" [ > > VQDMLADHQ_M_S > > VMLALDAVAQ_P_U > > VMLALDAVAQ_P_S > > - VMLALDAVAXQ_P_U > > VQRSHRNBQ_M_N_U > > VQRSHRNBQ_M_N_S > > VQRSHRNTQ_M_N_S > > diff --git > > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u16.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u16.c > > deleted file mode 100644 > > index 704d0e7..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u16.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint64_t > > -foo (uint64_t a, uint16x8_t b, uint16x8_t c, mve_pred16_t p) > > -{ > > - return vmlaldavaxq_p_u16 (a, b, c, p); > > -} > > - > > -/* { dg-final { scan-assembler "vmlaldavaxt.u16" } } */ > > - > > -uint64_t > > -foo1 (uint64_t a, uint16x8_t b, uint16x8_t c, mve_pred16_t p) > > -{ > > - return vmlaldavaxq_p (a, b, c, p); > > -} > > - > > -/* { dg-final { scan-assembler "vmlaldavaxt.u16" } } */ > > diff --git > > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u32.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u32.c > > deleted file mode 100644 > > index 84dca18..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_u32.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint64_t > > -foo (uint64_t a, uint32x4_t b, uint32x4_t c, mve_pred16_t p) > > -{ > > - return vmlaldavaxq_p_u32 (a, b, c, p); > > -} > > - > > -/* { dg-final { scan-assembler "vmlaldavaxt.u32" } } */ > > - > > -uint64_t > > -foo1 (uint64_t a, uint32x4_t b, uint32x4_t c, mve_pred16_t p) > > -{ > > - return vmlaldavaxq_p (a, b, c, p); > > -} > > - > > -/* { dg-final { scan-assembler "vmlaldavaxt.u32" } } */ > > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u16.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u16.c > > deleted file mode 100644 > > index 67ebb79..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u16.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint16x8_t > > -foo (uint16x8_t a, uint16x8_t b, uint16_t c) > > -{ > > - return vqdmlahq_n_u16 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqdmlah.s16" } } */ > > - > > -uint16x8_t > > -foo1 (uint16x8_t a, uint16x8_t b, uint16_t c) > > -{ > > - return vqdmlahq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqdmlah.s16" } } */ > > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u32.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u32.c > > deleted file mode 100644 > > index d82bca1..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u32.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint32x4_t > > -foo (uint32x4_t a, uint32x4_t b, uint32_t c) > > -{ > > - return vqdmlahq_n_u32 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqdmlah.s32" } } */ > > - > > -uint32x4_t > > -foo1 (uint32x4_t a, uint32x4_t b, uint32_t c) > > -{ > > - return vqdmlahq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqdmlah.s32" } } */ > > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u8.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u8.c > > deleted file mode 100644 > > index 4b4c246..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqdmlahq_n_u8.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint8x16_t > > -foo (uint8x16_t a, uint8x16_t b, uint8_t c) > > -{ > > - return vqdmlahq_n_u8 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqdmlah.s8" } } */ > > - > > -uint8x16_t > > -foo1 (uint8x16_t a, uint8x16_t b, uint8_t c) > > -{ > > - return vqdmlahq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqdmlah.s8" } } */ > > diff --git > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u16.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u16.c > > deleted file mode 100644 > > index 6fe4f77..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u16.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint16x8_t > > -foo (uint16x8_t a, uint16x8_t b, uint16_t c) > > -{ > > - return vqrdmlahq_n_u16 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlah.s16" } } */ > > - > > -uint16x8_t > > -foo1 (uint16x8_t a, uint16x8_t b, uint16_t c) > > -{ > > - return vqrdmlahq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlah.s16" } } */ > > diff --git > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u32.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u32.c > > deleted file mode 100644 > > index 8205403..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u32.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint32x4_t > > -foo (uint32x4_t a, uint32x4_t b, uint32_t c) > > -{ > > - return vqrdmlahq_n_u32 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlah.s32" } } */ > > - > > -uint32x4_t > > -foo1 (uint32x4_t a, uint32x4_t b, uint32_t c) > > -{ > > - return vqrdmlahq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlah.s32" } } */ > > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u8.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u8.c > > deleted file mode 100644 > > index ed5c3a0..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlahq_n_u8.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint8x16_t > > -foo (uint8x16_t a, uint8x16_t b, uint8_t c) > > -{ > > - return vqrdmlahq_n_u8 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlah.s8" } } */ > > - > > -uint8x16_t > > -foo1 (uint8x16_t a, uint8x16_t b, uint8_t c) > > -{ > > - return vqrdmlahq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlah.s8" } } */ > > diff --git > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u16.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u16.c > > deleted file mode 100644 > > index 6c5f280..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u16.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint16x8_t > > -foo (uint16x8_t a, uint16x8_t b, uint16_t c) > > -{ > > - return vqrdmlashq_n_u16 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlash.s16" } } */ > > - > > -uint16x8_t > > -foo1 (uint16x8_t a, uint16x8_t b, uint16_t c) > > -{ > > - return vqrdmlashq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlash.s16" } } */ > > diff --git > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u32.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u32.c > > deleted file mode 100644 > > index daf520d..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u32.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint32x4_t > > -foo (uint32x4_t a, uint32x4_t b, uint32_t c) > > -{ > > - return vqrdmlashq_n_u32 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlash.s32" } } */ > > - > > -uint32x4_t > > -foo1 (uint32x4_t a, uint32x4_t b, uint32_t c) > > -{ > > - return vqrdmlashq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlash.s32" } } */ > > diff --git > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u8.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u8.c > > deleted file mode 100644 > > index 59b0e39..0000000 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vqrdmlashq_n_u8.c > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -/* { dg-require-effective-target arm_v8_1m_mve_ok } */ > > -/* { dg-add-options arm_v8_1m_mve } */ > > -/* { dg-additional-options "-O2" } */ > > - > > -#include "arm_mve.h" > > - > > -uint8x16_t > > -foo (uint8x16_t a, uint8x16_t b, uint8_t c) > > -{ > > - return vqrdmlashq_n_u8 (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlash.s8" } } */ > > - > > -uint8x16_t > > -foo1 (uint8x16_t a, uint8x16_t b, uint8_t c) > > -{ > > - return vqrdmlashq (a, b, c); > > -} > > - > > -/* { dg-final { scan-assembler "vqrdmlash.s8" } } */ > > -- > > 2.7.4