public inbox for libstdc++-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-744] Daily bump.
@ 2023-05-12  0:19 GCC Administrator
  0 siblings, 0 replies; only message in thread
From: GCC Administrator @ 2023-05-12  0:19 UTC (permalink / raw)
  To: gcc-cvs, libstdc++-cvs

https://gcc.gnu.org/g:3d125c91cc2c9d5fa7149001d2681a735d1810cb

commit r14-744-g3d125c91cc2c9d5fa7149001d2681a735d1810cb
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri May 12 00:18:12 2023 +0000

    Daily bump.

Diff:
---
 ChangeLog               |    8 +
 gcc/ChangeLog           | 1784 +++++++++++++++++++++++++++++++++++++++++++++++
 gcc/DATESTAMP           |    2 +-
 gcc/cp/ChangeLog        |   18 +
 gcc/fortran/ChangeLog   |    4 +
 gcc/m2/ChangeLog        |   25 +
 gcc/testsuite/ChangeLog |  148 ++++
 include/ChangeLog       |    8 +
 libstdc++-v3/ChangeLog  |   40 ++
 lto-plugin/ChangeLog    |    8 +
 10 files changed, 2044 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 63d5fb7bfcb..308df0e93db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2023-05-11  Robin Dapp  <rdapp@ventanamicro.com>
+
+	* MAINTAINERS: Sort.
+
+2023-05-11  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
+
+	* MAINTAINERS: Add myself.
+
 2023-05-10  Pan Li  <pan2.li@intel.com>
 
 	* MAINTAINERS: Add myself.
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a92555be3a3..9f0ebd078b8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,1787 @@
+2023-05-11  mtsamis  <manolis.tsamis@vrull.eu>
+
+	* match.pd: simplify vector shift + bit_and + multiply.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vmlaq, vmlasq, vqdmlahq)
+	(vqdmlashq, vqrdmlahq, vqrdmlashq): New.
+	* config/arm/arm-mve-builtins-base.def (vmlaq, vmlasq, vqdmlahq)
+	(vqdmlashq, vqrdmlahq, vqrdmlashq): New.
+	* config/arm/arm-mve-builtins-base.h (vmlaq, vmlasq, vqdmlahq)
+	(vqdmlashq, vqrdmlahq, vqrdmlashq): New.
+	* config/arm/arm-mve-builtins.cc
+	(function_instance::has_inactive_argument): Handle vmlaq, vmlasq,
+	vqdmlahq, vqdmlashq, vqrdmlahq, vqrdmlashq.
+	* config/arm/arm_mve.h (vqrdmlashq): Remove.
+	(vqrdmlahq): Remove.
+	(vqdmlashq): Remove.
+	(vqdmlahq): Remove.
+	(vmlasq): Remove.
+	(vmlaq): Remove.
+	(vmlaq_m): Remove.
+	(vmlasq_m): Remove.
+	(vqdmlashq_m): Remove.
+	(vqdmlahq_m): Remove.
+	(vqrdmlahq_m): Remove.
+	(vqrdmlashq_m): Remove.
+	(vmlasq_n_u8): Remove.
+	(vmlaq_n_u8): Remove.
+	(vqrdmlashq_n_s8): Remove.
+	(vqrdmlahq_n_s8): Remove.
+	(vqdmlahq_n_s8): Remove.
+	(vqdmlashq_n_s8): Remove.
+	(vmlasq_n_s8): Remove.
+	(vmlaq_n_s8): Remove.
+	(vmlasq_n_u16): Remove.
+	(vmlaq_n_u16): Remove.
+	(vqrdmlashq_n_s16): Remove.
+	(vqrdmlahq_n_s16): Remove.
+	(vqdmlashq_n_s16): Remove.
+	(vqdmlahq_n_s16): Remove.
+	(vmlasq_n_s16): Remove.
+	(vmlaq_n_s16): Remove.
+	(vmlasq_n_u32): Remove.
+	(vmlaq_n_u32): Remove.
+	(vqrdmlashq_n_s32): Remove.
+	(vqrdmlahq_n_s32): Remove.
+	(vqdmlashq_n_s32): Remove.
+	(vqdmlahq_n_s32): Remove.
+	(vmlasq_n_s32): Remove.
+	(vmlaq_n_s32): Remove.
+	(vmlaq_m_n_s8): Remove.
+	(vmlaq_m_n_s32): Remove.
+	(vmlaq_m_n_s16): Remove.
+	(vmlaq_m_n_u8): Remove.
+	(vmlaq_m_n_u32): Remove.
+	(vmlaq_m_n_u16): Remove.
+	(vmlasq_m_n_s8): Remove.
+	(vmlasq_m_n_s32): Remove.
+	(vmlasq_m_n_s16): Remove.
+	(vmlasq_m_n_u8): Remove.
+	(vmlasq_m_n_u32): Remove.
+	(vmlasq_m_n_u16): Remove.
+	(vqdmlashq_m_n_s8): Remove.
+	(vqdmlashq_m_n_s32): Remove.
+	(vqdmlashq_m_n_s16): Remove.
+	(vqdmlahq_m_n_s8): Remove.
+	(vqdmlahq_m_n_s32): Remove.
+	(vqdmlahq_m_n_s16): Remove.
+	(vqrdmlahq_m_n_s8): Remove.
+	(vqrdmlahq_m_n_s32): Remove.
+	(vqrdmlahq_m_n_s16): Remove.
+	(vqrdmlashq_m_n_s8): Remove.
+	(vqrdmlashq_m_n_s32): Remove.
+	(vqrdmlashq_m_n_s16): Remove.
+	(__arm_vmlasq_n_u8): Remove.
+	(__arm_vmlaq_n_u8): Remove.
+	(__arm_vqrdmlashq_n_s8): Remove.
+	(__arm_vqdmlashq_n_s8): Remove.
+	(__arm_vqrdmlahq_n_s8): Remove.
+	(__arm_vqdmlahq_n_s8): Remove.
+	(__arm_vmlasq_n_s8): Remove.
+	(__arm_vmlaq_n_s8): Remove.
+	(__arm_vmlasq_n_u16): Remove.
+	(__arm_vmlaq_n_u16): Remove.
+	(__arm_vqrdmlashq_n_s16): Remove.
+	(__arm_vqdmlashq_n_s16): Remove.
+	(__arm_vqrdmlahq_n_s16): Remove.
+	(__arm_vqdmlahq_n_s16): Remove.
+	(__arm_vmlasq_n_s16): Remove.
+	(__arm_vmlaq_n_s16): Remove.
+	(__arm_vmlasq_n_u32): Remove.
+	(__arm_vmlaq_n_u32): Remove.
+	(__arm_vqrdmlashq_n_s32): Remove.
+	(__arm_vqdmlashq_n_s32): Remove.
+	(__arm_vqrdmlahq_n_s32): Remove.
+	(__arm_vqdmlahq_n_s32): Remove.
+	(__arm_vmlasq_n_s32): Remove.
+	(__arm_vmlaq_n_s32): Remove.
+	(__arm_vmlaq_m_n_s8): Remove.
+	(__arm_vmlaq_m_n_s32): Remove.
+	(__arm_vmlaq_m_n_s16): Remove.
+	(__arm_vmlaq_m_n_u8): Remove.
+	(__arm_vmlaq_m_n_u32): Remove.
+	(__arm_vmlaq_m_n_u16): Remove.
+	(__arm_vmlasq_m_n_s8): Remove.
+	(__arm_vmlasq_m_n_s32): Remove.
+	(__arm_vmlasq_m_n_s16): Remove.
+	(__arm_vmlasq_m_n_u8): Remove.
+	(__arm_vmlasq_m_n_u32): Remove.
+	(__arm_vmlasq_m_n_u16): Remove.
+	(__arm_vqdmlahq_m_n_s8): Remove.
+	(__arm_vqdmlahq_m_n_s32): Remove.
+	(__arm_vqdmlahq_m_n_s16): Remove.
+	(__arm_vqrdmlahq_m_n_s8): Remove.
+	(__arm_vqrdmlahq_m_n_s32): Remove.
+	(__arm_vqrdmlahq_m_n_s16): Remove.
+	(__arm_vqrdmlashq_m_n_s8): Remove.
+	(__arm_vqrdmlashq_m_n_s32): Remove.
+	(__arm_vqrdmlashq_m_n_s16): Remove.
+	(__arm_vqdmlashq_m_n_s8): Remove.
+	(__arm_vqdmlashq_m_n_s16): Remove.
+	(__arm_vqdmlashq_m_n_s32): Remove.
+	(__arm_vmlasq): Remove.
+	(__arm_vmlaq): Remove.
+	(__arm_vqrdmlashq): Remove.
+	(__arm_vqdmlashq): Remove.
+	(__arm_vqrdmlahq): Remove.
+	(__arm_vqdmlahq): Remove.
+	(__arm_vmlaq_m): Remove.
+	(__arm_vmlasq_m): Remove.
+	(__arm_vqdmlahq_m): Remove.
+	(__arm_vqrdmlahq_m): Remove.
+	(__arm_vqrdmlashq_m): Remove.
+	(__arm_vqdmlashq_m): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_VMLxQ_N): New.
+	(mve_insn): Add vmla, vmlas, vqdmlah, vqdmlash, vqrdmlah,
+	vqrdmlash.
+	(supf): Add VQDMLAHQ_N_S, VQDMLASHQ_N_S, VQRDMLAHQ_N_S,
+	VQRDMLASHQ_N_S.
+	* config/arm/mve.md (mve_vmlaq_n_<supf><mode>)
+	(mve_vmlasq_n_<supf><mode>, mve_vqdmlahq_n_<supf><mode>)
+	(mve_vqdmlashq_n_<supf><mode>, mve_vqrdmlahq_n_<supf><mode>)
+	(mve_vqrdmlashq_n_<supf><mode>): Merge into ...
+	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (ternary_n): New.
+	* config/arm/arm-mve-builtins-shapes.h (ternary_n): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vqdmladhq, vqdmladhxq)
+	(vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
+	(vqrdmlsdhxq): New.
+	* config/arm/arm-mve-builtins-base.def (vqdmladhq, vqdmladhxq)
+	(vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
+	(vqrdmlsdhxq): New.
+	* config/arm/arm-mve-builtins-base.h (vqdmladhq, vqdmladhxq)
+	(vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
+	(vqrdmlsdhxq): New.
+	* config/arm/arm-mve-builtins.cc
+	(function_instance::has_inactive_argument): Handle vqrdmladhq,
+	vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq vqdmladhq, vqdmladhxq,
+	vqdmlsdhq, vqdmlsdhxq.
+	* config/arm/arm_mve.h (vqrdmlsdhxq): Remove.
+	(vqrdmlsdhq): Remove.
+	(vqrdmladhxq): Remove.
+	(vqrdmladhq): Remove.
+	(vqdmlsdhxq): Remove.
+	(vqdmlsdhq): Remove.
+	(vqdmladhxq): Remove.
+	(vqdmladhq): Remove.
+	(vqdmladhq_m): Remove.
+	(vqdmladhxq_m): Remove.
+	(vqdmlsdhq_m): Remove.
+	(vqdmlsdhxq_m): Remove.
+	(vqrdmladhq_m): Remove.
+	(vqrdmladhxq_m): Remove.
+	(vqrdmlsdhq_m): Remove.
+	(vqrdmlsdhxq_m): Remove.
+	(vqrdmlsdhxq_s8): Remove.
+	(vqrdmlsdhq_s8): Remove.
+	(vqrdmladhxq_s8): Remove.
+	(vqrdmladhq_s8): Remove.
+	(vqdmlsdhxq_s8): Remove.
+	(vqdmlsdhq_s8): Remove.
+	(vqdmladhxq_s8): Remove.
+	(vqdmladhq_s8): Remove.
+	(vqrdmlsdhxq_s16): Remove.
+	(vqrdmlsdhq_s16): Remove.
+	(vqrdmladhxq_s16): Remove.
+	(vqrdmladhq_s16): Remove.
+	(vqdmlsdhxq_s16): Remove.
+	(vqdmlsdhq_s16): Remove.
+	(vqdmladhxq_s16): Remove.
+	(vqdmladhq_s16): Remove.
+	(vqrdmlsdhxq_s32): Remove.
+	(vqrdmlsdhq_s32): Remove.
+	(vqrdmladhxq_s32): Remove.
+	(vqrdmladhq_s32): Remove.
+	(vqdmlsdhxq_s32): Remove.
+	(vqdmlsdhq_s32): Remove.
+	(vqdmladhxq_s32): Remove.
+	(vqdmladhq_s32): Remove.
+	(vqdmladhq_m_s8): Remove.
+	(vqdmladhq_m_s32): Remove.
+	(vqdmladhq_m_s16): Remove.
+	(vqdmladhxq_m_s8): Remove.
+	(vqdmladhxq_m_s32): Remove.
+	(vqdmladhxq_m_s16): Remove.
+	(vqdmlsdhq_m_s8): Remove.
+	(vqdmlsdhq_m_s32): Remove.
+	(vqdmlsdhq_m_s16): Remove.
+	(vqdmlsdhxq_m_s8): Remove.
+	(vqdmlsdhxq_m_s32): Remove.
+	(vqdmlsdhxq_m_s16): Remove.
+	(vqrdmladhq_m_s8): Remove.
+	(vqrdmladhq_m_s32): Remove.
+	(vqrdmladhq_m_s16): Remove.
+	(vqrdmladhxq_m_s8): Remove.
+	(vqrdmladhxq_m_s32): Remove.
+	(vqrdmladhxq_m_s16): Remove.
+	(vqrdmlsdhq_m_s8): Remove.
+	(vqrdmlsdhq_m_s32): Remove.
+	(vqrdmlsdhq_m_s16): Remove.
+	(vqrdmlsdhxq_m_s8): Remove.
+	(vqrdmlsdhxq_m_s32): Remove.
+	(vqrdmlsdhxq_m_s16): Remove.
+	(__arm_vqrdmlsdhxq_s8): Remove.
+	(__arm_vqrdmlsdhq_s8): Remove.
+	(__arm_vqrdmladhxq_s8): Remove.
+	(__arm_vqrdmladhq_s8): Remove.
+	(__arm_vqdmlsdhxq_s8): Remove.
+	(__arm_vqdmlsdhq_s8): Remove.
+	(__arm_vqdmladhxq_s8): Remove.
+	(__arm_vqdmladhq_s8): Remove.
+	(__arm_vqrdmlsdhxq_s16): Remove.
+	(__arm_vqrdmlsdhq_s16): Remove.
+	(__arm_vqrdmladhxq_s16): Remove.
+	(__arm_vqrdmladhq_s16): Remove.
+	(__arm_vqdmlsdhxq_s16): Remove.
+	(__arm_vqdmlsdhq_s16): Remove.
+	(__arm_vqdmladhxq_s16): Remove.
+	(__arm_vqdmladhq_s16): Remove.
+	(__arm_vqrdmlsdhxq_s32): Remove.
+	(__arm_vqrdmlsdhq_s32): Remove.
+	(__arm_vqrdmladhxq_s32): Remove.
+	(__arm_vqrdmladhq_s32): Remove.
+	(__arm_vqdmlsdhxq_s32): Remove.
+	(__arm_vqdmlsdhq_s32): Remove.
+	(__arm_vqdmladhxq_s32): Remove.
+	(__arm_vqdmladhq_s32): Remove.
+	(__arm_vqdmladhq_m_s8): Remove.
+	(__arm_vqdmladhq_m_s32): Remove.
+	(__arm_vqdmladhq_m_s16): Remove.
+	(__arm_vqdmladhxq_m_s8): Remove.
+	(__arm_vqdmladhxq_m_s32): Remove.
+	(__arm_vqdmladhxq_m_s16): Remove.
+	(__arm_vqdmlsdhq_m_s8): Remove.
+	(__arm_vqdmlsdhq_m_s32): Remove.
+	(__arm_vqdmlsdhq_m_s16): Remove.
+	(__arm_vqdmlsdhxq_m_s8): Remove.
+	(__arm_vqdmlsdhxq_m_s32): Remove.
+	(__arm_vqdmlsdhxq_m_s16): Remove.
+	(__arm_vqrdmladhq_m_s8): Remove.
+	(__arm_vqrdmladhq_m_s32): Remove.
+	(__arm_vqrdmladhq_m_s16): Remove.
+	(__arm_vqrdmladhxq_m_s8): Remove.
+	(__arm_vqrdmladhxq_m_s32): Remove.
+	(__arm_vqrdmladhxq_m_s16): Remove.
+	(__arm_vqrdmlsdhq_m_s8): Remove.
+	(__arm_vqrdmlsdhq_m_s32): Remove.
+	(__arm_vqrdmlsdhq_m_s16): Remove.
+	(__arm_vqrdmlsdhxq_m_s8): Remove.
+	(__arm_vqrdmlsdhxq_m_s32): Remove.
+	(__arm_vqrdmlsdhxq_m_s16): Remove.
+	(__arm_vqrdmlsdhxq): Remove.
+	(__arm_vqrdmlsdhq): Remove.
+	(__arm_vqrdmladhxq): Remove.
+	(__arm_vqrdmladhq): Remove.
+	(__arm_vqdmlsdhxq): Remove.
+	(__arm_vqdmlsdhq): Remove.
+	(__arm_vqdmladhxq): Remove.
+	(__arm_vqdmladhq): Remove.
+	(__arm_vqdmladhq_m): Remove.
+	(__arm_vqdmladhxq_m): Remove.
+	(__arm_vqdmlsdhq_m): Remove.
+	(__arm_vqdmlsdhxq_m): Remove.
+	(__arm_vqrdmladhq_m): Remove.
+	(__arm_vqrdmladhxq_m): Remove.
+	(__arm_vqrdmlsdhq_m): Remove.
+	(__arm_vqrdmlsdhxq_m): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_VQxDMLxDHxQ_S): New.
+	(mve_insn): Add vqdmladh, vqdmladhx, vqdmlsdh, vqdmlsdhx,
+	vqrdmladh, vqrdmladhx, vqrdmlsdh, vqrdmlsdhx.
+	(supf): Add VQDMLADHQ_S, VQDMLADHXQ_S, VQDMLSDHQ_S, VQDMLSDHXQ_S,
+	VQRDMLADHQ_S,VQRDMLADHXQ_S, VQRDMLSDHQ_S, VQRDMLSDHXQ_S.
+	* config/arm/mve.md (mve_vqrdmladhq_s<mode>)
+	(mve_vqrdmladhxq_s<mode>, mve_vqrdmlsdhq_s<mode>)
+	(mve_vqrdmlsdhxq_s<mode>, mve_vqdmlsdhxq_s<mode>)
+	(mve_vqdmlsdhq_s<mode>, mve_vqdmladhxq_s<mode>)
+	(mve_vqdmladhq_s<mode>): Merge into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (ternary): New.
+	* config/arm/arm-mve-builtins-shapes.h (ternary): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vmlaldavaq, vmlaldavaxq)
+	(vmlsldavaq, vmlsldavaxq): New.
+	* config/arm/arm-mve-builtins-base.def (vmlaldavaq, vmlaldavaxq)
+	(vmlsldavaq, vmlsldavaxq): New.
+	* config/arm/arm-mve-builtins-base.h (vmlaldavaq, vmlaldavaxq)
+	(vmlsldavaq, vmlsldavaxq): New.
+	* config/arm/arm_mve.h (vmlaldavaq): Remove.
+	(vmlaldavaxq): Remove.
+	(vmlsldavaq): Remove.
+	(vmlsldavaxq): Remove.
+	(vmlaldavaq_p): Remove.
+	(vmlaldavaxq_p): Remove.
+	(vmlsldavaq_p): Remove.
+	(vmlsldavaxq_p): Remove.
+	(vmlaldavaq_s16): Remove.
+	(vmlaldavaxq_s16): Remove.
+	(vmlsldavaq_s16): Remove.
+	(vmlsldavaxq_s16): Remove.
+	(vmlaldavaq_u16): Remove.
+	(vmlaldavaq_s32): Remove.
+	(vmlaldavaxq_s32): Remove.
+	(vmlsldavaq_s32): Remove.
+	(vmlsldavaxq_s32): Remove.
+	(vmlaldavaq_u32): Remove.
+	(vmlaldavaq_p_s32): Remove.
+	(vmlaldavaq_p_s16): Remove.
+	(vmlaldavaq_p_u32): Remove.
+	(vmlaldavaq_p_u16): Remove.
+	(vmlaldavaxq_p_s32): Remove.
+	(vmlaldavaxq_p_s16): Remove.
+	(vmlsldavaq_p_s32): Remove.
+	(vmlsldavaq_p_s16): Remove.
+	(vmlsldavaxq_p_s32): Remove.
+	(vmlsldavaxq_p_s16): Remove.
+	(__arm_vmlaldavaq_s16): Remove.
+	(__arm_vmlaldavaxq_s16): Remove.
+	(__arm_vmlsldavaq_s16): Remove.
+	(__arm_vmlsldavaxq_s16): Remove.
+	(__arm_vmlaldavaq_u16): Remove.
+	(__arm_vmlaldavaq_s32): Remove.
+	(__arm_vmlaldavaxq_s32): Remove.
+	(__arm_vmlsldavaq_s32): Remove.
+	(__arm_vmlsldavaxq_s32): Remove.
+	(__arm_vmlaldavaq_u32): Remove.
+	(__arm_vmlaldavaq_p_s32): Remove.
+	(__arm_vmlaldavaq_p_s16): Remove.
+	(__arm_vmlaldavaq_p_u32): Remove.
+	(__arm_vmlaldavaq_p_u16): Remove.
+	(__arm_vmlaldavaxq_p_s32): Remove.
+	(__arm_vmlaldavaxq_p_s16): Remove.
+	(__arm_vmlsldavaq_p_s32): Remove.
+	(__arm_vmlsldavaq_p_s16): Remove.
+	(__arm_vmlsldavaxq_p_s32): Remove.
+	(__arm_vmlsldavaxq_p_s16): Remove.
+	(__arm_vmlaldavaq): Remove.
+	(__arm_vmlaldavaxq): Remove.
+	(__arm_vmlsldavaq): Remove.
+	(__arm_vmlsldavaxq): Remove.
+	(__arm_vmlaldavaq_p): Remove.
+	(__arm_vmlaldavaxq_p): Remove.
+	(__arm_vmlsldavaq_p): Remove.
+	(__arm_vmlsldavaxq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_VMLxLDAVAxQ, MVE_VMLxLDAVAxQ_P):
+	New.
+	(mve_insn): Add vmlaldava, vmlaldavax, vmlsldava, vmlsldavax.
+	(supf): Add VMLALDAVAXQ_P_S, VMLALDAVAXQ_S, VMLSLDAVAQ_P_S,
+	VMLSLDAVAQ_S, VMLSLDAVAXQ_P_S, VMLSLDAVAXQ_S.
+	* config/arm/mve.md (mve_vmlaldavaq_<supf><mode>)
+	(mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
+	(mve_vmlaldavaxq_s<mode>): Merge into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+	(mve_vmlaldavaq_p_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>)
+	(mve_vmlsldavaq_p_s<mode>, mve_vmlsldavaxq_p_s<mode>): Merge into
+	...
+	(@mve_<mve_insn>q_p_<supf><mode>): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (binary_acca_int64): New.
+	* config/arm/arm-mve-builtins-shapes.h (binary_acca_int64): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vrmlaldavhq, vrmlaldavhxq)
+	(vrmlsldavhq, vrmlsldavhxq): New.
+	* config/arm/arm-mve-builtins-base.def (vrmlaldavhq, vrmlaldavhxq)
+	(vrmlsldavhq, vrmlsldavhxq): New.
+	* config/arm/arm-mve-builtins-base.h (vrmlaldavhq, vrmlaldavhxq)
+	(vrmlsldavhq, vrmlsldavhxq): New.
+	* config/arm/arm-mve-builtins-functions.h
+	(unspec_mve_function_exact_insn_pred_p): Handle vrmlaldavhq,
+	vrmlaldavhxq, vrmlsldavhq, vrmlsldavhxq.
+	* config/arm/arm_mve.h (vrmlaldavhq): Remove.
+	(vrmlsldavhxq): Remove.
+	(vrmlsldavhq): Remove.
+	(vrmlaldavhxq): Remove.
+	(vrmlaldavhq_p): Remove.
+	(vrmlaldavhxq_p): Remove.
+	(vrmlsldavhq_p): Remove.
+	(vrmlsldavhxq_p): Remove.
+	(vrmlaldavhq_u32): Remove.
+	(vrmlsldavhxq_s32): Remove.
+	(vrmlsldavhq_s32): Remove.
+	(vrmlaldavhxq_s32): Remove.
+	(vrmlaldavhq_s32): Remove.
+	(vrmlaldavhq_p_s32): Remove.
+	(vrmlaldavhxq_p_s32): Remove.
+	(vrmlsldavhq_p_s32): Remove.
+	(vrmlsldavhxq_p_s32): Remove.
+	(vrmlaldavhq_p_u32): Remove.
+	(__arm_vrmlaldavhq_u32): Remove.
+	(__arm_vrmlsldavhxq_s32): Remove.
+	(__arm_vrmlsldavhq_s32): Remove.
+	(__arm_vrmlaldavhxq_s32): Remove.
+	(__arm_vrmlaldavhq_s32): Remove.
+	(__arm_vrmlaldavhq_p_s32): Remove.
+	(__arm_vrmlaldavhxq_p_s32): Remove.
+	(__arm_vrmlsldavhq_p_s32): Remove.
+	(__arm_vrmlsldavhxq_p_s32): Remove.
+	(__arm_vrmlaldavhq_p_u32): Remove.
+	(__arm_vrmlaldavhq): Remove.
+	(__arm_vrmlsldavhxq): Remove.
+	(__arm_vrmlsldavhq): Remove.
+	(__arm_vrmlaldavhxq): Remove.
+	(__arm_vrmlaldavhq_p): Remove.
+	(__arm_vrmlaldavhxq_p): Remove.
+	(__arm_vrmlsldavhq_p): Remove.
+	(__arm_vrmlsldavhxq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_VRMLxLDAVxQ, MVE_VRMLxLDAVHxQ_P):
+	New.
+	(mve_insn): Add vrmlaldavh, vrmlaldavhx, vrmlsldavh, vrmlsldavhx.
+	(supf): Add VRMLALDAVHXQ_P_S, VRMLALDAVHXQ_S, VRMLSLDAVHQ_P_S,
+	VRMLSLDAVHQ_S, VRMLSLDAVHXQ_P_S, VRMLSLDAVHXQ_S.
+	* config/arm/mve.md (mve_vrmlaldavhxq_sv4si)
+	(mve_vrmlsldavhq_sv4si, mve_vrmlsldavhxq_sv4si)
+	(mve_vrmlaldavhq_<supf>v4si): Merge into ...
+	(@mve_<mve_insn>q_<supf>v4si): ... this.
+	(mve_vrmlaldavhxq_p_sv4si, mve_vrmlsldavhq_p_sv4si)
+	(mve_vrmlsldavhxq_p_sv4si, mve_vrmlaldavhq_p_<supf>v4si): Merge
+	into ...
+	(@mve_<mve_insn>q_p_<supf>v4si): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vmlaldavq, vmlaldavxq)
+	(vmlsldavq, vmlsldavxq): New.
+	* config/arm/arm-mve-builtins-base.def (vmlaldavq, vmlaldavxq)
+	(vmlsldavq, vmlsldavxq): New.
+	* config/arm/arm-mve-builtins-base.h (vmlaldavq, vmlaldavxq)
+	(vmlsldavq, vmlsldavxq): New.
+	* config/arm/arm_mve.h (vmlaldavq): Remove.
+	(vmlsldavxq): Remove.
+	(vmlsldavq): Remove.
+	(vmlaldavxq): Remove.
+	(vmlaldavq_p): Remove.
+	(vmlaldavxq_p): Remove.
+	(vmlsldavq_p): Remove.
+	(vmlsldavxq_p): Remove.
+	(vmlaldavq_u16): Remove.
+	(vmlsldavxq_s16): Remove.
+	(vmlsldavq_s16): Remove.
+	(vmlaldavxq_s16): Remove.
+	(vmlaldavq_s16): Remove.
+	(vmlaldavq_u32): Remove.
+	(vmlsldavxq_s32): Remove.
+	(vmlsldavq_s32): Remove.
+	(vmlaldavxq_s32): Remove.
+	(vmlaldavq_s32): Remove.
+	(vmlaldavq_p_s16): Remove.
+	(vmlaldavxq_p_s16): Remove.
+	(vmlsldavq_p_s16): Remove.
+	(vmlsldavxq_p_s16): Remove.
+	(vmlaldavq_p_u16): Remove.
+	(vmlaldavq_p_s32): Remove.
+	(vmlaldavxq_p_s32): Remove.
+	(vmlsldavq_p_s32): Remove.
+	(vmlsldavxq_p_s32): Remove.
+	(vmlaldavq_p_u32): Remove.
+	(__arm_vmlaldavq_u16): Remove.
+	(__arm_vmlsldavxq_s16): Remove.
+	(__arm_vmlsldavq_s16): Remove.
+	(__arm_vmlaldavxq_s16): Remove.
+	(__arm_vmlaldavq_s16): Remove.
+	(__arm_vmlaldavq_u32): Remove.
+	(__arm_vmlsldavxq_s32): Remove.
+	(__arm_vmlsldavq_s32): Remove.
+	(__arm_vmlaldavxq_s32): Remove.
+	(__arm_vmlaldavq_s32): Remove.
+	(__arm_vmlaldavq_p_s16): Remove.
+	(__arm_vmlaldavxq_p_s16): Remove.
+	(__arm_vmlsldavq_p_s16): Remove.
+	(__arm_vmlsldavxq_p_s16): Remove.
+	(__arm_vmlaldavq_p_u16): Remove.
+	(__arm_vmlaldavq_p_s32): Remove.
+	(__arm_vmlaldavxq_p_s32): Remove.
+	(__arm_vmlsldavq_p_s32): Remove.
+	(__arm_vmlsldavxq_p_s32): Remove.
+	(__arm_vmlaldavq_p_u32): Remove.
+	(__arm_vmlaldavq): Remove.
+	(__arm_vmlsldavxq): Remove.
+	(__arm_vmlsldavq): Remove.
+	(__arm_vmlaldavxq): Remove.
+	(__arm_vmlaldavq_p): Remove.
+	(__arm_vmlaldavxq_p): Remove.
+	(__arm_vmlsldavq_p): Remove.
+	(__arm_vmlsldavxq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_VMLxLDAVxQ, MVE_VMLxLDAVxQ_P): New.
+	(mve_insn): Add vmlaldav, vmlaldavx, vmlsldav, vmlsldavx.
+	(supf): Add VMLALDAVXQ_S, VMLSLDAVQ_S, VMLSLDAVXQ_S,
+	VMLALDAVXQ_P_S, VMLSLDAVQ_P_S, VMLSLDAVXQ_P_S.
+	* config/arm/mve.md (mve_vmlaldavq_<supf><mode>)
+	(mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
+	(mve_vmlsldavxq_s<mode>): Merge into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+	(mve_vmlaldavq_p_<supf><mode>, mve_vmlaldavxq_p_s<mode>)
+	(mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>): Merge into
+	...
+	(@mve_<mve_insn>q_p_<supf><mode>): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (binary_acc_int64): New.
+	* config/arm/arm-mve-builtins-shapes.h (binary_acc_int64): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vabavq): New.
+	* config/arm/arm-mve-builtins-base.def (vabavq): New.
+	* config/arm/arm-mve-builtins-base.h (vabavq): New.
+	* config/arm/arm_mve.h (vabavq): Remove.
+	(vabavq_p): Remove.
+	(vabavq_s8): Remove.
+	(vabavq_s16): Remove.
+	(vabavq_s32): Remove.
+	(vabavq_u8): Remove.
+	(vabavq_u16): Remove.
+	(vabavq_u32): Remove.
+	(vabavq_p_s8): Remove.
+	(vabavq_p_u8): Remove.
+	(vabavq_p_s16): Remove.
+	(vabavq_p_u16): Remove.
+	(vabavq_p_s32): Remove.
+	(vabavq_p_u32): Remove.
+	(__arm_vabavq_s8): Remove.
+	(__arm_vabavq_s16): Remove.
+	(__arm_vabavq_s32): Remove.
+	(__arm_vabavq_u8): Remove.
+	(__arm_vabavq_u16): Remove.
+	(__arm_vabavq_u32): Remove.
+	(__arm_vabavq_p_s8): Remove.
+	(__arm_vabavq_p_u8): Remove.
+	(__arm_vabavq_p_s16): Remove.
+	(__arm_vabavq_p_u16): Remove.
+	(__arm_vabavq_p_s32): Remove.
+	(__arm_vabavq_p_u32): Remove.
+	(__arm_vabavq): Remove.
+	(__arm_vabavq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (mve_insn): Add vabav.
+	* config/arm/mve.md (mve_vabavq_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this,.
+	(mve_vabavq_p_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_p_<supf><mode>): ... this,.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vmladavaxq, vmladavaq)
+	(vmlsdavaq, vmlsdavaxq): New.
+	* config/arm/arm-mve-builtins-base.def (vmladavaxq, vmladavaq)
+	(vmlsdavaq, vmlsdavaxq): New.
+	* config/arm/arm-mve-builtins-base.h (vmladavaxq, vmladavaq)
+	(vmlsdavaq, vmlsdavaxq): New.
+	* config/arm/arm_mve.h (vmladavaq): Remove.
+	(vmlsdavaxq): Remove.
+	(vmlsdavaq): Remove.
+	(vmladavaxq): Remove.
+	(vmladavaq_p): Remove.
+	(vmladavaxq_p): Remove.
+	(vmlsdavaq_p): Remove.
+	(vmlsdavaxq_p): Remove.
+	(vmladavaq_u8): Remove.
+	(vmlsdavaxq_s8): Remove.
+	(vmlsdavaq_s8): Remove.
+	(vmladavaxq_s8): Remove.
+	(vmladavaq_s8): Remove.
+	(vmladavaq_u16): Remove.
+	(vmlsdavaxq_s16): Remove.
+	(vmlsdavaq_s16): Remove.
+	(vmladavaxq_s16): Remove.
+	(vmladavaq_s16): Remove.
+	(vmladavaq_u32): Remove.
+	(vmlsdavaxq_s32): Remove.
+	(vmlsdavaq_s32): Remove.
+	(vmladavaxq_s32): Remove.
+	(vmladavaq_s32): Remove.
+	(vmladavaq_p_s8): Remove.
+	(vmladavaq_p_s32): Remove.
+	(vmladavaq_p_s16): Remove.
+	(vmladavaq_p_u8): Remove.
+	(vmladavaq_p_u32): Remove.
+	(vmladavaq_p_u16): Remove.
+	(vmladavaxq_p_s8): Remove.
+	(vmladavaxq_p_s32): Remove.
+	(vmladavaxq_p_s16): Remove.
+	(vmlsdavaq_p_s8): Remove.
+	(vmlsdavaq_p_s32): Remove.
+	(vmlsdavaq_p_s16): Remove.
+	(vmlsdavaxq_p_s8): Remove.
+	(vmlsdavaxq_p_s32): Remove.
+	(vmlsdavaxq_p_s16): Remove.
+	(__arm_vmladavaq_u8): Remove.
+	(__arm_vmlsdavaxq_s8): Remove.
+	(__arm_vmlsdavaq_s8): Remove.
+	(__arm_vmladavaxq_s8): Remove.
+	(__arm_vmladavaq_s8): Remove.
+	(__arm_vmladavaq_u16): Remove.
+	(__arm_vmlsdavaxq_s16): Remove.
+	(__arm_vmlsdavaq_s16): Remove.
+	(__arm_vmladavaxq_s16): Remove.
+	(__arm_vmladavaq_s16): Remove.
+	(__arm_vmladavaq_u32): Remove.
+	(__arm_vmlsdavaxq_s32): Remove.
+	(__arm_vmlsdavaq_s32): Remove.
+	(__arm_vmladavaxq_s32): Remove.
+	(__arm_vmladavaq_s32): Remove.
+	(__arm_vmladavaq_p_s8): Remove.
+	(__arm_vmladavaq_p_s32): Remove.
+	(__arm_vmladavaq_p_s16): Remove.
+	(__arm_vmladavaq_p_u8): Remove.
+	(__arm_vmladavaq_p_u32): Remove.
+	(__arm_vmladavaq_p_u16): Remove.
+	(__arm_vmladavaxq_p_s8): Remove.
+	(__arm_vmladavaxq_p_s32): Remove.
+	(__arm_vmladavaxq_p_s16): Remove.
+	(__arm_vmlsdavaq_p_s8): Remove.
+	(__arm_vmlsdavaq_p_s32): Remove.
+	(__arm_vmlsdavaq_p_s16): Remove.
+	(__arm_vmlsdavaxq_p_s8): Remove.
+	(__arm_vmlsdavaxq_p_s32): Remove.
+	(__arm_vmlsdavaxq_p_s16): Remove.
+	(__arm_vmladavaq): Remove.
+	(__arm_vmlsdavaxq): Remove.
+	(__arm_vmlsdavaq): Remove.
+	(__arm_vmladavaxq): Remove.
+	(__arm_vmladavaq_p): Remove.
+	(__arm_vmladavaxq_p): Remove.
+	(__arm_vmlsdavaq_p): Remove.
+	(__arm_vmlsdavaxq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc	(binary_acca_int32): New.
+	* config/arm/arm-mve-builtins-shapes.h	(binary_acca_int32): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vmladavq, vmladavxq)
+	(vmlsdavq, vmlsdavxq): New.
+	* config/arm/arm-mve-builtins-base.def (vmladavq, vmladavxq)
+	(vmlsdavq, vmlsdavxq): New.
+	* config/arm/arm-mve-builtins-base.h (vmladavq, vmladavxq)
+	(vmlsdavq, vmlsdavxq): New.
+	* config/arm/arm_mve.h (vmladavq): Remove.
+	(vmlsdavxq): Remove.
+	(vmlsdavq): Remove.
+	(vmladavxq): Remove.
+	(vmladavq_p): Remove.
+	(vmlsdavxq_p): Remove.
+	(vmlsdavq_p): Remove.
+	(vmladavxq_p): Remove.
+	(vmladavq_u8): Remove.
+	(vmlsdavxq_s8): Remove.
+	(vmlsdavq_s8): Remove.
+	(vmladavxq_s8): Remove.
+	(vmladavq_s8): Remove.
+	(vmladavq_u16): Remove.
+	(vmlsdavxq_s16): Remove.
+	(vmlsdavq_s16): Remove.
+	(vmladavxq_s16): Remove.
+	(vmladavq_s16): Remove.
+	(vmladavq_u32): Remove.
+	(vmlsdavxq_s32): Remove.
+	(vmlsdavq_s32): Remove.
+	(vmladavxq_s32): Remove.
+	(vmladavq_s32): Remove.
+	(vmladavq_p_u8): Remove.
+	(vmlsdavxq_p_s8): Remove.
+	(vmlsdavq_p_s8): Remove.
+	(vmladavxq_p_s8): Remove.
+	(vmladavq_p_s8): Remove.
+	(vmladavq_p_u16): Remove.
+	(vmlsdavxq_p_s16): Remove.
+	(vmlsdavq_p_s16): Remove.
+	(vmladavxq_p_s16): Remove.
+	(vmladavq_p_s16): Remove.
+	(vmladavq_p_u32): Remove.
+	(vmlsdavxq_p_s32): Remove.
+	(vmlsdavq_p_s32): Remove.
+	(vmladavxq_p_s32): Remove.
+	(vmladavq_p_s32): Remove.
+	(__arm_vmladavq_u8): Remove.
+	(__arm_vmlsdavxq_s8): Remove.
+	(__arm_vmlsdavq_s8): Remove.
+	(__arm_vmladavxq_s8): Remove.
+	(__arm_vmladavq_s8): Remove.
+	(__arm_vmladavq_u16): Remove.
+	(__arm_vmlsdavxq_s16): Remove.
+	(__arm_vmlsdavq_s16): Remove.
+	(__arm_vmladavxq_s16): Remove.
+	(__arm_vmladavq_s16): Remove.
+	(__arm_vmladavq_u32): Remove.
+	(__arm_vmlsdavxq_s32): Remove.
+	(__arm_vmlsdavq_s32): Remove.
+	(__arm_vmladavxq_s32): Remove.
+	(__arm_vmladavq_s32): Remove.
+	(__arm_vmladavq_p_u8): Remove.
+	(__arm_vmlsdavxq_p_s8): Remove.
+	(__arm_vmlsdavq_p_s8): Remove.
+	(__arm_vmladavxq_p_s8): Remove.
+	(__arm_vmladavq_p_s8): Remove.
+	(__arm_vmladavq_p_u16): Remove.
+	(__arm_vmlsdavxq_p_s16): Remove.
+	(__arm_vmlsdavq_p_s16): Remove.
+	(__arm_vmladavxq_p_s16): Remove.
+	(__arm_vmladavq_p_s16): Remove.
+	(__arm_vmladavq_p_u32): Remove.
+	(__arm_vmlsdavxq_p_s32): Remove.
+	(__arm_vmlsdavq_p_s32): Remove.
+	(__arm_vmladavxq_p_s32): Remove.
+	(__arm_vmladavq_p_s32): Remove.
+	(__arm_vmladavq): Remove.
+	(__arm_vmlsdavxq): Remove.
+	(__arm_vmlsdavq): Remove.
+	(__arm_vmladavxq): Remove.
+	(__arm_vmladavq_p): Remove.
+	(__arm_vmlsdavxq_p): Remove.
+	(__arm_vmlsdavq_p): Remove.
+	(__arm_vmladavxq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_VMLxDAVQ, MVE_VMLxDAVQ_P)
+	(MVE_VMLxDAVAQ, MVE_VMLxDAVAQ_P): New.
+	(mve_insn): Add vmladava, vmladavax, vmladav, vmladavx, vmlsdava,
+	vmlsdavax, vmlsdav, vmlsdavx.
+	(supf): Add VMLADAVAXQ_P_S, VMLADAVAXQ_S, VMLADAVXQ_P_S,
+	VMLADAVXQ_S, VMLSDAVAQ_P_S, VMLSDAVAQ_S, VMLSDAVAXQ_P_S,
+	VMLSDAVAXQ_S, VMLSDAVQ_P_S, VMLSDAVQ_S, VMLSDAVXQ_P_S,
+	VMLSDAVXQ_S.
+	* config/arm/mve.md (mve_vmladavq_<supf><mode>)
+	(mve_vmladavxq_s<mode>, mve_vmlsdavq_s<mode>)
+	(mve_vmlsdavxq_s<mode>): Merge into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+	(mve_vmlsdavaq_s<mode>, mve_vmladavaxq_s<mode>)
+	(mve_vmlsdavaxq_s<mode>, mve_vmladavaq_<supf><mode>): Merge into
+	...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+	(mve_vmladavq_p_<supf><mode>, mve_vmladavxq_p_s<mode>)
+	(mve_vmlsdavq_p_s<mode>, mve_vmlsdavxq_p_s<mode>): Merge into ...
+	(@mve_<mve_insn>q_p_<supf><mode>): ... this.
+	(mve_vmladavaq_p_<supf><mode>, mve_vmladavaxq_p_s<mode>)
+	(mve_vmlsdavaq_p_s<mode>, mve_vmlsdavaxq_p_s<mode>): Merge into
+	...
+	(@mve_<mve_insn>q_p_<supf><mode>): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (binary_acc_int32): New.
+	* config/arm/arm-mve-builtins-shapes.h (binary_acc_int32): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vaddlvaq): New.
+	* config/arm/arm-mve-builtins-base.def (vaddlvaq): New.
+	* config/arm/arm-mve-builtins-base.h (vaddlvaq): New.
+	* config/arm/arm_mve.h (vaddlvaq): Remove.
+	(vaddlvaq_p): Remove.
+	(vaddlvaq_u32): Remove.
+	(vaddlvaq_s32): Remove.
+	(vaddlvaq_p_s32): Remove.
+	(vaddlvaq_p_u32): Remove.
+	(__arm_vaddlvaq_u32): Remove.
+	(__arm_vaddlvaq_s32): Remove.
+	(__arm_vaddlvaq_p_s32): Remove.
+	(__arm_vaddlvaq_p_u32): Remove.
+	(__arm_vaddlvaq): Remove.
+	(__arm_vaddlvaq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (unary_widen_acc): New.
+	* config/arm/arm-mve-builtins-shapes.h (unary_widen_acc): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (mve_insn): Add vaddlva.
+	* config/arm/mve.md (mve_vaddlvaq_<supf>v4si): Rename into ...
+	(@mve_<mve_insn>q_<supf>v4si): ... this.
+	(mve_vaddlvaq_p_<supf>v4si): Rename into ...
+	(@mve_<mve_insn>q_p_<supf>v4si): ... this.
+
+2023-05-11  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/109807
+	* config/i386/i386.cc (ix86_widen_mult_cost):
+	Handle V4HImode and V2SImode.
+
+2023-05-11  Andrew Pinski  <apinski@marvell.com>
+
+	* tree-ssa-dce.cc (simple_dce_from_worklist): For ssa names
+	defined by a phi node with more than one uses, allow for the
+	only uses are in that same defining statement.
+
+2023-05-11  Robin Dapp  <rdapp@ventanamicro.com>
+
+	* config/riscv/riscv.cc (riscv_const_insns): Add permissible
+	vector constants.
+
+2023-05-11  Pan Li  <pan2.li@intel.com>
+
+	* config/riscv/vector.md: Add comments for simplifying to vmset.
+
+2023-05-11  Robin Dapp  <rdapp@ventanamicro.com>
+
+	* config/riscv/autovec.md (<optab><mode>3): Add scalar shift
+	pattern.
+	(v<optab><mode>3): Add vector shift pattern.
+	* config/riscv/vector-iterators.md: New iterator.
+
+2023-05-11  Robin Dapp  <rdapp@ventanamicro.com>
+
+	* config/riscv/autovec.md: Use renamed functions.
+	* config/riscv/riscv-protos.h (emit_vlmax_op): Rename.
+	(emit_vlmax_reg_op): To this.
+	(emit_nonvlmax_op): Rename.
+	(emit_len_op): To this.
+	(emit_nonvlmax_binop): Rename.
+	(emit_len_binop): To this.
+	* config/riscv/riscv-v.cc (emit_pred_op): Add default parameter.
+	(emit_pred_binop): Remove vlmax_p.
+	(emit_vlmax_op): Rename.
+	(emit_vlmax_reg_op): To this.
+	(emit_nonvlmax_op): Rename.
+	(emit_len_op): To this.
+	(emit_nonvlmax_binop): Rename.
+	(emit_len_binop): To this.
+	(sew64_scalar_helper): Use renamed functions.
+	(expand_tuple_move): Use renamed functions.
+	* config/riscv/riscv.cc (vector_zero_call_used_regs): Use
+	renamed functions.
+	* config/riscv/vector.md: Use renamed functions.
+
+2023-05-11  Robin Dapp  <rdapp@ventanamicro.com>
+	    Michael Collison  <collison@rivosinc.com>
+
+	* config/riscv/autovec.md (<optab><mode>3): Add integer binops.
+	* config/riscv/riscv-protos.h (emit_nonvlmax_binop): Declare.
+	* config/riscv/riscv-v.cc (emit_pred_op): New function.
+	(set_expander_dest_and_mask): New function.
+	(emit_pred_binop): New function.
+	(emit_nonvlmax_binop): New function.
+
+2023-05-11  Pan Li  <pan2.li@intel.com>
+
+	* cfgloopmanip.cc (create_empty_loop_on_edge): Add PLUS_EXPR.
+	* gimple-loop-interchange.cc
+	(tree_loop_interchange::map_inductions_to_loop): Ditto.
+	* tree-ssa-loop-ivcanon.cc (create_canonical_iv): Ditto.
+	* tree-ssa-loop-ivopts.cc (create_new_iv): Ditto.
+	* tree-ssa-loop-manip.cc (create_iv): Ditto.
+	(tree_transform_and_unroll_loop): Ditto.
+	(canonicalize_loop_ivs): Ditto.
+	* tree-ssa-loop-manip.h (create_iv): Ditto.
+	* tree-vect-data-refs.cc (vect_create_data_ref_ptr): Ditto.
+	* tree-vect-loop-manip.cc (vect_set_loop_controls_directly):
+	Ditto.
+	(vect_set_loop_condition_normal): Ditto.
+	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Ditto.
+	* tree-vect-stmts.cc (vectorizable_store): Ditto.
+	(vectorizable_load): Ditto.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vmovlbq, vmovltq): New.
+	* config/arm/arm-mve-builtins-base.def (vmovlbq, vmovltq): New.
+	* config/arm/arm-mve-builtins-base.h (vmovlbq, vmovltq): New.
+	* config/arm/arm_mve.h (vmovlbq): Remove.
+	(vmovltq): Remove.
+	(vmovlbq_m): Remove.
+	(vmovltq_m): Remove.
+	(vmovlbq_x): Remove.
+	(vmovltq_x): Remove.
+	(vmovlbq_s8): Remove.
+	(vmovlbq_s16): Remove.
+	(vmovltq_s8): Remove.
+	(vmovltq_s16): Remove.
+	(vmovltq_u8): Remove.
+	(vmovltq_u16): Remove.
+	(vmovlbq_u8): Remove.
+	(vmovlbq_u16): Remove.
+	(vmovlbq_m_s8): Remove.
+	(vmovltq_m_s8): Remove.
+	(vmovlbq_m_u8): Remove.
+	(vmovltq_m_u8): Remove.
+	(vmovlbq_m_s16): Remove.
+	(vmovltq_m_s16): Remove.
+	(vmovlbq_m_u16): Remove.
+	(vmovltq_m_u16): Remove.
+	(vmovlbq_x_s8): Remove.
+	(vmovlbq_x_s16): Remove.
+	(vmovlbq_x_u8): Remove.
+	(vmovlbq_x_u16): Remove.
+	(vmovltq_x_s8): Remove.
+	(vmovltq_x_s16): Remove.
+	(vmovltq_x_u8): Remove.
+	(vmovltq_x_u16): Remove.
+	(__arm_vmovlbq_s8): Remove.
+	(__arm_vmovlbq_s16): Remove.
+	(__arm_vmovltq_s8): Remove.
+	(__arm_vmovltq_s16): Remove.
+	(__arm_vmovltq_u8): Remove.
+	(__arm_vmovltq_u16): Remove.
+	(__arm_vmovlbq_u8): Remove.
+	(__arm_vmovlbq_u16): Remove.
+	(__arm_vmovlbq_m_s8): Remove.
+	(__arm_vmovltq_m_s8): Remove.
+	(__arm_vmovlbq_m_u8): Remove.
+	(__arm_vmovltq_m_u8): Remove.
+	(__arm_vmovlbq_m_s16): Remove.
+	(__arm_vmovltq_m_s16): Remove.
+	(__arm_vmovlbq_m_u16): Remove.
+	(__arm_vmovltq_m_u16): Remove.
+	(__arm_vmovlbq_x_s8): Remove.
+	(__arm_vmovlbq_x_s16): Remove.
+	(__arm_vmovlbq_x_u8): Remove.
+	(__arm_vmovlbq_x_u16): Remove.
+	(__arm_vmovltq_x_s8): Remove.
+	(__arm_vmovltq_x_s16): Remove.
+	(__arm_vmovltq_x_u8): Remove.
+	(__arm_vmovltq_x_u16): Remove.
+	(__arm_vmovlbq): Remove.
+	(__arm_vmovltq): Remove.
+	(__arm_vmovlbq_m): Remove.
+	(__arm_vmovltq_m): Remove.
+	(__arm_vmovlbq_x): Remove.
+	(__arm_vmovltq_x): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (unary_widen): New.
+	* config/arm/arm-mve-builtins-shapes.h (unary_widen): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (mve_insn): Add vmovlb, vmovlt.
+	(VMOVLBQ, VMOVLTQ): Merge into ...
+	(VMOVLxQ): ... this.
+	(VMOVLTQ_M, VMOVLBQ_M): Merge into ...
+	(VMOVLxQ_M): ... this.
+	* config/arm/mve.md (mve_vmovltq_<supf><mode>)
+	(mve_vmovlbq_<supf><mode>): Merge into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+	(mve_vmovlbq_m_<supf><mode>, mve_vmovltq_m_<supf><mode>): Merge
+	into ...
+	(@mve_<mve_insn>q_m_<supf><mode>): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vaddlvq): New.
+	* config/arm/arm-mve-builtins-base.def (vaddlvq): New.
+	* config/arm/arm-mve-builtins-base.h (vaddlvq): New.
+	* config/arm/arm-mve-builtins-functions.h
+	(unspec_mve_function_exact_insn_pred_p): Handle vaddlvq.
+	* config/arm/arm_mve.h (vaddlvq): Remove.
+	(vaddlvq_p): Remove.
+	(vaddlvq_s32): Remove.
+	(vaddlvq_u32): Remove.
+	(vaddlvq_p_s32): Remove.
+	(vaddlvq_p_u32): Remove.
+	(__arm_vaddlvq_s32): Remove.
+	(__arm_vaddlvq_u32): Remove.
+	(__arm_vaddlvq_p_s32): Remove.
+	(__arm_vaddlvq_p_u32): Remove.
+	(__arm_vaddlvq): Remove.
+	(__arm_vaddlvq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (mve_insn): Add vaddlv.
+	* config/arm/mve.md (mve_vaddlvq_<supf>v4si): Rename into ...
+	(@mve_<mve_insn>q_<supf>v4si): ... this.
+	(mve_vaddlvq_p_<supf>v4si): Rename into ...
+	(@mve_<mve_insn>q_p_<supf>v4si): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (unary_acc): New.
+	* config/arm/arm-mve-builtins-shapes.h (unary_acc): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vaddvaq): New.
+	* config/arm/arm-mve-builtins-base.def (vaddvaq): New.
+	* config/arm/arm-mve-builtins-base.h (vaddvaq): New.
+	* config/arm/arm_mve.h (vaddvaq): Remove.
+	(vaddvaq_p): Remove.
+	(vaddvaq_u8): Remove.
+	(vaddvaq_s8): Remove.
+	(vaddvaq_u16): Remove.
+	(vaddvaq_s16): Remove.
+	(vaddvaq_u32): Remove.
+	(vaddvaq_s32): Remove.
+	(vaddvaq_p_u8): Remove.
+	(vaddvaq_p_s8): Remove.
+	(vaddvaq_p_u16): Remove.
+	(vaddvaq_p_s16): Remove.
+	(vaddvaq_p_u32): Remove.
+	(vaddvaq_p_s32): Remove.
+	(__arm_vaddvaq_u8): Remove.
+	(__arm_vaddvaq_s8): Remove.
+	(__arm_vaddvaq_u16): Remove.
+	(__arm_vaddvaq_s16): Remove.
+	(__arm_vaddvaq_u32): Remove.
+	(__arm_vaddvaq_s32): Remove.
+	(__arm_vaddvaq_p_u8): Remove.
+	(__arm_vaddvaq_p_s8): Remove.
+	(__arm_vaddvaq_p_u16): Remove.
+	(__arm_vaddvaq_p_s16): Remove.
+	(__arm_vaddvaq_p_u32): Remove.
+	(__arm_vaddvaq_p_s32): Remove.
+	(__arm_vaddvaq): Remove.
+	(__arm_vaddvaq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (unary_int32_acc): New.
+	* config/arm/arm-mve-builtins-shapes.h (unary_int32_acc): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (mve_insn): Add vaddva.
+	* config/arm/mve.md (mve_vaddvaq_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+	(mve_vaddvaq_p_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_p_<supf><mode>): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vaddvq): New.
+	* config/arm/arm-mve-builtins-base.def (vaddvq): New.
+	* config/arm/arm-mve-builtins-base.h (vaddvq): New.
+	* config/arm/arm_mve.h (vaddvq): Remove.
+	(vaddvq_p): Remove.
+	(vaddvq_s8): Remove.
+	(vaddvq_s16): Remove.
+	(vaddvq_s32): Remove.
+	(vaddvq_u8): Remove.
+	(vaddvq_u16): Remove.
+	(vaddvq_u32): Remove.
+	(vaddvq_p_u8): Remove.
+	(vaddvq_p_s8): Remove.
+	(vaddvq_p_u16): Remove.
+	(vaddvq_p_s16): Remove.
+	(vaddvq_p_u32): Remove.
+	(vaddvq_p_s32): Remove.
+	(__arm_vaddvq_s8): Remove.
+	(__arm_vaddvq_s16): Remove.
+	(__arm_vaddvq_s32): Remove.
+	(__arm_vaddvq_u8): Remove.
+	(__arm_vaddvq_u16): Remove.
+	(__arm_vaddvq_u32): Remove.
+	(__arm_vaddvq_p_u8): Remove.
+	(__arm_vaddvq_p_s8): Remove.
+	(__arm_vaddvq_p_u16): Remove.
+	(__arm_vaddvq_p_s16): Remove.
+	(__arm_vaddvq_p_u32): Remove.
+	(__arm_vaddvq_p_s32): Remove.
+	(__arm_vaddvq): Remove.
+	(__arm_vaddvq_p): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (unary_int32): New.
+	* config/arm/arm-mve-builtins-shapes.h (unary_int32): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (mve_insn): Add vaddv.
+	* config/arm/mve.md (@mve_vaddvq_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+	(mve_vaddvq_p_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_p_<supf><mode>): ... this.
+	* config/arm/vec-common.md: Use gen_mve_q instead of
+	gen_mve_vaddvq.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N): New.
+	(vdupq): New.
+	* config/arm/arm-mve-builtins-base.def (vdupq): New.
+	* config/arm/arm-mve-builtins-base.h: (vdupq): New.
+	* config/arm/arm_mve.h (vdupq_n): Remove.
+	(vdupq_m): Remove.
+	(vdupq_n_f16): Remove.
+	(vdupq_n_f32): Remove.
+	(vdupq_n_s8): Remove.
+	(vdupq_n_s16): Remove.
+	(vdupq_n_s32): Remove.
+	(vdupq_n_u8): Remove.
+	(vdupq_n_u16): Remove.
+	(vdupq_n_u32): Remove.
+	(vdupq_m_n_u8): Remove.
+	(vdupq_m_n_s8): Remove.
+	(vdupq_m_n_u16): Remove.
+	(vdupq_m_n_s16): Remove.
+	(vdupq_m_n_u32): Remove.
+	(vdupq_m_n_s32): Remove.
+	(vdupq_m_n_f16): Remove.
+	(vdupq_m_n_f32): Remove.
+	(vdupq_x_n_s8): Remove.
+	(vdupq_x_n_s16): Remove.
+	(vdupq_x_n_s32): Remove.
+	(vdupq_x_n_u8): Remove.
+	(vdupq_x_n_u16): Remove.
+	(vdupq_x_n_u32): Remove.
+	(vdupq_x_n_f16): Remove.
+	(vdupq_x_n_f32): Remove.
+	(__arm_vdupq_n_s8): Remove.
+	(__arm_vdupq_n_s16): Remove.
+	(__arm_vdupq_n_s32): Remove.
+	(__arm_vdupq_n_u8): Remove.
+	(__arm_vdupq_n_u16): Remove.
+	(__arm_vdupq_n_u32): Remove.
+	(__arm_vdupq_m_n_u8): Remove.
+	(__arm_vdupq_m_n_s8): Remove.
+	(__arm_vdupq_m_n_u16): Remove.
+	(__arm_vdupq_m_n_s16): Remove.
+	(__arm_vdupq_m_n_u32): Remove.
+	(__arm_vdupq_m_n_s32): Remove.
+	(__arm_vdupq_x_n_s8): Remove.
+	(__arm_vdupq_x_n_s16): Remove.
+	(__arm_vdupq_x_n_s32): Remove.
+	(__arm_vdupq_x_n_u8): Remove.
+	(__arm_vdupq_x_n_u16): Remove.
+	(__arm_vdupq_x_n_u32): Remove.
+	(__arm_vdupq_n_f16): Remove.
+	(__arm_vdupq_n_f32): Remove.
+	(__arm_vdupq_m_n_f16): Remove.
+	(__arm_vdupq_m_n_f32): Remove.
+	(__arm_vdupq_x_n_f16): Remove.
+	(__arm_vdupq_x_n_f32): Remove.
+	(__arm_vdupq_n): Remove.
+	(__arm_vdupq_m): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc (unary_n): New.
+	* config/arm/arm-mve-builtins-shapes.h (unary_n): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_FP_M_N_VDUPQ_ONLY)
+	(MVE_FP_N_VDUPQ_ONLY): New.
+	(mve_insn): Add vdupq.
+	* config/arm/mve.md (mve_vdupq_n_f<mode>): Rename into ...
+	(@mve_<mve_insn>q_n_f<mode>): ... this.
+	(mve_vdupq_n_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_n_<supf><mode>): ... this.
+	(mve_vdupq_m_n_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
+	(mve_vdupq_m_n_f<mode>): Rename into ...
+	(@mve_<mve_insn>q_m_n_f<mode>): ... this.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vrev16q, vrev32q, vrev64q):
+	New.
+	* config/arm/arm-mve-builtins-base.def (vrev16q, vrev32q)
+	(vrev64q): New.
+	* config/arm/arm-mve-builtins-base.h (vrev16q, vrev32q)
+	(vrev64q): New.
+	* config/arm/arm_mve.h (vrev16q): Remove.
+	(vrev32q): Remove.
+	(vrev64q): Remove.
+	(vrev64q_m): Remove.
+	(vrev16q_m): Remove.
+	(vrev32q_m): Remove.
+	(vrev16q_x): Remove.
+	(vrev32q_x): Remove.
+	(vrev64q_x): Remove.
+	(vrev64q_f16): Remove.
+	(vrev64q_f32): Remove.
+	(vrev32q_f16): Remove.
+	(vrev16q_s8): Remove.
+	(vrev32q_s8): Remove.
+	(vrev32q_s16): Remove.
+	(vrev64q_s8): Remove.
+	(vrev64q_s16): Remove.
+	(vrev64q_s32): Remove.
+	(vrev64q_u8): Remove.
+	(vrev64q_u16): Remove.
+	(vrev64q_u32): Remove.
+	(vrev32q_u8): Remove.
+	(vrev32q_u16): Remove.
+	(vrev16q_u8): Remove.
+	(vrev64q_m_u8): Remove.
+	(vrev64q_m_s8): Remove.
+	(vrev64q_m_u16): Remove.
+	(vrev64q_m_s16): Remove.
+	(vrev64q_m_u32): Remove.
+	(vrev64q_m_s32): Remove.
+	(vrev16q_m_s8): Remove.
+	(vrev32q_m_f16): Remove.
+	(vrev16q_m_u8): Remove.
+	(vrev32q_m_s8): Remove.
+	(vrev64q_m_f16): Remove.
+	(vrev32q_m_u8): Remove.
+	(vrev32q_m_s16): Remove.
+	(vrev64q_m_f32): Remove.
+	(vrev32q_m_u16): Remove.
+	(vrev16q_x_s8): Remove.
+	(vrev16q_x_u8): Remove.
+	(vrev32q_x_s8): Remove.
+	(vrev32q_x_s16): Remove.
+	(vrev32q_x_u8): Remove.
+	(vrev32q_x_u16): Remove.
+	(vrev64q_x_s8): Remove.
+	(vrev64q_x_s16): Remove.
+	(vrev64q_x_s32): Remove.
+	(vrev64q_x_u8): Remove.
+	(vrev64q_x_u16): Remove.
+	(vrev64q_x_u32): Remove.
+	(vrev32q_x_f16): Remove.
+	(vrev64q_x_f16): Remove.
+	(vrev64q_x_f32): Remove.
+	(__arm_vrev16q_s8): Remove.
+	(__arm_vrev32q_s8): Remove.
+	(__arm_vrev32q_s16): Remove.
+	(__arm_vrev64q_s8): Remove.
+	(__arm_vrev64q_s16): Remove.
+	(__arm_vrev64q_s32): Remove.
+	(__arm_vrev64q_u8): Remove.
+	(__arm_vrev64q_u16): Remove.
+	(__arm_vrev64q_u32): Remove.
+	(__arm_vrev32q_u8): Remove.
+	(__arm_vrev32q_u16): Remove.
+	(__arm_vrev16q_u8): Remove.
+	(__arm_vrev64q_m_u8): Remove.
+	(__arm_vrev64q_m_s8): Remove.
+	(__arm_vrev64q_m_u16): Remove.
+	(__arm_vrev64q_m_s16): Remove.
+	(__arm_vrev64q_m_u32): Remove.
+	(__arm_vrev64q_m_s32): Remove.
+	(__arm_vrev16q_m_s8): Remove.
+	(__arm_vrev16q_m_u8): Remove.
+	(__arm_vrev32q_m_s8): Remove.
+	(__arm_vrev32q_m_u8): Remove.
+	(__arm_vrev32q_m_s16): Remove.
+	(__arm_vrev32q_m_u16): Remove.
+	(__arm_vrev16q_x_s8): Remove.
+	(__arm_vrev16q_x_u8): Remove.
+	(__arm_vrev32q_x_s8): Remove.
+	(__arm_vrev32q_x_s16): Remove.
+	(__arm_vrev32q_x_u8): Remove.
+	(__arm_vrev32q_x_u16): Remove.
+	(__arm_vrev64q_x_s8): Remove.
+	(__arm_vrev64q_x_s16): Remove.
+	(__arm_vrev64q_x_s32): Remove.
+	(__arm_vrev64q_x_u8): Remove.
+	(__arm_vrev64q_x_u16): Remove.
+	(__arm_vrev64q_x_u32): Remove.
+	(__arm_vrev64q_f16): Remove.
+	(__arm_vrev64q_f32): Remove.
+	(__arm_vrev32q_f16): Remove.
+	(__arm_vrev32q_m_f16): Remove.
+	(__arm_vrev64q_m_f16): Remove.
+	(__arm_vrev64q_m_f32): Remove.
+	(__arm_vrev32q_x_f16): Remove.
+	(__arm_vrev64q_x_f16): Remove.
+	(__arm_vrev64q_x_f32): Remove.
+	(__arm_vrev16q): Remove.
+	(__arm_vrev32q): Remove.
+	(__arm_vrev64q): Remove.
+	(__arm_vrev64q_m): Remove.
+	(__arm_vrev16q_m): Remove.
+	(__arm_vrev32q_m): Remove.
+	(__arm_vrev16q_x): Remove.
+	(__arm_vrev32q_x): Remove.
+	(__arm_vrev64q_x): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_V8HF, MVE_V16QI)
+	(MVE_FP_VREV64Q_ONLY, MVE_FP_M_VREV64Q_ONLY, MVE_FP_VREV32Q_ONLY)
+	(MVE_FP_M_VREV32Q_ONLY): New iterators.
+	(mve_insn): Add vrev16q, vrev32q, vrev64q.
+	* config/arm/mve.md (mve_vrev64q_f<mode>): Rename into ...
+	(@mve_<mve_insn>q_f<mode>): ... this
+	(mve_vrev32q_fv8hf): Rename into @mve_<mve_insn>q_f<mode>.
+	(mve_vrev64q_<supf><mode>): Rename into ...
+	(@mve_<mve_insn>q_<supf><mode>): ... this.
+	(mve_vrev32q_<supf><mode>): Rename into
+	@mve_<mve_insn>q_<supf><mode>.
+	(mve_vrev16q_<supf>v16qi): Rename into
+	@mve_<mve_insn>q_<supf><mode>.
+	(mve_vrev64q_m_<supf><mode>): Rename into
+	@mve_<mve_insn>q_m_<supf><mode>.
+	(mve_vrev32q_m_fv8hf): Rename into @mve_<mve_insn>q_m_f<mode>.
+	(mve_vrev32q_m_<supf><mode>): Rename into
+	@mve_<mve_insn>q_m_<supf><mode>.
+	(mve_vrev64q_m_f<mode>): Rename into @mve_<mve_insn>q_m_f<mode>.
+	(mve_vrev16q_m_<supf>v16qi): Rename into
+	@mve_<mve_insn>q_m_<supf><mode>.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-base.cc (vcmpeqq, vcmpneq, vcmpgeq)
+	(vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
+	* config/arm/arm-mve-builtins-base.def (vcmpeqq, vcmpneq, vcmpgeq)
+	(vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
+	* config/arm/arm-mve-builtins-base.h (vcmpeqq, vcmpneq, vcmpgeq)
+	(vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
+	* config/arm/arm-mve-builtins-functions.h (class
+	unspec_based_mve_function_exact_insn_vcmp): New.
+	* config/arm/arm-mve-builtins.cc
+	(function_instance::has_inactive_argument): Handle vcmp.
+	* config/arm/arm_mve.h (vcmpneq): Remove.
+	(vcmphiq): Remove.
+	(vcmpeqq): Remove.
+	(vcmpcsq): Remove.
+	(vcmpltq): Remove.
+	(vcmpleq): Remove.
+	(vcmpgtq): Remove.
+	(vcmpgeq): Remove.
+	(vcmpneq_m): Remove.
+	(vcmphiq_m): Remove.
+	(vcmpeqq_m): Remove.
+	(vcmpcsq_m): Remove.
+	(vcmpcsq_m_n): Remove.
+	(vcmpltq_m): Remove.
+	(vcmpleq_m): Remove.
+	(vcmpgtq_m): Remove.
+	(vcmpgeq_m): Remove.
+	(vcmpneq_s8): Remove.
+	(vcmpneq_s16): Remove.
+	(vcmpneq_s32): Remove.
+	(vcmpneq_u8): Remove.
+	(vcmpneq_u16): Remove.
+	(vcmpneq_u32): Remove.
+	(vcmpneq_n_u8): Remove.
+	(vcmphiq_u8): Remove.
+	(vcmphiq_n_u8): Remove.
+	(vcmpeqq_u8): Remove.
+	(vcmpeqq_n_u8): Remove.
+	(vcmpcsq_u8): Remove.
+	(vcmpcsq_n_u8): Remove.
+	(vcmpneq_n_s8): Remove.
+	(vcmpltq_s8): Remove.
+	(vcmpltq_n_s8): Remove.
+	(vcmpleq_s8): Remove.
+	(vcmpleq_n_s8): Remove.
+	(vcmpgtq_s8): Remove.
+	(vcmpgtq_n_s8): Remove.
+	(vcmpgeq_s8): Remove.
+	(vcmpgeq_n_s8): Remove.
+	(vcmpeqq_s8): Remove.
+	(vcmpeqq_n_s8): Remove.
+	(vcmpneq_n_u16): Remove.
+	(vcmphiq_u16): Remove.
+	(vcmphiq_n_u16): Remove.
+	(vcmpeqq_u16): Remove.
+	(vcmpeqq_n_u16): Remove.
+	(vcmpcsq_u16): Remove.
+	(vcmpcsq_n_u16): Remove.
+	(vcmpneq_n_s16): Remove.
+	(vcmpltq_s16): Remove.
+	(vcmpltq_n_s16): Remove.
+	(vcmpleq_s16): Remove.
+	(vcmpleq_n_s16): Remove.
+	(vcmpgtq_s16): Remove.
+	(vcmpgtq_n_s16): Remove.
+	(vcmpgeq_s16): Remove.
+	(vcmpgeq_n_s16): Remove.
+	(vcmpeqq_s16): Remove.
+	(vcmpeqq_n_s16): Remove.
+	(vcmpneq_n_u32): Remove.
+	(vcmphiq_u32): Remove.
+	(vcmphiq_n_u32): Remove.
+	(vcmpeqq_u32): Remove.
+	(vcmpeqq_n_u32): Remove.
+	(vcmpcsq_u32): Remove.
+	(vcmpcsq_n_u32): Remove.
+	(vcmpneq_n_s32): Remove.
+	(vcmpltq_s32): Remove.
+	(vcmpltq_n_s32): Remove.
+	(vcmpleq_s32): Remove.
+	(vcmpleq_n_s32): Remove.
+	(vcmpgtq_s32): Remove.
+	(vcmpgtq_n_s32): Remove.
+	(vcmpgeq_s32): Remove.
+	(vcmpgeq_n_s32): Remove.
+	(vcmpeqq_s32): Remove.
+	(vcmpeqq_n_s32): Remove.
+	(vcmpneq_n_f16): Remove.
+	(vcmpneq_f16): Remove.
+	(vcmpltq_n_f16): Remove.
+	(vcmpltq_f16): Remove.
+	(vcmpleq_n_f16): Remove.
+	(vcmpleq_f16): Remove.
+	(vcmpgtq_n_f16): Remove.
+	(vcmpgtq_f16): Remove.
+	(vcmpgeq_n_f16): Remove.
+	(vcmpgeq_f16): Remove.
+	(vcmpeqq_n_f16): Remove.
+	(vcmpeqq_f16): Remove.
+	(vcmpneq_n_f32): Remove.
+	(vcmpneq_f32): Remove.
+	(vcmpltq_n_f32): Remove.
+	(vcmpltq_f32): Remove.
+	(vcmpleq_n_f32): Remove.
+	(vcmpleq_f32): Remove.
+	(vcmpgtq_n_f32): Remove.
+	(vcmpgtq_f32): Remove.
+	(vcmpgeq_n_f32): Remove.
+	(vcmpgeq_f32): Remove.
+	(vcmpeqq_n_f32): Remove.
+	(vcmpeqq_f32): Remove.
+	(vcmpeqq_m_f16): Remove.
+	(vcmpeqq_m_f32): Remove.
+	(vcmpneq_m_u8): Remove.
+	(vcmpneq_m_n_u8): Remove.
+	(vcmphiq_m_u8): Remove.
+	(vcmphiq_m_n_u8): Remove.
+	(vcmpeqq_m_u8): Remove.
+	(vcmpeqq_m_n_u8): Remove.
+	(vcmpcsq_m_u8): Remove.
+	(vcmpcsq_m_n_u8): Remove.
+	(vcmpneq_m_s8): Remove.
+	(vcmpneq_m_n_s8): Remove.
+	(vcmpltq_m_s8): Remove.
+	(vcmpltq_m_n_s8): Remove.
+	(vcmpleq_m_s8): Remove.
+	(vcmpleq_m_n_s8): Remove.
+	(vcmpgtq_m_s8): Remove.
+	(vcmpgtq_m_n_s8): Remove.
+	(vcmpgeq_m_s8): Remove.
+	(vcmpgeq_m_n_s8): Remove.
+	(vcmpeqq_m_s8): Remove.
+	(vcmpeqq_m_n_s8): Remove.
+	(vcmpneq_m_u16): Remove.
+	(vcmpneq_m_n_u16): Remove.
+	(vcmphiq_m_u16): Remove.
+	(vcmphiq_m_n_u16): Remove.
+	(vcmpeqq_m_u16): Remove.
+	(vcmpeqq_m_n_u16): Remove.
+	(vcmpcsq_m_u16): Remove.
+	(vcmpcsq_m_n_u16): Remove.
+	(vcmpneq_m_s16): Remove.
+	(vcmpneq_m_n_s16): Remove.
+	(vcmpltq_m_s16): Remove.
+	(vcmpltq_m_n_s16): Remove.
+	(vcmpleq_m_s16): Remove.
+	(vcmpleq_m_n_s16): Remove.
+	(vcmpgtq_m_s16): Remove.
+	(vcmpgtq_m_n_s16): Remove.
+	(vcmpgeq_m_s16): Remove.
+	(vcmpgeq_m_n_s16): Remove.
+	(vcmpeqq_m_s16): Remove.
+	(vcmpeqq_m_n_s16): Remove.
+	(vcmpneq_m_u32): Remove.
+	(vcmpneq_m_n_u32): Remove.
+	(vcmphiq_m_u32): Remove.
+	(vcmphiq_m_n_u32): Remove.
+	(vcmpeqq_m_u32): Remove.
+	(vcmpeqq_m_n_u32): Remove.
+	(vcmpcsq_m_u32): Remove.
+	(vcmpcsq_m_n_u32): Remove.
+	(vcmpneq_m_s32): Remove.
+	(vcmpneq_m_n_s32): Remove.
+	(vcmpltq_m_s32): Remove.
+	(vcmpltq_m_n_s32): Remove.
+	(vcmpleq_m_s32): Remove.
+	(vcmpleq_m_n_s32): Remove.
+	(vcmpgtq_m_s32): Remove.
+	(vcmpgtq_m_n_s32): Remove.
+	(vcmpgeq_m_s32): Remove.
+	(vcmpgeq_m_n_s32): Remove.
+	(vcmpeqq_m_s32): Remove.
+	(vcmpeqq_m_n_s32): Remove.
+	(vcmpeqq_m_n_f16): Remove.
+	(vcmpgeq_m_f16): Remove.
+	(vcmpgeq_m_n_f16): Remove.
+	(vcmpgtq_m_f16): Remove.
+	(vcmpgtq_m_n_f16): Remove.
+	(vcmpleq_m_f16): Remove.
+	(vcmpleq_m_n_f16): Remove.
+	(vcmpltq_m_f16): Remove.
+	(vcmpltq_m_n_f16): Remove.
+	(vcmpneq_m_f16): Remove.
+	(vcmpneq_m_n_f16): Remove.
+	(vcmpeqq_m_n_f32): Remove.
+	(vcmpgeq_m_f32): Remove.
+	(vcmpgeq_m_n_f32): Remove.
+	(vcmpgtq_m_f32): Remove.
+	(vcmpgtq_m_n_f32): Remove.
+	(vcmpleq_m_f32): Remove.
+	(vcmpleq_m_n_f32): Remove.
+	(vcmpltq_m_f32): Remove.
+	(vcmpltq_m_n_f32): Remove.
+	(vcmpneq_m_f32): Remove.
+	(vcmpneq_m_n_f32): Remove.
+	(__arm_vcmpneq_s8): Remove.
+	(__arm_vcmpneq_s16): Remove.
+	(__arm_vcmpneq_s32): Remove.
+	(__arm_vcmpneq_u8): Remove.
+	(__arm_vcmpneq_u16): Remove.
+	(__arm_vcmpneq_u32): Remove.
+	(__arm_vcmpneq_n_u8): Remove.
+	(__arm_vcmphiq_u8): Remove.
+	(__arm_vcmphiq_n_u8): Remove.
+	(__arm_vcmpeqq_u8): Remove.
+	(__arm_vcmpeqq_n_u8): Remove.
+	(__arm_vcmpcsq_u8): Remove.
+	(__arm_vcmpcsq_n_u8): Remove.
+	(__arm_vcmpneq_n_s8): Remove.
+	(__arm_vcmpltq_s8): Remove.
+	(__arm_vcmpltq_n_s8): Remove.
+	(__arm_vcmpleq_s8): Remove.
+	(__arm_vcmpleq_n_s8): Remove.
+	(__arm_vcmpgtq_s8): Remove.
+	(__arm_vcmpgtq_n_s8): Remove.
+	(__arm_vcmpgeq_s8): Remove.
+	(__arm_vcmpgeq_n_s8): Remove.
+	(__arm_vcmpeqq_s8): Remove.
+	(__arm_vcmpeqq_n_s8): Remove.
+	(__arm_vcmpneq_n_u16): Remove.
+	(__arm_vcmphiq_u16): Remove.
+	(__arm_vcmphiq_n_u16): Remove.
+	(__arm_vcmpeqq_u16): Remove.
+	(__arm_vcmpeqq_n_u16): Remove.
+	(__arm_vcmpcsq_u16): Remove.
+	(__arm_vcmpcsq_n_u16): Remove.
+	(__arm_vcmpneq_n_s16): Remove.
+	(__arm_vcmpltq_s16): Remove.
+	(__arm_vcmpltq_n_s16): Remove.
+	(__arm_vcmpleq_s16): Remove.
+	(__arm_vcmpleq_n_s16): Remove.
+	(__arm_vcmpgtq_s16): Remove.
+	(__arm_vcmpgtq_n_s16): Remove.
+	(__arm_vcmpgeq_s16): Remove.
+	(__arm_vcmpgeq_n_s16): Remove.
+	(__arm_vcmpeqq_s16): Remove.
+	(__arm_vcmpeqq_n_s16): Remove.
+	(__arm_vcmpneq_n_u32): Remove.
+	(__arm_vcmphiq_u32): Remove.
+	(__arm_vcmphiq_n_u32): Remove.
+	(__arm_vcmpeqq_u32): Remove.
+	(__arm_vcmpeqq_n_u32): Remove.
+	(__arm_vcmpcsq_u32): Remove.
+	(__arm_vcmpcsq_n_u32): Remove.
+	(__arm_vcmpneq_n_s32): Remove.
+	(__arm_vcmpltq_s32): Remove.
+	(__arm_vcmpltq_n_s32): Remove.
+	(__arm_vcmpleq_s32): Remove.
+	(__arm_vcmpleq_n_s32): Remove.
+	(__arm_vcmpgtq_s32): Remove.
+	(__arm_vcmpgtq_n_s32): Remove.
+	(__arm_vcmpgeq_s32): Remove.
+	(__arm_vcmpgeq_n_s32): Remove.
+	(__arm_vcmpeqq_s32): Remove.
+	(__arm_vcmpeqq_n_s32): Remove.
+	(__arm_vcmpneq_m_u8): Remove.
+	(__arm_vcmpneq_m_n_u8): Remove.
+	(__arm_vcmphiq_m_u8): Remove.
+	(__arm_vcmphiq_m_n_u8): Remove.
+	(__arm_vcmpeqq_m_u8): Remove.
+	(__arm_vcmpeqq_m_n_u8): Remove.
+	(__arm_vcmpcsq_m_u8): Remove.
+	(__arm_vcmpcsq_m_n_u8): Remove.
+	(__arm_vcmpneq_m_s8): Remove.
+	(__arm_vcmpneq_m_n_s8): Remove.
+	(__arm_vcmpltq_m_s8): Remove.
+	(__arm_vcmpltq_m_n_s8): Remove.
+	(__arm_vcmpleq_m_s8): Remove.
+	(__arm_vcmpleq_m_n_s8): Remove.
+	(__arm_vcmpgtq_m_s8): Remove.
+	(__arm_vcmpgtq_m_n_s8): Remove.
+	(__arm_vcmpgeq_m_s8): Remove.
+	(__arm_vcmpgeq_m_n_s8): Remove.
+	(__arm_vcmpeqq_m_s8): Remove.
+	(__arm_vcmpeqq_m_n_s8): Remove.
+	(__arm_vcmpneq_m_u16): Remove.
+	(__arm_vcmpneq_m_n_u16): Remove.
+	(__arm_vcmphiq_m_u16): Remove.
+	(__arm_vcmphiq_m_n_u16): Remove.
+	(__arm_vcmpeqq_m_u16): Remove.
+	(__arm_vcmpeqq_m_n_u16): Remove.
+	(__arm_vcmpcsq_m_u16): Remove.
+	(__arm_vcmpcsq_m_n_u16): Remove.
+	(__arm_vcmpneq_m_s16): Remove.
+	(__arm_vcmpneq_m_n_s16): Remove.
+	(__arm_vcmpltq_m_s16): Remove.
+	(__arm_vcmpltq_m_n_s16): Remove.
+	(__arm_vcmpleq_m_s16): Remove.
+	(__arm_vcmpleq_m_n_s16): Remove.
+	(__arm_vcmpgtq_m_s16): Remove.
+	(__arm_vcmpgtq_m_n_s16): Remove.
+	(__arm_vcmpgeq_m_s16): Remove.
+	(__arm_vcmpgeq_m_n_s16): Remove.
+	(__arm_vcmpeqq_m_s16): Remove.
+	(__arm_vcmpeqq_m_n_s16): Remove.
+	(__arm_vcmpneq_m_u32): Remove.
+	(__arm_vcmpneq_m_n_u32): Remove.
+	(__arm_vcmphiq_m_u32): Remove.
+	(__arm_vcmphiq_m_n_u32): Remove.
+	(__arm_vcmpeqq_m_u32): Remove.
+	(__arm_vcmpeqq_m_n_u32): Remove.
+	(__arm_vcmpcsq_m_u32): Remove.
+	(__arm_vcmpcsq_m_n_u32): Remove.
+	(__arm_vcmpneq_m_s32): Remove.
+	(__arm_vcmpneq_m_n_s32): Remove.
+	(__arm_vcmpltq_m_s32): Remove.
+	(__arm_vcmpltq_m_n_s32): Remove.
+	(__arm_vcmpleq_m_s32): Remove.
+	(__arm_vcmpleq_m_n_s32): Remove.
+	(__arm_vcmpgtq_m_s32): Remove.
+	(__arm_vcmpgtq_m_n_s32): Remove.
+	(__arm_vcmpgeq_m_s32): Remove.
+	(__arm_vcmpgeq_m_n_s32): Remove.
+	(__arm_vcmpeqq_m_s32): Remove.
+	(__arm_vcmpeqq_m_n_s32): Remove.
+	(__arm_vcmpneq_n_f16): Remove.
+	(__arm_vcmpneq_f16): Remove.
+	(__arm_vcmpltq_n_f16): Remove.
+	(__arm_vcmpltq_f16): Remove.
+	(__arm_vcmpleq_n_f16): Remove.
+	(__arm_vcmpleq_f16): Remove.
+	(__arm_vcmpgtq_n_f16): Remove.
+	(__arm_vcmpgtq_f16): Remove.
+	(__arm_vcmpgeq_n_f16): Remove.
+	(__arm_vcmpgeq_f16): Remove.
+	(__arm_vcmpeqq_n_f16): Remove.
+	(__arm_vcmpeqq_f16): Remove.
+	(__arm_vcmpneq_n_f32): Remove.
+	(__arm_vcmpneq_f32): Remove.
+	(__arm_vcmpltq_n_f32): Remove.
+	(__arm_vcmpltq_f32): Remove.
+	(__arm_vcmpleq_n_f32): Remove.
+	(__arm_vcmpleq_f32): Remove.
+	(__arm_vcmpgtq_n_f32): Remove.
+	(__arm_vcmpgtq_f32): Remove.
+	(__arm_vcmpgeq_n_f32): Remove.
+	(__arm_vcmpgeq_f32): Remove.
+	(__arm_vcmpeqq_n_f32): Remove.
+	(__arm_vcmpeqq_f32): Remove.
+	(__arm_vcmpeqq_m_f16): Remove.
+	(__arm_vcmpeqq_m_f32): Remove.
+	(__arm_vcmpeqq_m_n_f16): Remove.
+	(__arm_vcmpgeq_m_f16): Remove.
+	(__arm_vcmpgeq_m_n_f16): Remove.
+	(__arm_vcmpgtq_m_f16): Remove.
+	(__arm_vcmpgtq_m_n_f16): Remove.
+	(__arm_vcmpleq_m_f16): Remove.
+	(__arm_vcmpleq_m_n_f16): Remove.
+	(__arm_vcmpltq_m_f16): Remove.
+	(__arm_vcmpltq_m_n_f16): Remove.
+	(__arm_vcmpneq_m_f16): Remove.
+	(__arm_vcmpneq_m_n_f16): Remove.
+	(__arm_vcmpeqq_m_n_f32): Remove.
+	(__arm_vcmpgeq_m_f32): Remove.
+	(__arm_vcmpgeq_m_n_f32): Remove.
+	(__arm_vcmpgtq_m_f32): Remove.
+	(__arm_vcmpgtq_m_n_f32): Remove.
+	(__arm_vcmpleq_m_f32): Remove.
+	(__arm_vcmpleq_m_n_f32): Remove.
+	(__arm_vcmpltq_m_f32): Remove.
+	(__arm_vcmpltq_m_n_f32): Remove.
+	(__arm_vcmpneq_m_f32): Remove.
+	(__arm_vcmpneq_m_n_f32): Remove.
+	(__arm_vcmpneq): Remove.
+	(__arm_vcmphiq): Remove.
+	(__arm_vcmpeqq): Remove.
+	(__arm_vcmpcsq): Remove.
+	(__arm_vcmpltq): Remove.
+	(__arm_vcmpleq): Remove.
+	(__arm_vcmpgtq): Remove.
+	(__arm_vcmpgeq): Remove.
+	(__arm_vcmpneq_m): Remove.
+	(__arm_vcmphiq_m): Remove.
+	(__arm_vcmpeqq_m): Remove.
+	(__arm_vcmpcsq_m): Remove.
+	(__arm_vcmpltq_m): Remove.
+	(__arm_vcmpleq_m): Remove.
+	(__arm_vcmpgtq_m): Remove.
+	(__arm_vcmpgeq_m): Remove.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/arm-mve-builtins-shapes.cc	(cmp): New.
+	* config/arm/arm-mve-builtins-shapes.h (cmp): New.
+
+2023-05-11  Christophe Lyon  <christophe.lyon@arm.com>
+
+	* config/arm/iterators.md (MVE_CMP_M, MVE_CMP_M_F, MVE_CMP_M_N)
+	(MVE_CMP_M_N_F, mve_cmp_op1): New.
+	(isu): Add VCMP*
+	(supf): Likewise.
+	* config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>): Rename into ...
+	(@mve_vcmp<mve_cmp_op>q_n_<mode>): ... this.
+	(mve_vcmpeqq_m_f<mode>, mve_vcmpgeq_m_f<mode>)
+	(mve_vcmpgtq_m_f<mode>, mve_vcmpleq_m_f<mode>)
+	(mve_vcmpltq_m_f<mode>, mve_vcmpneq_m_f<mode>): Merge into ...
+	(@mve_vcmp<mve_cmp_op1>q_m_f<mode>): ... this.
+	(mve_vcmpcsq_m_u<mode>, mve_vcmpeqq_m_<supf><mode>)
+	(mve_vcmpgeq_m_s<mode>, mve_vcmpgtq_m_s<mode>)
+	(mve_vcmphiq_m_u<mode>, mve_vcmpleq_m_s<mode>)
+	(mve_vcmpltq_m_s<mode>, mve_vcmpneq_m_<supf><mode>): Merge into
+	...
+	(@mve_vcmp<mve_cmp_op1>q_m_<supf><mode>): ... this.
+	(mve_vcmpcsq_m_n_u<mode>, mve_vcmpeqq_m_n_<supf><mode>)
+	(mve_vcmpgeq_m_n_s<mode>, mve_vcmpgtq_m_n_s<mode>)
+	(mve_vcmphiq_m_n_u<mode>, mve_vcmpleq_m_n_s<mode>)
+	(mve_vcmpltq_m_n_s<mode>, mve_vcmpneq_m_n_<supf><mode>): Merge
+	into ...
+	(@mve_vcmp<mve_cmp_op1>q_m_n_<supf><mode>): ... this.
+	(mve_vcmpeqq_m_n_f<mode>, mve_vcmpgeq_m_n_f<mode>)
+	(mve_vcmpgtq_m_n_f<mode>, mve_vcmpleq_m_n_f<mode>)
+	(mve_vcmpltq_m_n_f<mode>, mve_vcmpneq_m_n_f<mode>): Merge into ...
+	(@mve_vcmp<mve_cmp_op1>q_m_n_f<mode>): ... this.
+
+2023-05-11  Roger Sayle  <roger@nextmovesoftware.com>
+
+	* match.pd <popcount optimizations>: Simplify popcount(X|Y) +
+	popcount(X&Y) as popcount(X)+popcount(Y).  Likewise, simplify
+	popcount(X)+popcount(Y)-popcount(X&Y) as popcount(X|Y), and
+	vice versa.
+
+2023-05-11  Roger Sayle  <roger@nextmovesoftware.com>
+
+	* match.pd <popcount optimizations>: Simplify popcount(bswap(x))
+	as popcount(x).  Simplify popcount(rotate(x,y)) as popcount(x).
+	<parity optimizations>:  Simplify parity(bswap(x)) as parity(x).
+	Simplify parity(rotate(x,y)) as parity(x).
+
+2023-05-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+	* config/riscv/autovec.md (@vec_series<mode>): New pattern
+	* config/riscv/riscv-protos.h (expand_vec_series): New function.
+	* config/riscv/riscv-v.cc (emit_binop): Ditto.
+	(emit_index_op): Ditto.
+	(expand_vec_series): Ditto.
+	(expand_const_vector): Add series vector handling.
+	* config/riscv/riscv.cc (riscv_const_insns): Enable series vector for testing.
+
 2023-05-10  Roger Sayle  <roger@nextmovesoftware.com>
 
 	* config/i386/i386.md (*concat<mode><dwi>3_1): Use preferred
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 4744698a31c..d44f41a9779 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20230511
+20230512
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 5bb3e13dfe5..364b98d730b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,21 @@
+2023-05-11  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/109745
+	* typeck2.cc (poison_mutable_constructors): Define.
+	(store_init_value): Use it instead of setting
+	CONSTRUCTOR_MUTABLE_POISON directly.
+
+2023-05-11  Patrick Palka  <ppalka@redhat.com>
+	    Jonathan Wakely  <jwakely@redhat.com>
+
+	PR c++/83258
+	PR c++/80488
+	PR c++/97700
+	* pt.cc (convert_nontype_argument_function): Remove linkage
+	requirement for C++17 and later.
+	(invalid_tparm_referent_p) <case ADDR_EXPR>: Restrict
+	DECL_ARTIFICIAL rejection test to VAR_DECL.
+
 2023-05-10  Marek Polacek  <polacek@redhat.com>
 
 	PR c++/109680
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 00061a626d7..f1b0c5ae276 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,7 @@
+2023-05-11  Xi Ruoyao  <xry111@xry111.site>
+
+	* Make-lang.in: Use grep instead of fgrep.
+
 2023-05-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
 
 	* dump-parse-tree.cc (gfc_debug_expr): Remove forward declaration.
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 2efb51216e7..9b9dbedccfc 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,28 @@
+2023-05-11  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/109810
+	* gm2-compiler/M2ALU.mod (ConvertConstToType): Use
+	PrepareCopyString in place of DoCopyString.
+	* gm2-compiler/M2GenGCC.def (DoCopyString): Rename to ...
+	(PrepareCopyString): ... this.
+	* gm2-compiler/M2GenGCC.mod (CodeStatement): Call CodeReturnValue
+	with a single parameter.  Call CodeXIndr with a single parameter.
+	(CodeReturnValue): Remove parameters and replace with a single
+	quadno.  Reimplement using PrepareCopyString.  Issue error
+	if the string exceeds designator space.
+	(DoCopyString): Reimplement and rename to ...
+	(PrepareCopyString): ... this.
+	(CodeXIndr): Remove parameters and replace with a single
+	quadno.  Reimplement using PrepareCopyString.  Issue error
+	if the string exceeds designator space.
+	(CodeBecomes): Remove parameters and replace with a single
+	quadno.  Reimplement using PrepareCopyString.  Issue error
+	if the string exceeds designator space.
+	* gm2-compiler/M2Quads.def (BuildReturn): Rename parameter to
+	tokreturn.
+	* gm2-compiler/M2Quads.mod (BuildReturn): Rename parameter to
+	tokreturn.  Rename tokno to tokcombined.
+
 2023-05-09  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	PR modula2/109779
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fe05da05c5f..51f24e704a8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,151 @@
+2023-05-11  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/109810
+	* gm2/pim/fail/highice.mod: New test.
+
+2023-05-11  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/109745
+	* g++.dg/cpp0x/constexpr-mutable4.C: New test.
+	* g++.dg/cpp0x/constexpr-mutable5.C: New test.
+	* g++.dg/cpp1y/constexpr-mutable2.C: New test.
+
+2023-05-11  mtsamis  <manolis.tsamis@vrull.eu>
+
+	* gcc.target/aarch64/swar_to_vec_cmp.c: New test.
+
+2023-05-11  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/109807
+	* gcc.target/i386/pr109807.c: New test.
+
+2023-05-11  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/103807
+	* g++.dg/cpp2a/lambda-targ1.C: New test.
+
+2023-05-11  Robin Dapp  <rdapp@ventanamicro.com>
+
+	* gcc.target/riscv/rvv/autovec/vmv-imm-rv32.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmv-imm-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vmv-imm-run.c: New test.
+
+2023-05-11  Patrick Palka  <ppalka@redhat.com>
+	    Jonathan Wakely  <jwakely@redhat.com>
+
+	PR c++/83258
+	PR c++/80488
+	PR c++/97700
+	* g++.dg/ext/visibility/anon8.C: Don't expect a "no linkage"
+	error for the template argument &B2:fn in C++17 mode.
+	* g++.dg/cpp0x/lambda/lambda-conv15.C: New test.
+	* g++.dg/cpp2a/nontype-class56.C: New test.
+	* g++.dg/template/function2.C: New test.
+
+2023-05-11  Alexandre Oliva  <oliva@adacore.com>
+
+	* gcc.target/aarch64/sve/pred-not-gen-4.c: Drop math.h
+	include, call builtin.
+
+2023-05-11  Robin Dapp  <rdapp@ventanamicro.com>
+	    Michael Collison  <collison@rivosinc.com>
+
+	* gcc.target/riscv/rvv/autovec/shift-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/shift-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/shift-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/shift-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/shift-scalar-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/shift-scalar-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/shift-scalar-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/shift-scalar-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vadd-run-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vadd-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vadd-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vadd-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vand-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vand-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vand-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vand-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vdiv-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vdiv-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vdiv-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vdiv-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vmax-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmax-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmax-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmax-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vmin-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmin-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmin-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmin-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vmul-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmul-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmul-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vmul-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vor-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vor-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vor-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vor-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vrem-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vrem-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vrem-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vrem-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vsub-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vsub-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vsub-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vsub-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/vxor-run.c: New test.
+	* gcc.target/riscv/rvv/autovec/vxor-rv32gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vxor-rv64gcv.c: New test.
+	* gcc.target/riscv/rvv/autovec/vxor-template.h: New test.
+	* gcc.target/riscv/rvv/autovec/shift-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vadd-run.c: New file.
+	* gcc.target/riscv/rvv/autovec/vand-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vdiv-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vmax-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vmin-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vmul-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vor-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vrem-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vsub-run-template.h: New file.
+	* gcc.target/riscv/rvv/autovec/vxor-run-template.h: New file.
+
+2023-05-11  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* lib/torture-options.exp (torture-init-done): Add.
+	* lib/gcc-dg.exp (gcc-dg-runtest): Use it to conditionalize
+	implicit 'torture-init'.
+	* lib/gfortran-dg.exp (gfortran-dg-runtest): Likewise.
+	* lib/obj-c++-dg.exp (obj-c++-dg-runtest): Likewise.
+	* lib/objc-dg.exp (objc-dg-runtest): Likewise.
+
+2023-05-11  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* gcc.target/arm/acle/acle.exp: Add missing
+	'torture-init'/'torture-finish' around 'LTO_TORTURE_OPTIONS'
+	usage.
+	* gcc.target/arm/cmse/cmse.exp: Likewise.
+	* gcc.target/arm/pure-code/pure-code.exp: Likewise.
+
+2023-05-11  Roger Sayle  <roger@nextmovesoftware.com>
+
+	* gcc.dg/fold-popcount-8.c: New test case.
+	* gcc.dg/fold-popcount-9.c: Likewise.
+	* gcc.dg/fold-popcount-10.c: Likewise.
+
+2023-05-11  Roger Sayle  <roger@nextmovesoftware.com>
+
+	* gcc.dg/fold-parity-6.c: New test.
+	* gcc.dg/fold-parity-7.c: Likewise.
+	* gcc.dg/fold-popcount-6.c: Likewise.
+	* gcc.dg/fold-popcount-7.c: Likewise.
+
+2023-05-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+	* gcc.target/riscv/rvv/autovec/series-1.c: New test.
+	* gcc.target/riscv/rvv/autovec/series_run-1.c: New test.
+
 2023-05-10  Marek Polacek  <polacek@redhat.com>
 
 	PR c++/109680
diff --git a/include/ChangeLog b/include/ChangeLog
index 3f34e188642..52b3159c999 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,11 @@
+2023-05-11  Joseph Myers  <joseph@codesourcery.com>
+
+	PR middle-end/109128
+	* plugin-api.h (ld_plugin_claim_file_handler_v2)
+	(ld_plugin_register_claim_file_v2)
+	(LDPT_REGISTER_CLAIM_FILE_HOOK_V2): New.
+	(struct ld_plugin_tv): Add tv_register_claim_file_v2.
+
 2023-04-28  Roger Sayle  <roger@nextmovesoftware.com>
 
 	* ctf.h: Import latest version from binutils/libctf.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 294280c57a5..51ca7b5888b 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,43 @@
+2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	* src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
+	(auto_locale, auto_ferounding): New class types.
+	(from_chars_impl): Use auto_locale and auto_ferounding.
+
+2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/109772
+	* include/std/chrono (hh_mm_ss::__fits): Remove variable
+	template.
+	(hh_mm_ss::__subseconds): Remove __fits from constraints.
+	* testsuite/std/time/hh_mm_ss/109772.cc: New test.
+	* testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
+	hh_mm_ss<duration<int, std::pico>>.
+
+2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	* config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
+	* include/bits/basic_ios.h: Add static assertion checking
+	traits_type::value_type.
+	* include/bits/basic_string.h: Likewise. Do not rebind
+	allocator, and add static assertion checking its value_type.
+	(basic_string::_Alloc_traits_impl): Remove class template.
+	(basic_string::_S_allocate): New static member function.
+	(basic_string::assign): Use _S_allocate.
+	* include/bits/basic_string.tcc (basic_string::_M_create)
+	(basic_string::reserve, basic_string::_M_replace): Likewise.
+	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
+	Disable for C++20 and later.
+	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
+	Likweise.
+
+2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/109758
+	* include/bits/std_abs.h (abs(__float128)): Handle negative NaN
+	and negative zero correctly.
+	* testsuite/26_numerics/headers/cmath/109758.cc: New test.
+
 2023-05-10  François Dumont  <fdumont@gcc.gnu.org>
 
 	* include/bits/hashtable_policy.h
diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
index e703899ca46..8a95d1a8187 100644
--- a/lto-plugin/ChangeLog
+++ b/lto-plugin/ChangeLog
@@ -1,3 +1,11 @@
+2023-05-11  Joseph Myers  <joseph@codesourcery.com>
+
+	PR middle-end/109128
+	* lto-plugin.c (register_claim_file_v2): New.
+	(claim_file_handler_v2): New.
+	(claim_file_handler): Wrap claim_file_handler_v2.
+	(onload): Handle LDPT_REGISTER_CLAIM_FILE_HOOK_V2.
+
 2022-11-23  Marek Polacek  <polacek@redhat.com>
 
 	Revert:

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-05-12  0:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-12  0:19 [gcc r14-744] Daily bump GCC Administrator

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).